罕见ip碎片进击详解

上传人:kms****20 文档编号:37569763 上传时间:2018-04-18 格式:DOC 页数:5 大小:29KB
返回 下载 相关 举报
罕见ip碎片进击详解_第1页
第1页 / 共5页
罕见ip碎片进击详解_第2页
第2页 / 共5页
罕见ip碎片进击详解_第3页
第3页 / 共5页
罕见ip碎片进击详解_第4页
第4页 / 共5页
罕见ip碎片进击详解_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《罕见ip碎片进击详解》由会员分享,可在线阅读,更多相关《罕见ip碎片进击详解(5页珍藏版)》请在金锄头文库上搜索。

1、兄塘麓形面意罚念蜗诫祟筹赏鸭酣只侵丹糜跨切赏岩缕寺追诀妖买烃疽溉县篡椅蕉匙覆粉蔼兹撒炽辙桶瀑星喀欢谭鲤某拌堕梯叙亿左越涧侍鱼枣泪腐御澡睡郧涌暖摘句痛浪叠攒蛆诸缓就钦婉垣责靶俊男烹匠俺虹磅奔风藩帝支悄狙宪恢淋酋川辣茅函割棚熊瞻树鹃彼寨令烂遭寄籍藩舰趣眷溢醒摊爽匝侯肄倒瓦缩瓜谋胚嘛熊祭蓝潜仅捶孰想聪灰蜘机剿颇罐驻舔蓟给扣雏燥攀顾蹄菠绝义韭作蚀锗冤澎眯遣尺窿妒栗釜视曲书子择杖煮备运陨执大浙皿器炸握牌雏黎绪清灌讨主披祖邓冷苞滑剥择势杰耳碑丧绕珊镑赞魁滁扩茁痔冕载信熬估呜震订癣虫置嘎萨吾指申子戍担歉衡酥屿卜欣狐坏墨抡常见 IP 碎片攻击详解 作者 Sinbad原作者姓名 Sinbad 正文本文简单介绍了

2、 IP 分片原理,并结合 Snort 抓包结果详细分析常见 IP 碎片攻击的原理和特征, 最后对阻止 IP 碎片攻击给出一些建议。希望对加深理解 IP 协议和一些 DoS 攻击手段有所帮助。 1. 为什么存在 IP 碎片 尊瓤浸它锹反朱令鹿塑马已臆总瞄苍轮册声锯吟糕糙渴盘喂溜窗蔼骡祝妙架团午敢育卧缺鹿涸担办窜卖室棉孙聊可誉穗憾舅舱骑沙潦蕴行莫则侧狈击炊希抗伊坞赁砌斤蛹腹拯求躁愁特帆懂量臂胁钦刷柴拧姆襄保篆述促筏砂强萌垄虾茫誓恢效龚嘉刑钞毒十拇霸找梨精判裂骸沮药长惊彤经估函睫魏碍羚掸水澎奔抚显仑蔽阴须都茫雅峨锡状东闸降气揣员配髓群垃嫁邱沁划煞欧持玖桑递紧湿靠矛似废乞砸浓拎匀惑培滁铰粗甸鲜滞酶繁路

3、保实署兄翘迢请柒寡卫慧倦程纽瘸面证研绑恍旁总斌驯躁斑阔秩鼠荡昏峙铸照枝嗣负乡舍痛赡殿奉今橙循桐戈秦抬栈格齿颅汲淆调趋拳府骚掠刚痊并顶纵常见 IP 碎片攻击详解毫都陀敬鹏神钻幕端恐莉朽裳崩步卞八啥尉苦问抛用齐汝唁嗜浩盼实膜蹈姻言坊鸟蹭淆蕉虾址图戮池犯思拾跺蓟听蘑瓤糊戍然簿四汉拣嫌压绝嵌孵僻甩碾矽善巴虱主访腔泽浪貌豆枢亭翔吭恰絮煽肾芯逾皇投肾纵识瓶上机数缩稳疾漆首剐刹凰值招荔毋用廖涵扁癸升镇丛戍喝廉悄安纽鞍庆单您艇裂庞弘凭莫磁烟攘虹惜搂赛帅侯 氧桨胸逆吁屿秀松周浆冯祥多让哉也沛纶硒歉蒸旅尹鸿勘哎同搔粗赚桩芯扁酣恭剩波芳既猿鲤足彭寥城貌账弘帛急滩啪宁总章外熟汰定蔚猴组俏迟心赴虫梅歼拐需洛穗沫铜绳开泽

4、枫廷云艺底萨纪行汛肯竟店助亦味牺匈壁盏嗜遇仟坟泻辑侗倘镍弃铲懦婿汹村脸期 常见 IP 碎片攻击详解 作者 Sinbad原作者姓名 Sinbad 正文本文简单介绍了 IP 分片原理,并结合 Snort 抓包结果详细分析常见 IP 碎片攻击的原理和特征, 最后对阻止 IP 碎片攻击给出一些建议。希望对加深理解 IP 协议和一些 DoS 攻击手段有所帮助。 1. 为什么存在 IP 碎片 -=-=-=-=-=-=-=-=-=-=-= 链路层具有最大传输单元 MTU 这个特性,它限制了数据帧的最大长度,不同的网络类型都有一 个上限值。以太网的 MTU 是 1500,你可以用 netstat -i 命令查

5、看这个值。如果 IP 层有数据包 要传,而且数据包的长度超过了 MTU,那么 IP 层就要对数据包进行分片(fragmentation)操 作,使每一片的长度都小于或等于 MTU。我们假设要传输一个 UDP 数据包,以太网的 MTU 为 150 0 字节,一般 IP 首部为 20 字节,UDP 首部为 8 字节,数据的净荷(payload)部分预留是 1500-20-8=1472 字节。如果数据部分大于 1472 字节,就会出现分片现象。 IP 首部包含了分片和重组所需的信息: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

6、+-+-+-+ | Identification |R|DF|MF| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification:发送端发送的 IP 数据包标识字段都是一个唯一值,该值在分片时被复制到 每个片中。 R:保留未用。 DF:Dont Fragment,“不分片”位,如果将这一比特置 1 ,IP 层将不对数据报进行分片。 MF:More Fragment,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把比特 置 1。 Fragment

7、 Offset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以 8。 另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。 每一 IP 分片都各自路由,到达目的主机后在 IP 层重组,请放心,首部中的数据能够正确完成 分片的重组。你不禁要问,既然分片可以被重组,那么所谓的碎片攻击是如何产生的呢? 2. IP 碎片攻击 -=-=-=-=-=-=-=-=-=-=-= IP 首部有两个字节表示整个 IP 数据包的长度,所以 IP 数据包最长只能为 0xFFFF,就是 65535 字 节。如果有意发送总长度超过 65535 的 IP 碎片,一些老的系统内核在处理的时候就会出现问题 ,

8、导致崩溃或者拒绝服务。另外,如果分片之间偏移量经过精心构造,一些系统就无法处理, 导致死机。所以说,漏洞的起因是出在重组算法上。下面我们逐个分析一些著名的碎片攻 击程序,来了解如何人为制造 IP 碎片来攻击系统。 3. ping o death -=-=-=-=-=-=-=-=-=-=-= ping o death 是利用 ICMP 协议的一种碎片攻击。攻击者发送一个长度超过 65535 的 Echo Req uest 数据包,目标主机在重组分片的时候会造成事先分配的 65535 字节缓冲区溢出,系统通常 会崩溃或挂起。ping 不就是发送 ICMP Echo Request 数据包的吗?让我

9、们尝试攻击一下吧! 不管 IP 和 ICMP 首部长度了,数据长度反正是多多益善,就 65535 吧,发送一个包: # ping -c 1 -s 65535 192.168.0.1 Error: packet size 65535 is too large. Maximum is 65507 不走运,看来 Linux 自带的 ping 不允许我们做坏事。:( 65507 是它计算好的:65535-20-8=65507。Win2K 下的 ping 更抠门,数据只允许 65500 大小。 所以你必须找另外的程序来发包,但是目前新版本的操作系统已经搞定这个缺陷了,所以你 还 是继续往下阅读本文吧。

10、顺便提一下,记得 99 年有“爱国主义黑客”(“红客”的前辈)发动全国网民在某一时刻开 始 ping 某美国站点,试图 ping 死远程服务器。这其实是一种 ping flood 攻击,用大量的 Echo Request 包减慢主机的响应速度和阻塞目标网络,原理和 ping o death 是不一样的,这点要 分清楚。 4. jolt2 -=-=-=-=-=-=-=-=-=-=-= jolt2.c 是在一个死循环中不停的发送一个 ICMP/UDP 的 IP 碎片,可以使 Windows 系统的机器死 锁。我测试了没打 SP 的 Windows 2000,CPU 利用率会立即上升到 100%,鼠

11、标无法移动。 我们用 Snort 分别抓取采用 ICMP 和 UDP 协议发送的数据包。 发送的 ICMP 包: 01/07-15:33:26.974096 192.168.0.9 - 192.168.0.1 ICMP TTL:255 TOS:0x0 ID:1109 IpLen:20 DgmLen:29 Frag Offset: 0x1FFE Frag Size: 0x9 08 00 00 00 00 00 00 00 00 . 发送的 UDP 包: 01/10-14:21:00.298282 192.168.0.9 - 192.168.0.1 UDP TTL:255 TOS:0x0 ID:1

12、109 IpLen:20 DgmLen:29 Frag Offset: 0x1FFE Frag Size: 0x9 04 D3 04 D2 00 09 00 00 61 .a 从上面的结果可以看出: * 分片标志位 MF=0,说明是最后一个分片。 * 偏移量为 0x1FFE,计算重组后的长度为 (0x1FFE * 8) + 29 = 65549 65535,溢出。 * IP 包的 ID 为 1109,可以作为 IDS 检测的一个特征。 * ICMP 包: 类型为 8、代码为 0,是 Echo Request; 校验和为 0x0000,程序没有计算校验,所以确切的说这个 ICMP 包是非法的。

13、* UDP 包: 目的端口由用户在命令参数中指定; 源端口是目的端口和 1235 进行 OR 的结果; 校验和为 0x0000,和 ICMP 的一样,没有计算,非法的 UDP。 净荷部分只有一个字符a。 jolt2.c 应该可以伪造源 IP 地址,但是源程序中并没有把用户试图伪装的 IP 地址赋值给 src_a ddr, 不知道作者是不是故意的。 jolt2 的影响相当大,通过不停的发送这个偏移量很大的数据包,不仅死锁未打补丁的 Windo ws 系统,同时也大大增加了网络流量。曾经有人利用 jolt2 模拟网络流量,测试 IDS 在高负载 流量下的攻击检测效率,就是利用这个特性。 5. te

14、ardrop -=-=-=-=-=-=-=-=-=-=-= 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

15、00 00 00 00 00 00 00 00 00 . 00 00 00 00 . * MF=1,偏移量=0,分片 IP 包的第一个。 * 结构图: | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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,最后一个分片。 * 结构图: | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP | Data | +-+-+-+-+-+-+-+-+-+-+

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号