- Network scanning tool written in rust
- precompiled binaries are available for linux_amd64 and linux_arm64 architectures, inside the
bin
folder, otherwise you have to compile from source - package pre-requisites for local compilation:
git
cargo
make
cargo install rns
git clone https://github.com/ryzeon-dev/rns && cd rns && make && sudo make install
- clone the repo
git clone https://github.com/ryzeon-dev/rns
- enter the
rns
directory
cd rns
- build the executable
make
- install (requires root)
sudo make install
sudo make install-amd64
sudo make install-arm64
scan
verb can be called by its initial too
rns s 192.168.1.0 mask 24 ports all
- you must provide an IP address, a network mask (ip address or CIDR form) and some ports to scan
rns scan 192.168.1.0 mask 24 ports std
- it is possible to set the timeout (in milliseconds) for both host scanning (checking if the host is up) and port scanning (checking if the ports is open), using the
host-timeout
andports-timeout
verbs
rns scan 192.168.1.0 mask 255.255.255.0 ports std host-timeout 1500 ports-timeout 500
- to scan certain ports, write them comma separated after the
ports
verb
rns scan 192.168.1.0 mask 24 ports 80,8080,8088,8808,8888
- to scan a port range (e.g. from 0 to 999), write the starting port and the ending port (plus one) separated by
-
- remember that the ending port is a limit, and therefore excluded
rns scan 192.168.1.0 mask 24 ports 0-1000
- to scan the standard ports (you can get a description for them running
rns explain
) usestd
as argument forports
verb
rns scan 192.168.1.0 mask 24 ports std
- to scan both open ports and mac addresses add
scan-mac
verb at the end
rns scan 192.168.1.0 mask 24 ports std scan-mac
- only scan for mac addresses use
mac-only
verb instead ofports
rns scan 192.168.1.0 mask 24 mac-only
- to scan the nmap's standard 1000 ports, use
nmap
as argument forports
verb
rns scan 192.168.1.0 mask 24 ports nmap
- to export the scan into a Json file, use the
--json
or-j
flag- by doing so, all the stdout-communications are suppressed
rns scan 192.168.1.0 mask 24 ports std -j > report.json
- to have a quiet execution, use the
--quiet
or-q
flag, this will output only the final report
rns scan 192.168.1.0 mask 24 ports std -q
- to scan only one IP address, use the
single
verb before the IP address- note that network mask is not required (and must not be provided)
rns scan single 192.168.1.16 ports std
- all the verbs shown above are valid for single-address scanning
list
verb can be called by its initial too
rns l interfaces
- to export the listing into a Json file, use the
--json
or-j
flag
rns list ports -j > report.json
- to list the ports openend on local machine, use the
list ports
verb, and both TCP and UDP open ports will be shown
rns list ports
- to only view TCP or UDP, pass
tcp
orudp
afterports
verb
rns list ports tcp
- to list local machine's IP addresses use
list addresses
verb
rns list addresses
- to list local machine's network interfaces use
list interfaces
verb
rns list interfaces
- lists network interface, and for each displays mac address, ipv4 and route(s)
rns list local
- to monitor an interface's activity use
monitor
verb, followed by the interface's name
rns monitor eth0
- activity is displayed in bytes by default, but using
-b
or--bit
flag, activity gets displayed in bits
rns monitor eth0 -b
- to set an interface's status (such as
up
ordown
), useset
verb- this operation requires root privilegies, and in some cases running with
sudo
might not be enough
- this operation requires root privilegies, and in some cases running with
rns set interface eth0 status up
- run
rns help
to get help
- version can be checked running
rns version
orrns v