- Network scanning tool written in rust
- precompiled binaries are available for linux_amd64 and linux_arm64 architectures, inside the
binfolder, 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
rnsdirectory
cd rns
- build the executable
make
- install (requires root)
sudo make install
sudo make install-amd64
sudo make install-arm64
- a GUI application written in Python3 is available
- the gui allows to execute
scanandlistactions- after inserting the required parameters, the relative
rnscommand will be displayed - pressing the
runbutton, the command will be executed, and its result displayed
- after inserting the required parameters, the relative
- from the
rnsdirectory, run
make compile-gui
- if you just compiled it, run
sudo make install-gui
- if you want to install a precompiled binary, run
sudo make install-gui-amd64
or
sudo make install-gui-arm64
- run the command
rns-gui
scanverb can be called by its initial too
rns s 192.168.1.0 mask 24 ports all
- when scanning for IP addresses,
rnswill try to resolve the ip address into the host name, using the NetBIOS protocol - 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-timeoutandports-timeoutverbs
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
portsverb
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) usestdas argument forportsverb
rns scan 192.168.1.0 mask 24 ports std
- to scan both open ports and mac addresses add
scan-macverb at the end
rns scan 192.168.1.0 mask 24 ports std scan-mac
- only scan for mac addresses use
mac-onlyverb instead ofports
rns scan 192.168.1.0 mask 24 mac-only
- to scan the nmap's standard 1000 ports, use
nmapas argument forportsverb
rns scan 192.168.1.0 mask 24 ports nmap
- to export the scan into a Json file, use the
--jsonor-jflag- 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
--quietor-qflag, 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
singleverb 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
listverb can be called by its initial too
rns l interfaces
- to export the listing into a Json file, use the
--jsonor-jflag
rns list ports -j > report.json
- to list the ports openend on local machine, use the
list portsverb, and both TCP and UDP open ports will be shown
rns list ports
- to only view TCP or UDP, pass
tcporudpafterportsverb
rns list ports tcp
- to list local machine's IP addresses use
list addressesverb
rns list addresses
- to list local machine's network interfaces use
list interfacesverb
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
monitorverb, followed by the interface's name
rns monitor eth0
- activity is displayed in bytes by default, but using
-bor--bitflag, activity gets displayed in bits
rns monitor eth0 -b
- to set an interface's status (such as
upordown), usesetverb- this operation requires root privilegies, and in some cases running with
sudomight not be enough
- this operation requires root privilegies, and in some cases running with
rns set interface eth0 status up
- run
rns helpto get help
- version can be checked running
rns versionorrns v