一个基于eBPF/XDP的高性能端口扫描器,支持TCP SYN和ICMP扫描模式。
在命令行中,可以使用以下参数来运行扫描器:
-i
:要附加的网络接口 默认eth0。-t
:每秒发送的数据包的速率限制。-p
:要扫描的TCP端口,可以是单个端口,也可以是端口范围 默认80,443。-srcmac
:发送数据包的源MAC地址 为空自动获取。-dstmac
:发送数据包的目标MAC地址 为空自动获取。-srcip
:发送数据包的源IP地址 为空自动获取。-in
:包含目标IP/CIDR列表的输入文件,或者直接作为参数传递。-out
:将结果写入的输出文件,默认为stdout。-srcport
:TCP源端口 默认1234。-d
:是否启用调试模式。-m
:扫描模式,可以是icmp或syn。-xr
:是否使用XDP进行包捕获。-fn
:在XDP套接字中使用的帧数。
例如,以下命令将在网络接口eth0上以每秒100000个数据包的速率,扫描TCP端口80和443:
./xdpscan -i eth0 -t 100000 -m syn -p 80,443 1.1.1.1
Linux内核需要支持eBPF 并使用支持XDP的网卡 网卡驱动支持列表
某些虚拟网卡只支持单队列,网卡在高速发包的同时通过XDP捕获数据包会出现性能问题。
在探测单一网络时发包速率过高,可能会导致目标网络瘫痪。
项目仅用于研究目的,请在授权范围的测试网络进行扫描探测,不要用于互联网上未经授权的网络扫描。