当前位置: 首页 >> 应用软件 >> 网络相关 >> hping - 强大的TCP/IP工具
 

hping - 强大的TCP/IP工具

作者:      来源:zz     发表时间:2006-10-11     浏览次数:      字号:    

hping-强大的TCP/IP工具


          原著:HPING制作者 翻译:CIEL 106130@SOHU.COM
          hping是一个基于命令行的TCP/IP工具,它在UNIX上得到很好的应用,不过它并非仅仅一个
          ICMP请求/响应工具,它还支持TCP.UDP.ICMP,RAW-IP协议,以及一个路由模型
          HPING一直被用作安全工具,可以用来测试网络及主机的安全,它有以下功能
          1:防火墙探测
          2:高级端口扫描
          3:网络测试;(可以用不同的协议,TOS,数据包碎片来实
          现此功能)
          4:手工MTU发掘
          5:高级路由(在任何协议下都可一实现)
          6:OS指纹判断
          7:细微UPTIME猜测
          HPING也可以被研究人员用来学习TCP/IP,在以下OS上它可以运行
          LINUX,FREEBSD,NETBSD,OPENBSD,SOLARIS
          目前最新版本为HPING3(我用的是HPING2,:),呵呵)
           
          HPING参数,可以用HPING -H来看,我就不多说了.下面介绍各参数的用法
          -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
          无非就是eth0之类的参数,自己的机器自己看吧,别告诉我你连这都不知道,一般我不指定这参
          数,hping一样工作正常.
          -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 http://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
          [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 http://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
          [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 在某些规则下可探知主机是否存活
          另外的:
          标准TCP输出格式: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0
          win=0 rtt=0.4 ms
          当用HPING -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
          自己比较其中异同吧
          标准UDP输出 len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms
          ICMP输出格式: 主机可达时: ICMP Port Unreachable from ip=192.168.1.1
          name=nano.marmoc.net
          主机不可到达时:TTL 0 during transit from ip=192.168.1.1
          name=nano.marmoc.net
     
          标准TCP输出格式: len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0
          win=0 rtt=0.4 ms
          当用HPING -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
          自己比较其中异同吧
          标准UDP输出 len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms

责任编辑 webmaster

 
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •