nrev
Cross-platform Network Mapper. Cross-platform Network Mapper. You can download archives of precompiled binaries from the releases . If you have Rust and the Cargo package manager installed on your system, you can install (download and build) Or you can use binstall for install nrev from github release. To scan the default 1000 ports on a target, simply specify the target (-s for service detection, -o for OS detection) See Scan default 1000 ports and enable service and OS detection for open ports Specify the ports Specify the range By default, nrev determines the connection timeout or waiting time until packet reception (before concluding the scan task) based on the results of the initial PING. ICMP Host scan TCP Host scan Default ICMP Ping UDP Ping TCP Ping UDP Trace You can specify the interval in milliseconds for faster trace. Granting capabilities to the Assign necessary capabilities to the nrev binary Run nrev as an unprivileged user: For environments with multiple users, requiring privilege escalation each time nrev is run can enhance security. On macOS, managing access to the Berkeley Packet Filter (BPF) devices is necessary for Install prebuilt binaries via shell script Install prebuilt binaries via Homebrew View on GitHub
Designed to be used in network scan, mapping and probes. Features
Supported platforms
Installation
Install prebuilt binaries via shell script
|
Install prebuilt binaries via powershell script
|
From Releases
Cargo
nrev
with the following command:cargo install nrev
cargo binstall nrev
Basic Usage
Port Scan Example
nrev port yourcorpone.com -s -o
nrev port 192.168.1.10 -s -o
Sub-commands and Options
Usage: nrev [OPTIONS] <COMMAND>
Commands:
port Scan ports on the target(s) (TCP/QUIC)
host Discover alive hosts (ICMP/UDP/TCP etc.)
ping Simple ping (ICMP/UDP/TCP)
trace Traceroute (UDP)
nei Neighbor discovery (ARP/NDP)
domain Subdomain enumeration
interface Show network interface(s)
help Print this message or the help of the given subcommand(s)
Options:
--log-level <LOG_LEVEL> Global log level [default: info] [possible values: error, warn, info, debug, trace]
--log-file Log to file (in addition to stdout)
--log-file-path <FILE> Log file path (default: ~/.nrev/logs/nrev.log)
--quiet Suppress all log output (only errors are shown)
-o, --output <FILE> Save output to file (JSON format)
--no-stdout Suppress stdout console output (only save to file if -o is set)
-h, --help Print help
-V, --version Print version
nrev <sub-command> -h
for more detail. Examples
Port scan
nrev port yourcorpone.com -s -o
nrev port yourcorpone.com --ports 22,80,443,5000,8080
nrev port yourcorpone.com --ports 20-100
Settings
The initial PING is executed in the order of ICMP Ping, UDP Ping, TCP Ping, and if successful, proceeds to the next scan task.
If all PING attempts fail, nrev exits before executing the scan. This step can be skipped by setting the --noping
flag.
For other settings, please refer to nrev port -h
for details. Host scan
nrev host 192.168.1.0/24
nrev host /path/to/list/hostlist.txt
nrev host 192.168.1.0/24 --proto tcp --ports 80
Ping
nrev ping 1.1.1.1 -c 4
nrev ping 1.1.1.1 --proto udp
nrev ping 1.1.1.1 --proto tcp --port 80
Traceroute
nrev trace 8.8.8.8
nrev trace 8.8.8.8 --interval-ms 500
Subdomain scan
nrev subdomain yourcorpone.com --wordlist /path/to/wordlist/top-1000.txt
Neighbor (ARP/NDP)
nrev nei 192.168.1.1
Specify the network interface
nrev port 10.10.11.14 --interface tun0
Privileges
nrev
uses a raw socket which require elevated privileges. Execute with administrator privileges. Note for Linux Users
nrev
requires elevated privileges to send/receive raw-packet. On Linux, you can configure these privileges using two main methods: 1. Using
setcap
nrev
binary allows it to operate with the necessary privileges without requiring sudo
for each execution.
This method is recommended for single-user machines or in environments where all users are trusted.
Capabilities Explained:
cap_sys_ptrace,cap_dac_read_search
: Allows nrev
to access /proc/<pid>/fd/
to identify which open port belongs to which process.cap_net_raw,cap_net_admin
: Enables packet capturing capabilities. 2. Using
sudo
(for multi-user environments)sudo nrev
Note for macOS Users
nrev
to send/receive raw-packet Alternatively, of course, you can also use sudo
to temporarily grant the necessary permissions. Install
chmod-bpf
to automatically manage permissions for BPF devices:curl --proto '=https' --tlsv1.2 -LsSf https://github.com/shellrow/chmod-bpf/releases/latest/download/chmod-bpf-installer.sh | sh
Check BPF device permissions
chmod-bpf check
Install the chmod-bpf daemon to automatically manage BPF device permissions
sudo chmod-bpf install
Note for Windows Users
nrev
to send/receive raw-packet on Windows