2.直接Flood
这是
较够劲的真正意义洪水了,防火墙的报警密度会提高一个数量级:
============================================================== [13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:20] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。
[13:09:21] 61.151.252.106 尝试用Ping 来探测本机, 该操作被拒绝。 =============================================================
这时候你的防火墙实际上已经废了,换个IP吧。
3.伪造IP的Flood
比较厉害的ICMP Flood,使用的是伪造的IP而且一样大密度,下面是the0crat用56K拨号对我的一次攻击测试的部分数据(看看时间,真晕了,这可是56K小猫而已啊)
============================================================= [18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。
[18:52:12] 1.1.1.1 尝试用Ping 来探测本机, 该操作被拒绝。 =============================================================
无言…………
4、反射ICMP Flood
估计现在Smurf攻击还没有多少人会用(R-Series的RSS.EXE就是做这事的,RSA.EXE和RSC.EXE分别用作SYN反射和UDP反射),所以这种方法还没有大规模出现,但Smurf是存在的!而且这个攻击方法比前面几种更恐怖,因为攻击你的是大网站(或一些受苦受难的服务器)!
我正在被网易、万网和新浪网站攻击中(懒得修改策略,直接用其他工具抓的。实际攻击中,反射的IP会多几倍!)
======================================================================= [15:26:32] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) [15:26:32] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 202.108.37.36 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 202.108.36.206 (Type=0,Code=0,Len=52) [15:26:33] RECV:ICMP Packet from 210.192.103.30 (Type=0,Code=0,Len=52) =======================================================================
可以看出,攻击者使用的是32bytes的ECHO请求,所以服务器返回52-20=32bytes的REPLY报文,在这个情况下,是不会报警的。
还是那句话,报警也没用了。
八、自己编写ICMP Flooder
以上说的都是理论,如何才能自己写一个呢?相信很多人已经跃跃欲试了,下面就用VC6.0来写一个直接的ICMP Flooder(能在Win98/Me环境使用)……先等等——最重要的是原理。
1.程序原理
当然不能用IcmpSendEcho来做,我们必须自己从最原始的IP报文里做一个。构造一个SOCK_RAW报文后,填充ICMP数据和计算校验和(CheckSum),循环sendto发出去就完成了,so easy!
2.ICMP报文的声明
一个ICMP报文包括IP头部、ICMP头部和ICMP报文,用IPPROTO_ICMP创建这个类型的IP包,用以下结构填充:
typedef struct _ihdr { BYTE i_type; //8位类型 BYTE i_code; //8位代码 USHORT i_cksum; //16位校验和 USHORT i_id; //识别号 USHORT i_seq; //报文序列号 ULONG timestamp; //时间戳 }ICMP_HEADER;
这样我们就声明了一个ICMP报文结构,就等后面的填充了。
|