解析黑客技术:认识ICMP洪水攻击(3)

http://www.itjxue.com  2015-07-16 23:58  来源:未知  点击次数: 

 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报文结构,就等后面的填充了。

(责任编辑:IT教学网)

更多