4 个版本 (重大更新)
0.3.0 | 2024 年 7 月 21 日 |
---|---|
0.2.0 | 2024 年 7 月 21 日 |
0.1.0 | 2024 年 7 月 18 日 |
0.0.1 | 2024 年 7 月 17 日 |
#1 in #端口扫描
每月下载量 328
1MB
16K SLoC
nrev
简单快速的网络揭示/映射器。用 Rust 编写。
设计用于网络映射、探测和安全测试。
功能
- 端口扫描
- 主机扫描
- Ping
- Traceroute
- 邻居发现
- 子域名扫描
- 显示网络接口
支持的平台
- Linux
- macOS
- Windows
安装
通过 shell 脚本安装预构建的二进制文件
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/shellrow/nrev/releases/latest/download/nrev-installer.sh | sh
通过 powershell 脚本安装预构建的二进制文件
irm https://github.com/shellrow/nrev/releases/latest/download/nrev-installer.ps1 | iex
通过 Homebrew 安装预构建的二进制文件
brew install shellrow/tap-nrev/nrev
从版本中
您可以从 版本 下载预编译二进制文件的存档。
Cargo
如果您已经在您的系统上安装了 Rust 和 Cargo 软件包管理器,您可以使用以下命令安装(下载和构建) nrev
cargo install nrev
或者您可以使用 binstall 从 GitHub 发布版安装 nrev。
cargo binstall nrev
基本用法
默认端口扫描
要扫描目标上的默认 1000 个端口,只需指定目标
nrev --target scanme.nmap.org
子命令和选项
Usage: nrev [OPTIONS] [COMMAND]
Commands:
port Scan port. nrev port --help for more information
host Scan host in specified network or host-list. nrev host --help for more information
ping Ping to specified host. nrev ping --help for more information
trace Traceroute to specified host. nrev trace --help for more information
subdomain Find subdomains. nrev subdomain --help for more information
nei Resolve IP address to MAC address
interfaces Show network interfaces
interface Show default network interface
check Check dependencies (Windows only)
help Print this message or the help of the given subcommand(s)
Options:
-t, --target <target> Specify the target host. IP address or Hostname
-i, --interface <interface_name> Specify the network interface
--noping Disable initial ping
-F, --full Scan all ports (1-65535)
-j, --json Displays results in JSON format.
-o, --save <file_path> Save scan result in JSON format - Example: -o result.json
-h, --help Print help
-V, --version Print version
示例
端口扫描
扫描默认 1000 个端口
nrev port scanme.nmap.org
指定端口
nrev port scanme.nmap.org --ports 22,80,443,5000,8080
指定范围
nrev port scanme.nmap.org --range 20-100
扫描知名端口
nrev port scanme.nmap.org --wellknown
设置
默认情况下,nrev 根据初始 PING 的结果确定接收数据包的等待时间(在完成扫描任务之前),
初始 PING 按照以下顺序执行:ICMP Ping、UDP Ping、TCP Ping(在端口 80 上),如果成功,则继续下一个扫描任务。
如果所有 PING 尝试都失败,nrev 在执行扫描之前退出。可以通过设置 --noping
标志来跳过此步骤。
有关其他设置,请参阅 nrev port -h
以获取详细信息。
主机扫描
ICMP 主机扫描
nrev host 192.168.1.0/24
nrev host <path-to-host-list>
TCP 主机扫描
nrev host 192.168.1.0/24 -P TCP --port 80
Ping
默认 ICMP Ping
nrev ping 1.1.1.1
UDP Ping
nrev ping 1.1.1.1 -P UDP
TCP Ping
nrev ping 1.1.1.1:443 -P TCP
Traceroute
TCP Ping
nrev trace 8.8.8.8
您可以指定以毫秒为单位的间隔以加快速度。
nrev trace 8.8.8.8 --rate 500
子域名扫描
nrev subdomain google.com
邻居(ARP/NDP)
nrev nei 192.168.1.1
指定网络接口
nrev -i tun0 port 10.10.11.14
权限
nrev
使用原始套接字,需要提升权限。请以管理员权限执行。
Linux 用户注意事项
nrev
发送/接收原始数据包需要提升权限。在 Linux 上,您可以使用两种主要方法来配置这些权限
1. 使用 setcap
将权限授予 nrev
二进制文件,允许其在不需要每次执行都使用 sudo
的情况下操作所需的权限。
此方法适用于单用户机器或所有用户都受信任的环境。
将必要的权限分配给 nrev 二进制文件
sudo setcap 'cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep' $(command -v nrev)
以非特权用户运行 nrev
nrev
权限说明
cap_sys_ptrace,cap_dac_read_search
: 允许nrev
访问/proc/<pid>/fd/
来识别哪个打开的端口属于哪个进程。cap_net_raw,cap_net_admin
: 启用数据包捕获功能。
2. 使用 sudo
(多用户环境)
对于有多个用户的环境,每次运行 nrev 时都需要提升权限可以增强安全性。
sudo nrev
macOS 用户注意事项
在 macOS 上,管理对伯克利数据包过滤器(BPF)设备的访问对于 nrev
发送/接收原始数据包是必要的。当然,您也可以使用 sudo
临时授予必要的权限。
安装 chmod-bpf
以自动管理 BPF 设备的权限
通过 shell 脚本安装预构建的二进制文件
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/shellrow/chmod-bpf/releases/latest/download/chmod-bpf-installer.sh | sh
通过 Homebrew 安装预构建的二进制文件
brew install shellrow/tap-chmod-bpf/chmod-bpf
检查 BPF 设备权限
chmod-bpf check
安装 chmod-bpf 守护程序以自动管理 BPF 设备权限
sudo chmod-bpf install
Windows 用户注意事项
- 确保您已安装 Npcap,这是在 Windows 上使
nrev
发送/接收原始数据包所必需的 - 从 Npcap 下载并安装 Npcap。在安装过程中,选择“以 WinPcap API 兼容模式安装 Npcap”。
- 构建依赖项
- 将来自 Npcap SDK 或 WinPcap 开发者包的 Packet.lib 文件放置在位于此存储库根目录的 lib 目录中。
- 您可以使用 %LIB% 或 $Env:LIB 环境变量中列出的任何位置。
- 对于 64 位工具链,Packet.lib 位于 /Lib/x64/Packet.lib。
- 对于 32 位工具链,Packet.lib 位于 /Lib/Packet.lib。
依赖项
~26–40MB
~746K SLoC