古老的Smurf
1.原理
Smurf是一种很古老的DoS攻击。这种方法使用了广播地址,广播地址的尾数通常为0,比如:192.168.1.0。在一个有N台计算机的网络中,当其中一台主机向广播地址发送了1KB大小的ICMP Echo Requst时,那么它将收到N KB大小的ICMP Reply,如果N足够大它将淹没该主机,最终导致该网络的所有主机都对此ICMP Echo Requst作出答复,使网络阻塞!利用此攻击时,假冒受害主机的IP,那么它就会收到应答,形成一次拒绝服务攻击。Smurf攻击的流量比Ping of death洪水的流量高出一两个数量级,而且更加隐蔽。
2.攻击
Smurf2K是一个强大的攻击工具,它通过一个储存广播列表地址的文件,记录下Internet上可用的主机,然后利用这些主机发起进攻。如图2所示:

图2
3.防御
为了防止黑客利用你的网络进行Smurf攻击,关闭外部路由器或防火墙的广播地址特性;为了防止被攻击,在防火墙上设置规则丢弃掉ICMP包。
Fraggle攻击
1.原理
Fraggle攻击与Smurf攻击类似,只是利用UDP协议;虽然标准的端口是7,但是大多数使用Fraggle攻击的程序允许你指定其它的端口。Fraggle攻击是这样实现的:攻击者掌握着大量的广播地址,并向这些地址发送假冒的UDP包,通常这些包是直接到目标主机的7号端口——也就是 Echo端口,而另一些情况下它却到了Chargen端口,攻击者可以制造一个在这两个端口之间的循环来产生网络阻塞。
2.攻击
编写Fraggle攻击程序时只要把Smurf攻击程序的代码作一下修改就可以了。
3.防御
最好的防止系统受到Smurf和Fraggle攻击的方法是在防火墙上过滤掉ICMP报文,或者在服务器上禁止Ping,并且只在必要时才打开Ping服务。
