hping3 是一个网络工具,能够发送自定义 ICMP/UDP/TCP 数据包,并显示目标回复,就像 ping 使用 ICMP 回复一样。它处理分片和任意大小的数据包,并可用于在支持的协议下传输文件。使用 hping3,你可以测试防火墙规则,执行端口扫描,使用不同协议测试网络性能,进行路径 MTU 发现,执行不同协议下的跟踪路由操作,识别远程操作系统指纹,审计 TCP/IP 栈等。hping3 可以使用Tcl语言编写脚本。
使用如下命令进行测试:
hping3 -I enp0s3 -d 100 --icmptype 8 10.0.2.3 -c 2
hping3 -I enp0s3 -d 100 --icmptype 0 10.0.2.3 -c 2
hping3 -I enp0s3 -d 100 --icmptype 3 10.0.2.3 -c 1
hping3 -I enp0s3 -d 50 --icmptype 4 10.0.2.3 -c 1
hping3 -I enp0s3 -d 50 --icmptype 5 10.0.2.3 -c 1
hping3 -I enp0s3 -d 50 --icmptype 11 10.0.2.3 -c 1
hping3 -I enp0s3 --icmptype 13 10.0.2.3 -c 1
hping3 -I enp0s3 --icmptype 17 10.0.2.3 -c 1
其中选项参数 -I(--interface)
用于指定网口名, -d(--data)
用于指定数据包的载荷长度,--icmptype
用于指定 icmp 的类型, -c(--count)
用于指定发包的个数。
并在测试的网口用 tcpdump 抓包并保存到文件:
然后将 hping-1.pcap 文件导出后用 wireshark 打开进行学习,截图如下:
根据命令手册,还可以设定 TLL、TOS 等参数后进行测试。
2. 使用 hping3 进行 TCP SYN 扫描
当目标端口没有监听时测试截图如下:
当目标端口开启监听时测试截图如下:
3. 使用 hping3 进行 TCP服务的压力测试
样例命令如下:
hping3 --faster -S -p 2000 192.168.56.200 -c 10000
hping3 -i u0 -S -p 2000 192.168.56.200 -c 10000
hping3 --flood -S -p 2000 192.168.56.200 -c 10000
请注意,由于 hping3 可以模拟多种类型的流量,并且可以被用于发起拒绝服务攻击,因此在使用时需要特别小心。务必只在合法的安全评估和测试环境中使用 hping3,并遵守相关的法律和法规。
参考文档: