求助,用hping模拟ICMP Redirectionarp攻击防火墙测试防火墙怎么组包

1542人阅读
Linux Problems(40)
Linux Commands(15)
暴露在外网环境的服务通常会只对白名单内的来源机器开放服务使用的端口,比如 B 机器只对 A 机器开放 TCP 8999 端口,这样会导致 A ping B 收不到回包,无法查看 TTL 与丢包率。
hping 能指定 IP/ICMP/TCP/UDP 进行 ping, 对于上述场景,使用 hping 的 TCP 模式即可解决。
hping 支持的模式
# hping --help
default mode
RAW IP mode
SCAN mode.
Example: hping --scan 1-30,70-90 -S www.target.host
listen mode
CentOS 安装 hping
yum install libpcap-devel
yum install tcl-devel
ln -s /usr/include/pcap/bpf.h /usr/include/net/bpf.h
rm -vf /usr/include/net/bpf.h
make install
cp -f hping3 /usr/sbin/
chmod 755 /usr/sbin/hping3
ln -s /usr/sbin/hping3 /usr/sbin/hping
ln -s /usr/sbin/hping3 /usr/sbin/hping2
ping tcp://:80 with SYN packet
(eth0 14.215.177.38): NO FLAGS are set, 40 headers + 100 data bytes
5 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
可见 tcp ping 不通,下面指定 SYN 包 ping
(eth0 14.215.177.38): S set, 40 headers + 100 data bytes
len=40 ip=14.215.177.38 ttl=55 id=36665 sport=80 flags=SA seq=0 win=8192 rtt=31.6 ms
len=40 ip=14.215.177.38 ttl=52 id=36434 sport=80 flags=SA seq=1 win=512 rtt=31.7 ms
len=40 ip=14.215.177.38 ttl=52 id=26944 sport=80 flags=SA seq=2 win=512 rtt=30.7 ms
len=40 ip=14.215.177.38 ttl=52 id=7870 sport=80 flags=SA seq=3 win=8192 rtt=30.3 ms
len=40 ip=14.215.177.38 ttl=52 id=2621 sport=80 flags=SA seq=4 win=512 rtt=31.0 ms
len=40 ip=14.215.177.38 ttl=55 id=5075 sport=80 flags=SA seq=5 win=512 rtt=31.2 ms
len=40 ip=14.215.177.38 ttl=52 id=15209 sport=80 flags=SA seq=6 win=8192 rtt=30.1 ms
len=40 ip=14.215.177.38 ttl=55 id=24403 sport=80 flags=SA seq=7 win=512 rtt=29.5 ms
len=40 ip=14.215.177.38 ttl=52 id=6698 sport=80 flags=SA seq=8 win=512 rtt=31.4 ms
len=40 ip=14.215.177.38 ttl=52 id=24439 sport=80 flags=SA seq=9 win=8192 rtt=31.6 ms
10 packets tramitted, 10 packets received, 0% packet loss
round-trip min/avg/max = 29.5/30.9/31.7 ms
ping tcp://www.httpbin.org:80 with ACK packet
HPING www.httpbin.org (eth0 54.175.219.8): A set, 40 headers + 100 data bytes
len=40 ip=54.175.219.8 ttl=39 DF id=37231 sport=80 flags=R seq=0 win=0 rtt=380.8 ms
len=40 ip=54.175.219.8 ttl=39 DF id=37232 sport=80 flags=R seq=1 win=0 rtt=366.1 ms
len=40 ip=54.175.219.8 ttl=38 DF id=37233 sport=80 flags=R seq=2 win=0 rtt=371.5 ms
len=40 ip=54.175.219.8 ttl=38 DF id=37234 sport=80 flags=R seq=3 win=0 rtt=383.4 ms
len=40 ip=54.175.219.8 ttl=39 DF id=37236 sport=80 flags=R seq=5 win=0 rtt=365.1 ms
len=40 ip=54.175.219.8 ttl=38 DF id=37237 sport=80 flags=R seq=6 win=0 rtt=379.8 ms
len=40 ip=54.175.219.8 ttl=38 DF id=37238 sport=80 flags=R seq=7 win=0 rtt=380.4 ms
len=40 ip=54.175.219.8 ttl=38 DF id=37239 sport=80 flags=R seq=8 win=0 rtt=367.9 ms
len=40 ip=54.175.219.8 ttl=39 DF id=37240 sport=80 flags=R seq=9 win=0 rtt=374.2 ms
10 packets tramitted, 9 packets received, 10% packet loss
round-trip min/avg/max = 365.1/374.4/383.4 ms
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:657448次
积分:7823
积分:7823
排名:第2620名
原创:224篇
转载:25篇
评论:22条
(4)(1)(3)(1)(1)(1)(1)(3)(1)(1)(2)(3)(3)(8)(8)(1)(4)(2)(4)(1)(10)(16)(3)(1)(2)(3)(2)(23)(4)(2)(12)(24)(10)(14)(3)(15)(3)(3)(2)(1)(23)(17)(3) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
华为防火墙配置培训(精品PPT)
下载积分:3800
内容提示:华为防火墙配置培训(精品PPT)
文档格式:PPT|
浏览次数:14|
上传日期: 10:41:20|
文档星级:
全文阅读已结束,如果下载本文需要使用
 3800 积分
下载此文档
该用户还上传了这些文档
华为防火墙配置培训(精品PPT)
官方公共微信用户名:昊昊荡荡
文章数:245
评论数:105
访问量:399095
注册日期:
阅读量:1297
阅读量:3317
阅读量:445441
阅读量:1130998
[匿名]pzlsun:
[匿名]pzlsun:
51CTO推荐博文
HPING 使用方法
一、HPING和ping的区别:
典型ping程序使用的是ICMP回显请求来测试,而HPING可以使用任何IP报文,包括ICMP、TCP、UDP、RAWSOCKET。
二、下载:
HTTP://WWW.HPING.ORG/
三、安装方法与普通软件同。
四、命令注释:
tsinghua@tsinghua-desktop:~$ hping2 --help
usage: hping host [options]
-h --help show this help //help
-v --version show version //版本
-c --count packet count //hping的包数量 和ping相同。
-i --interval wait (uX for X microseconds, for example -i u1000) //hping的间隔 u表示微妙,--fast表示快速模式,一秒10个包。
--fast alias for -i u10000 (10 packets for second)
-n --numeric numeric output //表示不进行名称解析。
-q --quiet quiet //安静模式 只输出开始结束信息。
-I --interface interface name (otherwise default routing interface) //-使用网卡端口,缺省按路由表进行。
-V --verbose verbose mode //详细模式 一般显示很多包信息。
-D --debug debugging info //debug模式,定义hping2使用模式。
-z --bind bind ctrl+z to ttl (default to dst port)//帮定快捷键
-Z --unbind unbind ctrl+z //撤销快捷键。
Mode //模式选择。
default mode TCP (缺省使用TCP进行PING处理)
-0 --rawip RAW IP mode //裸IP方式。使用RAWSOCKET方式。
-1 --icmp ICMP mode //ICMP模式。
-2 --udp UDP mode //UDP模式
-8 --scan SCAN mode. //扫描模式 指定扫描对应的端口。
Example: hping --scan 1-30,70-90 -S
-9 --listen listen mode //侦听模式,会接受指定的信息。侦听指定的信息内容。
IP //IP模式选择。
-a --spoof spoof source address //源地址欺骗。
--rand-dest random destionation address mode. see the man.随机目的地址模式。
--rand-source random source address mode. see the man. 随机源地址模式,具体信息看MAN。
-t --ttl ttl (default 64) //修改TTL值。
-N --id id (default random) --hping中的ID值,缺省为随机值。
-W --winid use win* id byte ordering 使用winid的模式,针对不同的操作系统。
-r --rel relativize id field (to estimate host traffic) //递减id区域模式。
-f --frag split packets in more frag. (may pass weak acl)//分段,可以测试对方或者交换机碎片处理能力,缺省16字节。
-x --morefrag set more fragments flag //大量碎片,泪滴攻击。
-y --dontfrag set dont fragment flag //不可恢复的IP碎片。
-g --fragoff set the fragment offset //设置断偏移。
-m --mtu set virtual mtu, implies --frag if packet size & mtu //设置虚拟MTU值,当大于mtu的时候分段。
-o --tos type of service (default 0x00), try --tos help //tos字段,缺省0x00,尽力而为?
-G --rroute includes RECORD_ROUTE option and display the route buffer //记录IP路由,并显示路由缓冲。
--lsrr loose source routing and record route //松散源路由
--ssrr strict source routing and record route //严格源路由。
-H --ipproto set the IP protocol field, only in RAW IP mode //设置ip协议域,仅在RAW ip模式使用。
ICMP //ICMP模式。
-C --icmptype icmp type (default echo request) //ICMP类型,缺省回显请求。
-K --icmpcode icmp code (default 0) //ICMP代码。
--force-icmp send all icmp types (default send only supported types) //强制ICMP类型。
--icmp-gw set gateway address for ICMP redirect (default 0.0.0.0) //ICMP重定向
--icmp-ts Alias for --icmp --icmptype 13 (ICMP timestamp) //icmp时间戳
--icmp-addr Alias for --icmp --icmptype 17 (ICMP address subnet mask) //icmp子网地址。
--icmp-help display help for others icmp options //ICMP帮助。
UDP/TCP //UDP/TCP模式。
-s --baseport base source port (default random) //缺省随机源端口
-p --destport [+][+]&port& destination port(default 0) ctrl+z inc/dec //缺省目的端口为0,连接后端口+1。
-k --keep keep still source port //保持源端口
-w --win winsize (default 64) //win的滑动窗口。
-O --tcpoff set fake tcp data offset (instead of tcphdrlen / 4)//设置伪造的数据偏移。
-Q --seqnum shows only tcp sequence number //tcp 连接序列号
-b --badcksum (try to) send packets with a bad IP checksum //IP包校验。
many systems will fix the IP checksum sending the packet
so you'll get bad UDP/TCP checksum instead.
-M --setseq set TCP sequence number //设置TCP序列号
-L --setack set TCP ack
-F --fin set FIN flag
-S --syn set SYN flag
-R --rst set RST flag
-P --push set PUSH flag
-A --ack set ACK flag
-U --urg set URG flag //一大堆IP抱头的设置。
-X --xmas set X unused flag (0x40)
-Y --ymas set Y unused flag (0x80)
--tcpexitcode use last tcp-&th_flags as exit code
--tcp-timestamp enable the TCP timestamp option to guess the HZ/uptime //tcp的时间戳。
Common //通用设置
-d --data data size (default is 0) 发送数据包大小,缺省是0。
-E --file data from file //从文件中发送
-e --sign add 'signature' //标注签名
-j --dump dump packets in hex //以16进制显示包格式
-J --print dump printable characters //打印
-B --safe enable 'safe' protocol //开启安全模式,确保数据发送。
-u --end tell you when --file reached EOF and prevent rewind //到达报尾后提示。
-T --traceroute traceroute mode (implies --bind and --ttl 1)
--tr-stop Exit when receive the first not ICMP in traceroute mode
--tr-keep-ttl Keep the source TTL fixed, useful to monitor just one hop
--tr-no-rtt Don't calculate/show RTT information in traceroute mode
ARS packet description (new, unstable)
--apd-send Send the packet described with APD (see docs/APD.txt)
五、具体应用:
1、PING失效后的主机检测:
tsinghua@tsinghua-desktop:~$ ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
--- 192.168.2.1 ping statistics ---
19 packets transmitted, 0 received, 100% packet loss, time 18009ms
------------------------------------------------
tsinghua@tsinghua-desktop:~$ sudo hping2 -c 4 -n -i 2 192.168.2.1
HPING 192.168.2.1 (eth0 192.168.2.1): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.2.1 ttl=64 id=43489 sport=0 flags=RA seq=0 win=0 rtt=1.0 ms
len=46 ip=192.168.2.1 ttl=64 id=43490 sport=0 flags=RA seq=1 win=0 rtt=0.6 ms
len=46 ip=192.168.2.1 ttl=64 id=43491 sport=0 flags=RA seq=2 win=0 rtt=0.7 ms
len=46 ip=192.168.2.1 ttl=64 id=43498 sport=0 flags=RA seq=3 win=0 rtt=0.6 ms
--- 192.168.2.1 hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.8/1.0 ms
-c 发送4个报文 -n 不进行名称解析 -i 包发送时间间隔。
好处:即使主机阻塞了ICMP报文,也可以显示主机是否在运行的信息,在关掉ICMP的探测有效!
显示信息解释:len,返回ip报文大小;ttl; id,IP的ID域;sport,源端口,flags,返回的IP报设置的TCP标志 (R:RESET,A:ACK;S:SYN;F:FIN;P:PUSH;U:URGENT);seq:序列号;win:tcp窗口大小;rtt:往返 时,EIGRP似乎有这个设置。
2、防火墙规则测试:
hping有类似NMAP的方法来检测并收集关于潜在的防火墙的规则和能力的信息。
如果一个主机对ping没有任何相应,而对hping有响应,假定目标的主机为192.168.2.234.
一旦主机对hping作出了响应,那么下一步我们先用nmap先进行一个端口扫描,当然这个hping2也可以作.
tsinghua@tsinghua-desktop:~$ sudo nmap -sT -P0 -p 21-25 192.168.2.234
Starting Nmap 4.53 (
Interesting ports on 192.168.2.234:
PORT STATE SERVICE
21/tcp filtered ftp
22/tcp open ssh
23/tcp filtered telnet
24/tcp filtered priv-mail
25/tcp filtered smtp
Nmap done: 1 IP address (1 host up) scanned in 1.379 seconds
以上信息显示除了ssh端口外,其他端口被阻塞.然后可以试试用hping向各个被阻塞的端口发送空的报文.用-p的开关,可以对指定的目的端口进行hping.
tsinghua@tsinghua-desktop:~$ sudo hping2 -p 21 192.168.2.234
HPING 192.168.2.234 (eth0 192.168.2.234): NO FLAGS are set, 40 headers + 0 data bytes
24: len=46 ip=192.168.2.234 ttl=128 id=2461 sport=24 flags=RA seq=7 win=0 rtt=0.7 ms
len=46 ip=192.168.2.234 ttl=128 id=2462 sport=24 flags=RA seq=8 win=0 rtt=0.7 ms
25: len=46 ip=192.168.2.234 ttl=128 id=2463 sport=25 flags=RA seq=9 win=0 rtt=0.7 ms
len=46 ip=192.168.2.234 ttl=128 id=2464 sport=24 flags=RA seq=10 win=0 rtt=0.7 ms
前三个端口没有响应,端口24 25 获得了RST/ACK响应.这说明,虽然这些端口被禁止PING,但没有工具在该端口上监听.然而为什么NMAP没有得到响应,因为NMAP虽然使用 TCP连接,但它在TCP报头中设置了TCP SYN标记位,而HPING 使用了空标记的报文,这就告诉我们说,在主机192.168.2.234上只阻塞进入的TCP连接.接下来使用hping创建一个SYN报文然后将其发送 到5个端口再测试.
tsinghua@tsinghua-desktop:~$ sudo hping2 -S -p 21 192.168.2.234
HPING 192.168.2.234 (eth0 192.168.2.234): S set, 40 headers + 0 data bytes
22: len=46 ip=192.168.2.234 ttl=128 id=10722 sport=22 flags=SA seq=1 win=0 rtt=1.2 ms
len=46 ip=192.168.2.234 ttl=128 id=10747 sport=22 flags=SA seq=2 win=0 rtt=0.7 ms
这次只有22端口响应,说明SSH端口是开放的,但有工具在上面监听,该端口没有进行过滤.
然后我们再创建一个ACK报文并发送:
tsinghua@tsinghua-desktop:~$ sudo hping2 -A -p 21 192.168.2.234
HPING 192.168.2.234 (eth0 192.168.2.234): A set, 40 headers + 0 data bytes
22: len=46 ip=192.168.2.234 ttl=128 id=12707 sport=22 flags=R seq=2 win=0 rtt=0.7 ms
len=46 ip=192.168.2.234 ttl=128 id=12708 sport=22 flags=R seq=3 win=0 rtt=0.7 ms
23: len=46 ip=192.168.2.234 ttl=128 id=12709 sport=23 flags=R seq=4 win=0 rtt=0.7 ms
len=46 ip=192.168.2.234 ttl=128 id=12710 sport=22 flags=R seq=5 win=0 rtt=0.7 ms
24: len=46 ip=192.168.2.234 ttl=128 id=12711 sport=24 flags=R seq=6 win=0 rtt=0.7 ms
len=46 ip=192.168.2.234 ttl=128 id=12712 sport=22 flags=R seq=7 win=0 rtt=0.7 ms
25: len=46 ip=192.168.2.234 ttl=128 id=12712 sport=25 flags=R seq=8 win=0 rtt=0.8 ms
len=46 ip=192.168.2.234 ttl=128 id=12713 sport=22 flags=R seq=9 win=0 rtt=0.7 ms
结果除了21端口外所有端口都响应了RST,说明了:
1.端口22是开放的,但有工具在上面监听.
2.24 25 上面没有工具监听,对NULL报文回显.
3.端口23针对ACK报文以RST进行了响应,但没有响应NULL报文.说明该端口被过滤,但是telnet服务运行在192.168.2.234上.
4.阻塞了进入的SYN报文但允许其他TCP报文通过,说明它采用的不是基于状态的报文防火墙.
了这篇文章
类别:┆阅读(0)┆评论(0)【原理基础】&  Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。
Hping的主要功能有:&  防火墙测试&  实用的端口扫描&  网络检测,可以用不同的协议、服务类型(TOS)、IP分片&  手工探测MTU(最大传输单元)路径&  先进的路由跟踪,支持所有的协议&  远程操作系统探测&  远程的运行时间探测&  TCP/IP堆栈审计&
&Hping的详细参数&
   -h --help 显示帮助信息&   -v --version 显示Hping的版本信息&   -c --count 指定数据包的次数&   -i --interval 指定发包间隔为多少毫秒,如-i m10:表示发包间隔为10毫秒&
附秒、毫秒、微秒进率
<span style="color: #s=1000ms(毫秒)=1000000(微秒)
1s=10^3ms(毫秒)=10^6μs(微秒)
   --fast 与 -i m100等同,即每秒钟发送10个数据包&   -n --numeric 指定以数字形式输出&   -q --quiet 退出Hping&   -I --interface 指定IP,如本机有两块网卡,可通过此参数指定发送数据包的IP地址。如果不指定则默认使用网关IP&   -V --verbose 冗余模式&   -D --debug 调试信息&   -z --bind 将ctrl+z 绑定到ttl,默认使用DST端口&   -Z --unbind 解除ctrl+z的绑定&  指定所用的模式:&   默认模式 TCP模式&   -0 --rawip RAW IP 模式&   -1 --icmp ICMP 模式&   -2 --udp UDP 模式&   -8 --scan 扫描模式.&   例: hping --scan 1-30,70-90 -S www.target.host&   -9 --listen 监听模式&  IP选项:&   -a --spoof 源地址欺骗&   --rand-dest 随机目的地址模式&   --rand-source 随机源目的地址模式&   -t --ttl ttl值,默认为64&   -N --id 指定id,默认是随机的&   -W --winid 使用win*的id 字节顺序&   -r --rel 相对的id区域&   -f --frag 将数据包分片后传输(可以通过薄弱的acl(访问控制&   列表))&   -x --morefrag 设置更多的分片标记&   -y --dontfrag 设置不加分片标记&   -g --fragoff 设置分片偏移&   -m --mtu 设置虚拟MTU, 当数据包&MTU时要使用--frag 进行分片&   -o --tos 指定服务类型,默认是0x00,,可以使用--tos help查看帮助&   -G --rroute 包含RECORD_ROUTE选项并且显示路由缓存&   --lsrr 释放源路记录&   --ssrr 严格的源路由记录&   -H --ipproto 设置协议范围,仅在RAW IP模式下使用&  ICMP选项&   -C --icmptype 指定icmp类型(默认类型为回显请求)&   -K --icmpcode 指定icmp编码(默认为0)&   --force-icmp 发送所有ICMP数据包类型(默认只发送可以支持的类型) --icmp-gw 针对ICMP数据包重定向设定网关地址(默认是0.0.0.0)&   --icmp-ts 相当于--icmp --icmptype 13(ICMP时间戳)&   --icmp-addr 相当于--icmp --icmptype 17(ICMP地址掩码)&   --icmp-help 显示ICMP的其它帮助选项&
UDP/TCP选项&   -s --baseport 基本源端口(默认是随机的)&   -p --destport 目的端口(默认为0),可同时指定多个端口&   -k --keep 仍然保持源端口&   -w --win 指定数据包大小,默认为64&   -O --tcpoff 设置假的TCP数据偏移&   -Q --seqnum 仅显示TCP序列号&   -b --badcksum 尝试发送不正确IP校验和的数据包&  许多系统在发送数据包时使用固定的IP校验和,因此你会得到不正确的UDP/TCP校验和.&   -M --setseq 设置TCP序列号&   -L --setack 使用TCP的ACK(访问控制列表)&   -F --fin 使用FIN标记set FIN flag&   -S --syn 使用SNY标记&   -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-timestamp 启动TCP时间戳选项来猜测运行时间&  常规选项&   -d --data 数据大小,默认为0&   -E --file 从指定文件中读取数据&   -e --sign 增加签名&   -j --dump 以十六进行形式转存数据包&   -J --print 转存可输出的字符&   -B --safe 启用安全协议&   -u --end 当通过- -file指定的文件结束时停止并显示,防止文件再从头开始&   -T --traceroute 路由跟踪模式&   --tr-stop 在路由跟踪模式下当收到第一个非ICMP数据包时退出&   --tr-keep-ttl 保持源TTL,对监测一个hop有用&   --tr-no-rtt 使用路由跟踪模式时不计算或显示RTT信息&  ARS 数据包描述(新增加的内容,暂时还不稳定)&   --apd-send 发送用描述APD的数据包&
=============================================================
HPING 使用方法
一、HPING和ping的区别:
典型ping程序使用的是ICMP回显请求来测试,而HPING可以使用任何IP报文,包括ICMP、TCP、UDP、RAWSOCKET。
二、下载:
HTTP://WWW.HPING.ORG/
三、安装(CentOS 5.5 64) &
安装过程没有想象中的顺利,测试了好长时间才成功!!!
1、安装基础库
[root@localhost ~]# yum -y install gcc libpcap-devel &&tcl-devel
注意:此环境必须安装tcl-devel包才可以,不然一直出错,所表现的错误在下面已一一列出,请参阅下面提示
2、下载源码包
[root@localhost ~]# wget http://www.hping.org/hping3-.tar.gz
3、编译安装
[root@localhost ~]#&tar -zxvf hping3-.tar.gz&
[root@localhost ~]#&cd hping3-
[root@localhost hping3-]# ./configure
。。。。。。。。。。。。
creating Makefile...
creating dependences...
In file included from ars.h:20,
&& & & & & & & & from apd.c:19:
bytesex.h:22:3: error: #error can not find the byte order for this architecture, fix bytesex.h
In file included from apd.c:19:
ars.h:190:2: error:&#error "Please, edit Makefile and add -DBYTE_ORDER_(BIG|LITTLE)_ENDIAN"
ars.h:254:2: error: #error "Please, edit Makefile and add -DBYTE_ORDER_(BIG|LITTLE)_ENDIAN"
ars.h:323:2: error: #error "Please, edit Makefile and add -DBYTE_ORDER_(BIG|LITTLE)_ENDIAN"
。。。。。。。。。。。。。。。。。。。
解决方法:
从错误提示上看,又是什么高位前低位后到问题,打开Makefile,找了好久也找不到去哪儿添加这个环境变量,遂Google之,原来是因为64位机到缘故,遂修改上面说到的 bytesex.h (添加红色区域部分)
[root@localhost hping3-]# vi bytesex.h
/* Original code from the Linux C library */
/* Copyright (C)
Salvatore Sanfilippo &antirez@invece.org&
&* This code is under the original GNU C library license (GPL) */
/* $Id: bytesex.h,v 1.1.1.1
17:23:48 antirez Exp $ */
#ifndef ARS_BYTESEX_H
#define ARS_BYTESEX_H
#if & & defined(__i386__) \
|| defined(__x86_64__) \
&& & & &|| defined(__alpha__) \
&& & & &|| (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__)))
#define BYTE_ORDER_LITTLE_ENDIAN
#elif & defined(__mc68000__) \
&& & & &|| defined (__sparc__) \
&& & & &|| defined (__sparc) \
&& & & &|| defined (__PPC__) \
&& & & &|| defined (__BIG_ENDIAN__) \
&& & & &|| (defined(__mips__) && (defined(MIPSEB) || defined (__MIPSEB__)))
#define BYTE_ORDER_BIG_ENDIAN
# error can not find the byte order for this architecture, fix bytesex.h
#endif /* ARS_BYTESEX_H */
继续安装。。。
[root@localhost hping3-]# make & & & & & & & & & & & & & & & & & & & & & &&
gcc -c -O2 -Wall & &-g &main.c
gcc -c -O2 -Wall & &-g &getifname.c
getifname.c: In function ‘get_output_if’:
getifname.c:343: warning: pointer targets in passing argument 3 of ‘getsockname’ differ in signedness
。。。。。。。。。。
gcc -c -O2 -Wall & &-g &libpcap_stuff.c
libpcap_stuff.c:20:21: error:&net/bpf.h: No such file or directory
libpcap_stuff.c: In function ‘pcap_recv’:
libpcap_stuff.c:61: warning: pointer targets in assignment differ in signedness
make: *** [libpcap_stuff.o] Error 1& &
提示我bpf.h文件未找到,印象中这个文件应该是libpcap的一部分才是阿~~~
按如下提示作个链接
[root@localhost hping3-]# ln -s /usr/include/pcap.h &/usr/include/net/bpf.h
[root@localhost hping3-]# make
又出现了如下错误
。。。。。。。。。。
/usr/bin/ld: cannot find -ltcl
collect2: ld returned 1 exit status
make: *** [hping3] Error 1
这个错误排除了链接原因外就是没有安装tcp-devel包(上面第一步使用yum搭建基础环境中的红色字体部分是我后添加上去的,走了很多弯路测试了好多次才找到原因啊~~)
安装tcl-devel包(如果第一步已安装,此外不用再重提安装!!)
[root@localhost yum.repos.d]# yum install tcl-devel
[root@localhost hping3-]# make
gcc -o hping3 -O2 -Wall & &-g main.o getifname.o getlhs.o parseoptions.o datafiller.o datahandler.o gethostname.o binding.o getusec.o opensockraw.o logicmp.o waitpacket.o resolve.o sendip.o sendicmp.o sendudp.o sendtcp.o cksum.o statistics.o usage.o version.o antigetopt.o sockopt.o listen.o sendhcmp.o memstr.o rtt.o relid.o sendip_handler.o libpcap_stuff.o memlockall.o memunlockall.o memlock.o memunlock.o ip_opt_build.o display_ipopt.o sendrawip.o signal.o send.o strlcpy.o arsglue.o random.o scan.o hstring.o script.o interface.o adbuf.o hex.o apdutils.o sbignum.o sbignum-tables.o ars.o apd.o split.o rapd.o -L/usr/local/lib -lpcap &-ltcl -lm -lpthread
./hping3 -v
hping version 3.0.0-alpha-1 ($Id: release.h,v 1.4
23:38:56 antirez Exp $)
NO TCL scripting support compiled in
use `make strip' to strip hping3 binary
use `make install' to install hping3
又出错。。。晕了。。
按上面红色字体提示部分进行安装
[root@localhost hping3-]# make strip
-rwxr-xr-x 1 root root 436351 Jun 13 11:03 ./hping3
strip hping3
-rwxr-xr-x 1 root root 117368 Jun 13 11:03 ./hping3
[root@localhost hping3-]# make strip
-rwxr-xr-x 1 root root 436351 Jun 13 11:03 ./hping3
strip hping3
-rwxr-xr-x 1 root root 117368 Jun 13 11:03 ./hping3
[root@localhost hping3-]# make install
cp -f hping3 /usr/sbin/
chmod 755 /usr/sbin/hping3
ln -s /usr/sbin/hping3 /usr/sbin/hping
ln -s /usr/sbin/hping3 /usr/sbin/hping2
@@@@@@ WARNING @@@@@@
Can't install the man page: /usr/local/man/man8 does not exist
这应试安装成功了吧。。。。。
测试是否可用
[root@localhost hping3-]# hping2 -c 4 -n -i 2 192.168.18.118
HPING 192.168.18.118 (eth0 192.168.18.118): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.118 ttl=64 DF id=4638 sport=0 flags=RA seq=0 win=0 rtt=1.7 ms
len=46 ip=192.168.18.118 ttl=64 DF id=4796 sport=0 flags=RA seq=1 win=0 rtt=0.3 ms
len=46 ip=192.168.18.118 ttl=64 DF id=4966 sport=0 flags=RA seq=2 win=0 rtt=0.3 ms
len=46 ip=192.168.18.118 ttl=64 DF id=5069 sport=0 flags=RA seq=3 win=0 rtt=0.3 ms
--- 192.168.18.118 hping statistic ---
4 packets tramitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.6/1.7 ms
[root@localhost hping3-]#&
附此类问题解决思路:&& & & & & &&
四、命令注释:
tsinghua@tsinghua-desktop:~$ hping2 --help
usage: hping host [options]
-h --help show this help //help
-v --version show version //版本
-c --count packet count //hping的包数量 和ping相同。
-i --interval wait (uX for X microseconds, for example -i u1000) //hping的间隔 u表示微妙,--fast表示快速模式,一秒10个包。
--fast alias for -i u10000 (10 packets for second)
-n --numeric numeric output //表示不进行名称解析。
-q --quiet quiet //安静模式 只输出开始结束信息。
-I --interface interface name (otherwise default routing interface) //-使用网卡端口,缺省按路由表进行。
-V --verbose verbose mode //详细模式 一般显示很多包信息。
-D --debug debugging info //debug模式,定义hping2使用模式。
-z --bind bind ctrl+z to ttl (default to dst port)//帮定快捷键
-Z --unbind unbind ctrl+z //撤销快捷键。
Mode //模式选择。
default mode TCP (缺省使用TCP进行PING处理)
-0 --rawip RAW IP mode //裸IP方式。使用RAWSOCKET方式。
-1 --icmp ICMP mode //ICMP模式。
-2 --udp UDP mode //UDP模式
-8 --scan SCAN mode. //扫描模式 指定扫描对应的端口。
Example: hping --scan 1-30,70-90 -S&
-9 --listen listen mode //侦听模式,会接受指定的信息。侦听指定的信息内容。
IP //IP模式选择。
-a --spoof spoof source address //源地址欺骗。
--rand-dest random destionation address mode. see the man.随机目的地址模式。
--rand-source random source address mode. see the man. 随机源地址模式,具体信息看MAN。
-t --ttl ttl (default 64) //修改TTL值。
-N --id id (default random) --hping中的ID值,缺省为随机值。
-W --winid use win* id byte ordering 使用winid的模式,针对不同的操作系统。
-r --rel relativize id field (to estimate host traffic) //递减id区域模式。
-f --frag split packets in more frag. (may pass weak acl)//分段,可以测试对方或者交换机碎片处理能力,缺省16字节。
-x --morefrag set more fragments flag //大量碎片,泪滴攻击。
-y --dontfrag set dont fragment flag //不可恢复的IP碎片。
-g --fragoff set the fragment offset //设置断偏移。
-m --mtu set virtual mtu, implies --frag if packet size & mtu //设置虚拟MTU值,当大于mtu的时候分段。
-o --tos type of service (default 0x00), try --tos help //tos字段,缺省0x00,尽力而为?
-G --rroute includes RECORD_ROUTE option and display the route buffer //记录IP路由,并显示路由缓冲。
--lsrr loose source routing and record route //松散源路由
--ssrr strict source routing and record route //严格源路由。
-H --ipproto set the IP protocol field, only in RAW IP mode //设置ip协议域,仅在RAW ip模式使用。
ICMP //ICMP模式。
-C --icmptype icmp type (default echo request) //ICMP类型,缺省回显请求。
-K --icmpcode icmp code (default 0) //ICMP代码。
--force-icmp send all icmp types (default send only supported types) //强制ICMP类型。
--icmp-gw set gateway address for ICMP redirect (default 0.0.0.0) //ICMP重定向
--icmp-ts Alias for --icmp --icmptype 13 (ICMP timestamp) //icmp时间戳
--icmp-addr Alias for --icmp --icmptype 17 (ICMP address subnet mask) //icmp子网地址。
--icmp-help display help for others icmp options //ICMP帮助。
UDP/TCP //UDP/TCP模式。
-s --baseport base source port (default random) //缺省随机源端口
-p --destport [+][+]&port& destination port(default 0) ctrl+z inc/dec //缺省目的端口为0,连接后端口+1。
-k --keep keep still source port //保持源端口
-w --win winsize (default 64) //win的滑动窗口。
-O --tcpoff set fake tcp data offset (instead of tcphdrlen / 4)//设置伪造的数据偏移。
-Q --seqnum shows only tcp sequence number //tcp 连接序列号
-b --badcksum (try to) send packets with a bad IP checksum //IP包校验。
many systems will fix the IP checksum sending the packet
so you'll get bad UDP/TCP checksum instead.
-M --setseq set TCP sequence number //设置TCP序列号
-L --setack set TCP ack
-F --fin set FIN flag
-S --syn set SYN flag
-R --rst set RST flag
-P --push set PUSH flag
-A --ack set ACK flag
-U --urg set URG flag //一大堆IP抱头的设置。
-X --xmas set X unused flag (0x40)
-Y --ymas set Y unused flag (0x80)
--tcpexitcode use last tcp-&th_flags as exit code
--tcp-timestamp enable the TCP timestamp option to guess the HZ/uptime //tcp的时间戳。
Common //通用设置
-d --data data size (default is 0) 发送数据包大小,缺省是0。
-E --file data from file //从文件中发送
-e --sign add 'signature' //标注签名
-j --dump dump packets in hex //以16进制显示包格式
-J --print dump printable characters //打印
-B --safe enable 'safe' protocol //开启安全模式,确保数据发送。
-u --end tell you when --file reached EOF and prevent rewind //到达报尾后提示。
-T --traceroute traceroute mode (implies --bind and --ttl 1)
--tr-stop Exit when receive the first not ICMP in traceroute mode
--tr-keep-ttl Keep the source TTL fixed, useful to monitor just one hop
--tr-no-rtt Don't calculate/show RTT information in traceroute mode
ARS packet description (new, unstable)
--apd-send Send the packet described with APD (see docs/APD.txt)
五、具体应用:
<span style="color: #、PING失效后的主机检测:
[root@localhost hping3-]# hping2 192.168.18.188
HPING 192.168.18.188 (eth0 192.168.18.188): NO FLAGS are set, 40 headers + 0 data bytes
--- 192.168.18.188 hping statistic ---
<span style="color: # packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
[root@localhost hping3-]# hping2 -c 4 -n -i 2 192.168.18.251
HPING 192.168.18.251 (eth0 192.168.18.251): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.251 ttl=64 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.7 ms
len=46 ip=192.168.18.251 ttl=64 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.3 ms
len=46 ip=192.168.18.251 ttl=64 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.3 ms
len=46 ip=192.168.18.251 ttl=64 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.2 ms
--- 192.168.18.251 hping statistic ---
4 packets tramitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.4/0.7 ms
-c 发送4个报文 -n 不进行名称解析 -i 包发送时间间隔。
显示信息解释:len,返 回ip报文大小;ttl; id,IP的ID域;sport,源端口,flags,返回的IP报设置的TCP标志 (R:RESET,A:ACK;S:SYN;F:FIN;P:PUSH;U:URGENT);seq:序列号;win:tcp窗口大小;rtt:往返 时,EIGRP似乎有这个设置。
即使主机阻塞了ICMP报文,也可以显示主机是否在运行的信息,在关掉ICMP的探测有效!
主机192.168.18.117上我设置了 iptables阻止icmp包响应。
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target & & prot opt source & & & & & & & destination & & & &&
DROP & & & icmp -- &anywhere & & & & & & anywhere &&& & & & &
Chain FORWARD (policy ACCEPT)
target & & prot opt source & & & & & & & destination & & & &&
Chain OUTPUT (policy ACCEPT)
target & & prot opt source & & & & & & & destination & &
使用ping测试是否能通
[root@localhost hping3-]# ping 192.168.18.117
PING 192.168.18.117 (192.168.18.117) 56(84) bytes of data.
--- 192.168.18.117 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2000ms
[root@localhost hping3-]#&
使用hping2测试是否有响应包
[root@localhost hping3-]# hping2 192.168.18.117
HPING 192.168.18.117 (eth0 192.168.18.117): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.4 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.3 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.3 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.3 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=0 flags=RA seq=4 win=0 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
5 packets tramitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.4 ms
[root@localhost hping3-]#&
2、防火墙规则测试:
hping有类似NMAP的方法来检测并收集关于潜在的防火墙的规则和能力的信息。
如果一个主机对ping没有任何相应,而对hping有响应,假定目标的主机为192.168.2.234.
一旦主机对hping作出了响应,那么下一步我们先用nmap先进行一个端口扫描,
当然这个hping2也可以作扫描
[root@localhost hping3-]# hping2 --scan 1-100 -S 192.168.18.251
Scanning 192.168.18.251 (192.168.18.251), port 1-100
100 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name | &flags &|ttl| id &| win | len |
+----+-----------+---------+---+-----+-----+-----+
&& 21 ftp & & & &: .S..A... &64 & & 0 &5840 & &46
&& 22 ssh & & & &: .S..A... &64 & & 0 &5840 & &46
&& 23 telnet & & : .S..A... &64 & & 0 &5840 & &46
&& 80 http & & & : .S..A... &64 & & 0 &5840 & &46
All replies received. Done.
Not responding ports:&
[root@localhost hping3-]# nmap -sT -P0 -p 21-25 192.168.18.251
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at
Interesting ports on bogon (192.168.18.251):
PORT & STATE &SERVICE
21/tcp open & ftp
22/tcp open & ssh
23/tcp open & telnet
24/tcp closed priv-mail
25/tcp closed smtp
Nmap finished: 1 IP address (1 host up) scanned in 1.110 seconds
请看下面一个示例分析:
[root@localhost hping3-]# nmap -sT -P0 -p 21-25 192.168.18.117
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at
Interesting ports on bogon (192.168.18.117):
PORT & STATE &SERVICE
<span style="color: #/tcp closed ftp
<span style="color: #/tcp open & ssh
<span style="color: #/tcp closed telnet
<span style="color: #/tcp closed priv-mail
<span style="color: #/tcp closed smtp
Nmap finished: 1 IP address (1 host up) scanned in 0.008 seconds
以上信息显示除了ssh端口外,其他端口被阻塞.
然后可以试试用hping向各个被阻塞的端口发送空的报文.用-p的开关,可以对指定的目的端口进行hping.
[root@localhost hping3-]# hping2 -c 2 -n -i 2&-p 21&192.168.18.117&
HPING 192.168.18.117 (eth0 192.168.18.117): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=21 flags=RA seq=0 win=0 rtt=0.3 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=21 flags=RA seq=1 win=0 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.3 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2&-p 23&192.168.18.117&
HPING 192.168.18.117 (eth0 192.168.18.117): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=23 flags=RA seq=0 win=0 rtt=0.4 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=23 flags=RA seq=1 win=0 rtt=0.2 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.3/0.4 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2&-p 24&192.168.18.117&
HPING 192.168.18.117 (eth0 192.168.18.117): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=24 flags=RA seq=0 win=0 rtt=0.5 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=24 flags=RA seq=1 win=0 rtt=0.4 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.4/0.4/0.5 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2&-p 25&192.168.18.117&
HPING 192.168.18.117 (eth0 192.168.18.117): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=25 flags=RA seq=0 win=0 rtt=0.6 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=25 flags=RA seq=1 win=0 rtt=0.2 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.4/0.6 ms
端口21 23 24 25 获得了RST/ACK响应.这说明,虽然这些端口被禁止PING,但没有工具在该端口上监听.
然而为什么NMAP没有得到响应,因为NMAP虽然使用 TCP连接,但它在TCP报头中设置了TCP SYN标记位,而HPING 使用了空标记的报文,这就告诉我们说,在主机192.168.18.117上只阻塞进入的TCP连接.
接下来使用hping创建一个SYN报文然后将其发送到5个端口再测试.
[root@localhost hping3-]# hping2 -c 2 -n -i 2 -S -p 21 192.168.18.117
HPING 192.168.18.117 (eth0 192.168.18.117): S set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=21 flags=RA seq=0 win=0 rtt=0.3 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=21 flags=RA seq=1 win=0 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.3 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2 -S -p 22 192.168.18.117
HPING 192.168.18.117 (eth0 192.168.18.117): S set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=22&flags=SA&seq=0 win=5840 rtt=0.4 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=22 flags=SA seq=1 win=5840 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.4 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2 -S -p 23 192.168.18.117
HPING 192.168.18.117 (eth0 192.168.18.117): S set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=23 flags=RA seq=0 win=0 rtt=0.2 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=23 flags=RA seq=1 win=0 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.3/0.3 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2 -S -p 24 192.168.18.117
HPING 192.168.18.117 (eth0 192.168.18.117): S set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=24 flags=RA seq=0 win=0 rtt=0.3 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=24 flags=RA seq=1 win=0 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.3/0.3 ms
[root@localhost hping3-]# hping2 -c 2 -n -i 2 -S -p 25 192.168.18.117
HPING 192.168.18.117 (eth0 192.168.18.117): S set, 40 headers + 0 data bytes
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=25 flags=RA seq=0 win=0 rtt=0.4 ms
len=46 ip=192.168.18.117 ttl=64 DF id=0 sport=25 flags=RA seq=1 win=0 rtt=0.3 ms
--- 192.168.18.117 hping statistic ---
2 packets tramitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.4/0.4 ms
这次只有22端口响应,说明SSH端口是开放的,但有工具在上面监听,该端口没有进行过滤.
阅读(...) 评论()}

我要回帖

更多关于 防火墙防ddos攻击实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信