扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
5. teardrop
-=-=-=-=-=-=-=-=-=-=-=
teardrop也比较简单,默认发送两个UDP数据包,就能使某些Linux内核崩溃。Snort抓取的结果如下:
第一个:
01/08-11:42:21.985853 192.168.0.9 -> 192.168.0.1
UDP TTL:64 TOS:0x0 ID:242 IpLen:20 DgmLen:56 MF
Frag Offset: 0x0 Frag Size: 0x24
A0 A8 86 C7 00 24 00 00 00 00 00 00 00 00 00 00
.....$..........
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
00 00 00 00 ....
* MF=1,偏移量=0,分片IP包的第一个。
* 结构图:
|<-------20-------->|<------8------>|<---------------28---------------->|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP | UDP | Data
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
第二个:
01/08-11:42:21.985853 192.168.0.9 -> 192.168.0.1
UDP TTL:64 TOS:0x0 ID:242 IpLen:20 DgmLen:24
Frag Offset: 0x3 Frag Size: 0x4
A0 A8 86 C7 ....
* MF=0,偏移量=0x3,偏移字节数为 0x3 * 8 = 24,最后一个分片。
* 结构图:
|<-------20-------->|<--4-->|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP | Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
如果修改源代码,第二片IP包的偏移量也可以为0x4,偏移字节数就是
0x4 * 8 = 32。
下面的结构图表示了接收端重组分片的过程,分别对应于偏移字节数为24和32两种情况:
|<-------20-------->|<------8------>|<---------------28---------------->|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP | UDP | Data
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
| +-+-+-+-+
|<------------- 24 ------------->| Data |
| +-+-+-+-+
|<--4-->|
|
|
+-+-+-+-+
|<-------------------
32 ------------------>| Data |
|
+-+-+-+-+
|<--4-->|
可以看出,第二片IP包的偏移量小于第一片结束的位移,而且算上第二片IP包的Data,也未超过第一片的尾部,这就是重叠现象(overlap)。老的Linux内核(1.x - 2.0.x)在处理这种重叠分片的时候存在问题,WinNT/95在接收到10至50个teardrop分片时也会崩溃。你可以阅读teardrop.c的源代码来了解如何构造并发送这种数据包。
6. 如何阻止IP碎片攻击
-=-=-=-=-=-=-=-=-=-=-=
* Windows系统请打上最新的Service Pack,目前的Linux内核已经不受影响。
* 如果可能,在网络边界上禁止碎片包通过,或者用iptables限制每秒通过碎片包的数目。
* 如果防火墙有重组碎片的功能,请确保自身的算法没有问题,否则被DoS就会影响整个网络。
* Win2K系统中,自定义IP安全策略,设置“碎片检查”。
7. 更多资料
-=-=-=-=-=-=-=-=-=-=-=
[1] TCP/IP Illustracted Volume 1 : The Protocols
[2] Microsoft Security Bulletin MS00-029:
http://www.microsoft.com/technet/security/bulletin/ms00-029.asp
[3] BugTraq Mailing List, "Analysis of jolt2.c(MS00-029)":
http://www.securityfocus.com/archive/1/62011
[4] http://www.attrition.org/security/denial/w/teardrop.dos.html
[5] http://packetstormsecurity.org/0005-exploits/jolt2.c
[6] http://packetstormsecurity.org/Exploit_Code_Archive/teardrop.c
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。