十分有用的网络工具hping

Hping的主要功能有:

  防火墙测试

  端口扫描

  网络检测,可以用不同的协议、服务类型(TOS)、IP分片

  手工探测MTU(最大传输单元)路径

  先进的路由跟踪,支持所有的协议

  远程操作系统探测

  远程的运行时间探测

  TCP/IP堆栈审计


hping下载及编译:

        http://www.hping.org/  

        INSTALL中有详细说明

        ./configure (报出错误先记着不管)

        make   (缺库安装相应的库、报bytesex错误,直接将报错语句删除)


hping使用方法:

-H --HELP 显示帮助 

-v -VERSION 版本信息 

-c --count count 发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑 

-i --interval 包发送间隔时间(单位是毫秒) 缺省时间是1秒,此功能在增加传输率上很重要,在idle/spoofing扫描时此功能也会被用到,可以参考hping-howto获得更多信息 

-fast 每秒发10个数据包,似乎可用作dos攻击 

-n -nmeric 数字输出,象征性输出主机地址 

-q -quiet 退出.什么都不会输出,除了开始结诉时间 

-I --interface interface name 指定借口 

-v --verbose 显示很多信息,TCP回应一般如下: 

len=46 ip=192.168.1.1 flags=RADF seq=0 ttl=255 id=0 win=0 rtt=0.4ms tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0 

-D --debug 进入debug模式 遇到麻烦时,比如用HPING遇到一些不合习惯的时候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......) 

-z --BIND 快捷键的使用

-Z --unbind 消除快捷键 


以下是协议选择项 

-O --rawip RAWIP模式,在此模式下,HPING会发送带数据的IP头,....原文如下:RAW IP mode, in this mode hping2 will send IP header with data appended with --signature and/or --file, see also --ipproto that allows you to set the ip protocol field. 

-1 --icmp ICMP模式,此模式下,HPING会发送IGMP应答报文,可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文 

-2 --udp UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,可以用--baseport --destport --keep选项指定其模式 

-9 --listen signatuer hping的listen模式,用此模式,HPING会接收指定的数据,比如:命令如下:hping --listen TEST 接收数据如下时:234-5488-TESThello_word,会显示 

hello_word 


以下是有关IP的选项 

-a --spoof hostname 伪造IP攻击,防火墙就不会记录真实IP,回应的包也接收不到了,比如,你是192.168.3.1 伪装成192.168.3.2发包给192.168.3.3, 192.168.3.3的防火墙会记录192.168.3.2发包记录,但是192.168.3.3的回应也会发回192.168.3.2,而你却接收不到192.168.3.3的回答包的,具体可以参见HPING2-HOWTO 

-t --ttl time to live 本选项可以指定发出包的TTL值,这选项一般和--traceroute 或--bind一起用,比如:hping 1.1.1.1 -t 1 --traceroute,(这选项数值大了,和PING没区别,数值小了,包似乎到不了主机,只停留在到达路由主机上) 

-H --ipproto 在RAW IP模式里选择IP协议 

-W --WINID UNIX ,WINDIWS的id回应不同的 ,这选项可以让ID回应和WINDOWS一样 

-r --rel 更改ID的,可以让ID曾递减输出,详见HPING-HOWTO 

-F --FRAG 更改包的FRAG ,这可以测试对方对于包碎片的处理能力,缺省的'virtual mtu'是16字节, 

-x --morefrag 此功能可以发送碎片使主机忙于恢复碎片而造成主机的拒绝服务 

-y -dontfrag 发送不可恢复的IP碎片,这可以了解更多的MTU PATH DISCOVERY 

-G --fragoff fragment offset value set the fragment offset 

-m --mtu mtu value 用此项后 ID数值变得很大 50000没指定此项时3000-20000左右

-o --tos hex tos TOS=TYPE OF SERVICE

-G --rroute 记录路由,可以看到详悉的数据等等,最多可以经过9个路由,即使主机屏蔽了ICMP报文,路由只涉及IP,所以任可以记录,在TCP UDP下,也可以记录路由的


ICMP选项 

-C --ICMPTYPE TYPE 指定ICMP类型,缺省是ICMP ECHO REQUEST 

-K --ICMPCODE CODE 指定ICMP代号,缺省0 

--icmp-ipver 把IP版本也插入IP头, 

--icmp-iphlen 设置IP头的长度,缺省为5 (32字节) 

--icmp-iplen 设置IP包长度 

--icmp-ipid 设置ICMP报文IP头的ID,缺省是RANDOM 

--icmp-ipproto 设置协议的,缺省是TCP 

-icmp-cksum 设置校验和的,没什么的 

-icmp-ts Alias for --icmptype 13 (to send ICMP timestamp requests) 

--icmp-addr Alias for --icmptype 17 (to send ICMP address mask requests) 


TCP/UDP 选项 

-s --baseport source port hping用源端口猜测回应的包,它从一个基本端口计数,每收一个包,端口也加1,这规则可以自己定义,如用-K --KEEP可以使端口不会增加,每次的基本端口是随意的 

-p --deskport [+][+]desk port 设置目标端口,缺省为0,一个加号设置为:每发送一个请求包到达后,端口加1,两个加号为:每发一个包,端口数加1, 

--keep

-w --win 发的大小和windows一样大,64BYTE 

-O --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4. 

-m --tcpseq 设置TCP序列数, 

-l --tcpck 设置TCP ack的 

-Q --seqnum 搜集序列号的,这对于分析TCP序列号有很大作用,例如: 

#hping2 win98 --seqnum -p 139 -S -i u1 -I eth0 

HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes 

2361294848 +2361294848 

2411626496 +50331648 

2545844224 +134217728 

2713616384 +167772160 

2881388544 +167772160 

3049160704 +167772160 

3216932864 +167772160 

3384705024 +167772160 

3552477184 +167772160 

3720249344 +167772160 

3888021504 +167772160 

4055793664 +167772160 

4223565824 +167772160 

第一排是序列号,第2排是应答的序列号,可以预见主机的序列号(三次握手后,数值基本不再变,定在167772160了) 

-b --badcksum 发出一个错误校验和的UDP/TCP包 

-tcp-timestamp 

-b --badcksum 发出一个错误校验和的UDP/TCP包 

-tcp-timestamp 

-F -fin set FIN tcp flag 

-S --syn set SYN tcp flag. 

-R --rst set RST tcp flag. 

-P --push set PUSH tcp flag. 

-A --ack set ACK tcp flag. 

-U --urg set URG tcp flag. 

-X --xmas set Xmas tcp flag. 

-Y --ymas set Ymas tcp flag. 


其他: 

-d --data data size 设置包大小,指定DATA为40时,输出如下: 

HPING www.site.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes 

-E --file filename 指定包内容如FILENAME里的一样 

-e --sign signature 指定包头的内容 

-j --dump Dump received packets in hex. 

-J --print Dump received packets's printable characters. -B --safe 

-B --safe 确保数据完整发出 例如:要发送A的/etc/passwd给B 

[host_a]# hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd 

[host_b]# hping2 host_a --listen signature --safe --icmp 

-U --END 如果用了--FILE项,当EOF到达后,此项可以帮助自动停止接收无用的数据, 

-T --traceroute 路由模式

--tr -keep-ttl 一个和路由有关的项,举例: hping2 host --traceroute --ttl 5 --tr-keep-ttl. 

--tr-stop 当ICMP一旦不可到达时,自动停止发送 

--tr-no-rrt 在路由模式里不显示RTT信息, 

--tcpexitcode 在某些规则下可探知主机是否存活 

-F -fin set FIN tcp flag 

-S --syn set SYN tcp flag. 

-R --rst set RST tcp flag. 

-P --push set PUSH tcp flag. 

-A --ack set ACK tcp flag. 

-U --urg set URG tcp flag. 

-X --xmas set Xmas tcp flag. 

-Y --ymas set Ymas tcp flag. 


其他: 

-d --data data size 设置包大小,注意:指定DATA为40时,输出如下: 

HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes 

-E --file filename 指定包内容如FILENAME里的一样 

-e --sign signature 指定包头的内容 

-j --dump Dump received packets in hex. 

-J --print Dump received packets's printable characters. -B --safe 

-B --safe 确保数据完整发出 例如:要发送A的/etc/passwd给B 




你可能感兴趣的:(十分有用的网络工具hping)