Teardrop攻击是一种拒绝服务攻击,是一种基于UDP的病态分片数据包的攻击方法,英文“Tear”是“眼泪”的意思,“drop”是“掉落”的意思,顾名思义,Teardrop攻击是一种令人落泪的攻击手段,可见其破坏威力很强大
主要针对早期微软操作系统(95、98、3.x、nt)近些年有人发现对 2.x 版本的安卓系统、6.0 IOS 系统攻击有效
攻击效果
被攻击者会出现蓝屏、重启、卡死等情况
Teardrop攻击原理
Teardrop攻击工作原理是攻击者A给受害者B发送一些分片IP报文,并且故意将“13位分片偏移”字段设置成错误的值(既可与上一分片数据重叠,也可错开),B在组合这种含有重叠偏移的伪造分片报文时,某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。
利用UDP包重组时重叠偏移(假设数据包中第二片IP包的偏移量小于第一片结束的位移,而且算上第二片IP包的Data,也未超过第一片的尾部,这就是重叠现象。)的漏洞对系统主机发动拒绝服务攻击,最终导致主机宕机;对于Windows系统会导致蓝屏死机,并显示STOP 0x0000000A错误。
检测方法
对接收到的分片数据包进行分析,计算数据包的片偏移量(Offset)是否有误。
MAC头(帧头):14个字节,包括目标mac6字节,源mac6字节,上层协议2字节
FCS:帧校验序列,4个字节ip头:源ip和目标ip,20字节
Ping大包,比较正常分段与teardrop攻击流量的区别
ping -l 4000 192.168.199.158
针对早期windows系统SMB协议的攻击
teardrop_smb.py
针对Android.IOS 系统的攻击
teardrop_androidios.py
攻击向量并不确定,要视具体协议分析
Teardrop攻击防御方法
网络安全设备将接收到的分片报文先放入缓存中,并根据源IP地址和目的IP地址对报文进行分组,源IP地址和目的IP地址均相同的报文归入同一组,然后对每组IP报文的相关分片信息进行检查,丢弃分片信息存在错误的报文。为了防止缓存溢出,当缓存快要存满时,直接丢弃后续分片报文。
反攻击方法:添加系统补丁程序,丢弃收到的病态分片数据包并对这种攻击进行审计。尽可能采用最新的操作系统,或者在防火墙上设置分段重组功能,由防火墙先接收到同一原包中的所有拆分数据包,然后完成重组工作,而不是直接转发。因为防火墙上可以设置当出现重叠字段时所采用的规则
攻击目标
泪滴攻击是一种拒绝服务(DoS)攻击,涉及将碎片数据包发送到目标机器。由于接收这些数据包的机器由于TCP / IP碎片重组错误而无法重新组装,因此数据包相互重叠,导致目标网络设备崩溃。这通常发生在较早的操作系统上,例如Windows 3.1x,Windows 95,Windows NT和2.1.63之前版本的Linux内核。
IP报头中的一个字段是“片段偏移量”字段,指示包含在分段数据包中的数据相对于原始数据包中的数据的起始位置或偏移量。如果一个分片数据包的偏移量和大小之和不同于下一个分片数据包的偏移量和大小之和,则数据包重叠。发生这种情况时,易受泪滴攻击的服务器无法重新组装数据包 ,从而导致拒绝服务状况。
网友评论