Simple & fast rust port scanner
Report Bug
·
Request Feature
NScan is a simple cross-platform IPv4 and IPv6 port scanner written in Rust, supporting SYN, FIN and Connect scans.
You can scan one address such as example.com
or 1.1.1.1
, or a CIDR range such as 127.0.0.0/8
.
You can select just one port to scan -p 20
, a selection of ports -p 20,80
, a range of ports -p 20-25
or any mix of the three -p 20,80-90,25
.
Download the lastest release or compile yourself with cargo build --release
.
Run NScan -h
to view the help message
Simple port scanner written in rust. Supports SYN, Connect, and FIN scans
Usage: NScan [OPTIONS] --host <HOST>
Options:
-H, --host <HOST> IP address, hostname, or CIDR range to scan
-p, --port-range <PORT_RANGE> Port to scan [default: 80]
-s, --scan-type <SCAN_TYPE> Scan type [default: syn] [possible values: syn, connect, fin]
-t, --timeout <TIMEOUT> Timeout in seconds (max 255) [default: 1]
-T, --threads <THREADS> Number of threads to use (4) [default: 4]
-h, --help Print help
Run sudo NScan -H 127.0.0.1
to run a SYN
scan on 127.0.0.1:80
(Ensure you use sudo or run as root on linux due to use of raw sockets)
NScan v1.0 - Network scanner
------------------------------
Scan configuration:
Target(s): 127.0.0.1 (1 addresses)
Port(s): 80 (1 ports)
Method: SYN
Timeout: 1 seconds
Threads: 4
Total scans: 1
------------------------------
Scan started at 12:21:03
Running...
Port 80 is closed (Received RST/ACK)
------------------------------
Scan completed in 0.00 seconds
Found 0 open ports
Run sudo NScan -H ::1 -p 443
to run a SYN
scan on ::1
(IPv6 loopback) port 443
(Ensure you use sudo or run as root on linux due to use of raw sockets)
NScan v1.0 - Network scanner
------------------------------
Scan configuration:
Target(s): ::1 (1 addresses)
Port(s): 443 (1 ports)
Method: SYN
Timeout: 1 seconds
Threads: 4
Total scans: 1
------------------------------
Scan started at 12:23:38
Running...
Port 443 is closed (Received RST/ACK)
------------------------------
Scan completed in 0.00 seconds
Found 0 open ports
Run NScan -H 1.1.1.1 -p 80 -s connect
to run a Connect
scan on 1.1.1.1
port 80. (No root required due to use of unpriviledged socket)
NScan v1.0 - Network scanner
------------------------------
Scan configuration:
Target(s): 1.1.1.1 (1 addresses)
Port(s): 80 (1 ports)
Method: Connect
Timeout: 1 seconds
Threads: 4
Total scans: 1
------------------------------
Scan started at 12:24:38
Running...
Port 80 is open
------------------------------
Scan completed in 0.02 seconds
Found 1 open ports
Open ports:
1.1.1.1:80 - OPEN
Run sudo NScan -H ::1 -t 10
to run a SYN
scan on ::1
port 80 with timeout set at 10 seconds
(Ensure you use sudo or run as root on linux due to use of raw sockets)
NScan v1.0 - Network scanner
------------------------------
Scan configuration:
Target(s): ::1 (1 addresses)
Port(s): 80 (1 ports)
Method: SYN
Timeout: 10 seconds
Threads: 4
Total scans: 1
------------------------------
Scan started at 12:28:56
Running...
Port 80 is closed (Received RST/ACK)
------------------------------
Scan completed in 0.00 seconds
Found 0 open ports
Run sudo NScan -H 127.0.0.0/24 -p 22 -t 1 -s syn -T 8
to run a SYN
scan on 127.0.0.0/24
port 22 with timeout 1 second
on 8 threads
(Ensure you use sudo or run as root on linux due to use of raw sockets)
NScan v1.0 - Network scanner
------------------------------
Scan configuration:
Target(s): 127.0.0.0/24 (256 addresses)
Port(s): 22 (1 ports)
Method: SYN
Timeout: 1 seconds
Threads: 2
Total scans: 256
------------------------------
Scan started at 12:32:21
Running...
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
Port 22 is closed (Received RST/ACK)
...... (output trimmed)
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Daniel Kern (NullString1) - @nullstring1_ - [email protected]
Website: https://nullstring.one Project Link: https://github.com/NullString1/NScan