安装:
yum install hping3
简介:
hping3是一个网络工具,可以发送定制的TCP/IP数据包,并显示目标应答,就像ping程序对ICMP应答所做的那样。hping3处理碎片,任意数据包的主体和大小,
并可用于传输封装在支持协议下的文件。可用于如下应用场景:
- 防火墙测试
- 高级端口扫描
- 网络性能测试,使用不同的协议,TOS,分片
- 路径MTU发现
- 远程操作系统指纹
- TCP/IP 协议栈 Audit
hping3用法:
hping3 host [options]
————————————————
参数缩写 参数 描述
-h --help 显示帮助
-v --version 显示版本
-c --count 发送数据包的数目
-i --interval 发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000)
--fast 等同 -i u10000 (每秒10个包)
--faster 等同 -i u1000 (每秒100个包)
--flood 尽最快发送数据包,不显示回复。
-n --numeric 数字化输出,象征性输出主机地址。
-q --quiet 安静模式
-I --interface 网卡接口 (默认路由接口)
-V --verbose 详细模式
-D --debug 调试信息
-z --bind 绑定ctrl+z到ttl(默认为目的端口)
-Z --unbind 取消绑定ctrl+z键
--beep 对于接收到的每个匹配数据包蜂鸣声提示
————————————————
hping3 模式选择:
————————————————
编号 模式 描述
default mode TCP 默认模式是 TCP
-0 或 --rawip RAWIP模式 在此模式下HPING会发送带数据的IP头。即裸IP方式。使用RAWSOCKET方式。
-1 或 --icmp ICMP模式 此模式下HPING会发送IGMP应答报,你可以用–ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
-2 或 --udp UDP 模式 缺省下,HPING会发送UDP报文到主机的0端口,你可以用–baseport --destport --keep选项指定其模式。
-8 或 --scan SCAN mode 扫描模式 指定扫描对应的端口。Example: hping --scan 1-30,70-90 -S www.target.host // 扫描
-9 或 --listen listen mode 监听模式
————————————————
hping3 通用设置:
————————————————
参数缩写 参数 描述
-d --data data size (default is 0) // 发送数据包大小,缺省是0。
-E --file 文件数据
-e --sign 添加“签名”
-j --dump 转储为十六进制数据包
-J --print 转储为可打印字符
-B --safe 启用“安全”协议
-u --end 告诉你什么时候–file达到EOF并防止倒回
-T --traceroute traceroute模式(等同使用 --bind 且–ttl 1)
--tr-stop 在traceroute模式下收到第一个不是ICMP时退出
--tr-keep-ttl 保持源TTL固定,仅用于监视一跳
--tr-no-rtt 不要在跟踪路由模式下计算/显示RTT信息 ARS包描述(新增功能,不稳定)ARS packet description (new, unstable)
--apd-send 发送APD描述数据包
————————————————
hping3 典型应用场景:
————————————————
防火墙测试:测试防火墙对ICMP包的反应、是否支持traceroute、是否开放某个端口、对防火墙进行拒绝服务攻击(DoS attack)
hping3 -S -c 1000000 -a 10.10.10.10 -p 21 10.10.10.13
-S 指定TCP包的标志位SYN,
-c 1000000 指定发送1000000个数据包,
-a 10.10.10.10 源地址欺骗,伪造源地址为10.10.10.10,
-p 21指定探测的目的端口
端口扫描: Hping3支持指定TCP各个标志位、长度等信息。以下示例可用于探测目标机的80端口是否开放。
hping3 -I eth0 -S 192.168.10.1 -p 80
-I eth0指定使用eth0端口,
-S指定TCP包的标志位SYN,
-p 80指定探测的目的端口
文件传输: Hping3支持通过TCP/UDP/ICMP等包来进行文件传输。相当于借助TCP/UDP/ICMP包建立隐秘隧道通讯。实现方式是开启监听端口,对检测到的签名(签名为用户指定的字符串)的内容进行相应的解析
在接收端开启服务:
hping3 192.168.1.159 --listen signature --safe --icmp
监听ICMP包中的签名,根据签名解析出文件内容。
在发送端使用签名打包的ICMP包发送文件:
hping3 192.168.1.108 --icmp ?d 100 --sign signature --file /etc/passwd
将/etc/passwd密码文件通过ICMP包传给192.168.10.44主机。发送包大小为100字节(-d 100),发送签名为signature(-sign signature)。
————————————————
Hping3输出参数:
————————————————
标准TCP输出格式如下:
len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
len是从数据链路层捕获的数据的大小(以字节为单位),不包括数据链路头的大小。
ip是源IP地址
flags是TCP标志位,R代表RESET,S代表SYN, A代表ACK,F代表FIN, P代表PUSH,U代表URGENT,X代表不是标准的0x40,Y代表不是标准的0x80
输出中包含DF代表IP头部的不分片位开启
seq是报文的序列号,对于TCP/UDP报文,是源端口号;对于ICMP报文,是sequence字段 id是IP ID字段
win是TCP窗口大小
rtt是round trip time(往返时间),单位是毫秒
如果是用hping3 命令时加上了-V的参数,返回值将包含更多信息:
len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms tos=0 iplen=40 seq=0 ack=1223672061 sum=e61d urp=0
tos是IP头的服务字段类型
iplen是IP总长度字段
seq和ack是TCP报头中的seq和ack 32位数字
sum是TCP报头校验和值
urp是TCP urgent point 的值
————————————————
例子
————————————————
————————————————
评论区