hping 命令介绍

vps.dance 2023-04-12 764℃

hping 是命令行的用于生成和解析 TCP/IP 协议数据包汇编分析的开源网络工具.
最新版是 hping3, 支持 TCP/UDP/ICMP 和 RAW-IP 协议, 具有路由跟踪模式, 能够在覆盖的信道之间发送文件以及许多其他功能.

hping3 常用于 tcp ping、安全测试、端口扫描、防火墙测试等工作, hping 优势在于能够定制数据包的各个部分, 因此可以灵活对目标机经行细致的探测.

安装 hping3

# Ubuntu/Debian
apt-get install -y hping3
# CentOS/RHEL
yum install -y hping3

hping3 参数列表

  -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 指定网卡 (比如 eth0)
  -V  --verbose   详细模式
  -D  --debug     调试信息
  -z  --bind      发出去包的TTL, 绑定ctrl+z快捷键(默认绑定, 按1下TTL值加1, 按2下减1)
  -Z  --unbind    取消绑定 ctrl+z 快捷键
      --beep      每收到一个匹配的数据包就发出蜂鸣声
# Mode 模式选择 (默认模式是 TCP)
  -0  --rawip      原始IP模式, hping会发送带数据的IP头
  -1  --icmp       ICMP 模式
  -2  --udp        UDP 模式
  -8  --scan       SCAN 模式 (例如: hping --scan 1-30,70-90 -S www.target.host)
  -9  --listen     监听模式
# IP 模式 参数
  -a  --spoof      伪造源 IP
  --rand-dest      随机目标地址(例如: hping3 -I eth0 --rand-dest 192.168.1.x, x 代表 0-255)
  --rand-source    使用随机地址伪装自己的地址
  -t  --ttl        指定 TTL 值 (默认: 64)
  -N  --id         hping 中的 ID 值 (默认 随机)
  -W  --winid      使用 WINDOWS 的 id 字节顺序 (UNIX/WINDOWS 的回应不同)
  -r  --rel        相对 id 字段 ID 递减输出
  -f  --frag       将数据包分片后传输,可以通过薄弱的 acl (访问控制列表)
  -x  --morefrag   设置更多的分片标记
  -y  --dontfrag   设置不加分片标记
  -g  --fragoff    设置分片偏移
  -m  --mtu        设置虚拟 MTU, 当数据包 > MTU 时, 要使用 –frag 进行分片
  -o  --tos        指定服务类型 (默认 0x00),可使用 --tos help 查看帮助
  -G  --rroute     记录 IP 路由,并显示路由缓冲
  --lsrr           松散源路由
  --ssrr           严格源路由
  -H  --ipproto    设置 IP 协议,仅在 RAW IP 模式下使用
# ICMP 模式 参数
  -C  --icmptype   指定 ICMP 类型 (默认 回显请求)
  -K  --icmpcode   指定 ICMP 代码 (默认 0)
      --force-icmp 强制 ICMP 类型 (默认 仅发送支持的类型)
      --icmp-gw    ICMP 重定向 (默认 0.0.0.0)
      --icmp-ts    ICMP 时间戳,等同于 --icmp --icmptype 13
      --icmp-addr  ICMP 子网地址,等同于 --icmp --icmptype 17
      --icmp-help  ICMP 帮助
# UDP/TCP 模式 参数
  -s  --baseport   源端口 (默认 随机)
  -p  --destport   设置目标端口 (默认为0)
  -k  --keep       保持源端口
  -w  --win        设置winsize窗口大小 (默认为64)
  -O  --tcpoff     设置伪造的 TCP 数据偏移量 (取代 TCP 地址长度除以4)
  -Q  --seqnum     仅显示 TCP 序列号
  -b  --badcksum   尝试发送带有错误的IP校验和的数据包。许多系统会修复发送数据包的IP校验和, 因此会得到错误的UDP/TCP校验和
  -M  --setseq     设置 TCP 序列号
  -L  --setack     设置 TCP 确认号
  -F  --fin        设置 FIN 标志
  -S  --syn        设置 SYN 标志
  -R  --rst        设置 RST 标志
  -P  --push       设置 PUSH 标志
  -A  --ack        设置 ACK 标志
  -U  --urg        设置 URG 标志
  -X  --xmas       设置 X 未使用标志 (0x40)
  -Y  --ymas       设置 Y 未使用标志 (0x80)
  --tcpexitcode    使用最后一个 tcp->th_flags 作为退出代码
  --tcp-mss        使用给定的值启用 TCP MSS 选项
  --tcp-timestamp  启用 TCP 时间戳选项以猜测 HZ/uptime
# Common 通用参数
  -d  --data       发送数据包大小 (默认为0)
  -E  --file       文件数据
  -e  --sign       添加'签名'
  -j  --dump       以十六进制转储数据包
  -J  --print      转储可打印字符
  -B  --safe       启用'安全'协议
  -u  --end        当使用 --file 选项, 到达 EOF 时提示, 并阻止rewind回退
  -T  --traceroute traceroute 模式 (包含 --bind 和 --ttl 1)
  --tr-stop        在 traceroute 模式下, 接收到第一个非 ICMP 数据包时退出
  --tr-keep-ttl    保持源 TTL 固定,有助于监视单个跳数
  --tr-no-rtt      在 traceroute 模式下不计算/显示 RTT 信息
# ARS 数据包说明 (new, unstable)
  --apd-send       使用 APD 描述的数据包发送 (参见 docs/APD.txt)

常用 hping3 命令

  • tcp ping
    hping3 -S -p 80 <IP地址> tcp ping 80 端口
  • 端口扫描
    hping3 -S --scan 21-500 <IP地址> 扫描 21-500 端口

标签: hping, Linux

非特殊说明, 所有文章均为原创.