下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于icmp重定向的中间人攻击研究
“中间人”攻击是指攻击者在网络上攻击特定两个主机的方法,使两个主机之间的通信数据通过攻击者的主机传输。在数据传输过程中,攻击者可以记录数据,操纵数据,挂载网络中的马匹,并执行dns反向攻击。通常情况下攻击者会将网络内的特定主机和网关作为攻击目标,这样一来特定主机与外网的通信数据都要经过攻击者主机中转,攻击者可以截获更多有价值的数据,可以实现更多的攻击目的。“中间人”攻击对网络用户构成了严重威胁,研究这种攻击行为对网络安全管理工作具有实际意义。目前,“中间人”攻击普遍通过ARP欺骗来实现。ARP欺骗是由于ARP协议过分信任网络内的信息,只要收到发送给自己的ARP请求或应答报文,ARP协议不加以任何验证就根据报文中的发送方IP地址和MAC地址刷新自己的ARP缓存表。这种信任直接导致了ARP欺骗行为的产生。为了预防ARP欺骗,目前网络管理员普遍采用以下策略:1)在主机端和网关端进行静态地址绑定;2)在交换机上进行安全设置;3)在主机端安装ARP防火墙,如360ARP防火墙。这些措施有效地预防了ARP欺骗的发生,在网络内通过ARP欺骗实施“中间人”攻击变得越来越困难。为了突破ARP欺骗的局限性,近年来出现了基于ICMP重定向的“中间人”攻击。攻击者利用伪造的ICMP重定向报文来修改网络内的特定主机的默认网关,从而达到“中间人”攻击的目的。之前针对ARP欺骗采取的预防措施对ICMP重定向攻击无效。目前针对ICMP重定向攻击尚没有有效的预防措施,因此研究基于ICMP重定向的“中间人”攻击对网络安全管理工作有重要意义。1对设备转发任务的分析ICMP重定向是指在特定情况下,当路由器检测到一台主机使用非优化路由时,会向该主机发送一个ICMP重定向报文,要求主机改变路由,同时路由器会把初始数据报向目的地转发。下面以图1为例说明ICMP重定向过程。图1的网络地址是192.168.8.0,子网掩码是255.255.255.0,R1和R2路由器均可与因特网连通,正常情况下网络内所有主机的默认网关均指向R1路由器的内网接口,即192.168.8.254。网络内部主机发往因特网的数据包都要经过R1路由器中转。假设R1路由器的因特网链路突然异常中断,这时R1接收到主机1发往因特网的IP数据报,R1发现自己的链路出现异常不能转发这个IP数据报并且它知道R2路由器可以转发这个IP数据报,于是它向主机1发出一个ICMP重定向报文,要求主机1将默认网关更改为R2路由器,同时将这个IP数据报转发给R2路由器,由R2路由器完成这个IP数据报的转发。主机1接收到ICMP重定向报文,发现这是默认网关R1路由器发给自己的,于是它信任这个ICMP重定向报文携带的数据,将自己的默认网关修改为R2路由器,主机1发往因特网的后续IP数据报就直接提交给R2路由器,由它来完成转发任务。如果R1路由器的因特网链路得到了恢复,这个信息会通过动态路由协议(如RIP、OSPF)通知给R2路由器,R2更新自己的路由表之后发现到达因特网最优的路径是通过R1路由器,但网络内部主机并不了解这一信息,它们的默认网关仍然指向了R2路由器。于是R2在接收到主机1发往因特网的IP数据报时,会将这个IP数据报转发给R1路由器,由R1完成这个IP数据报的转发,之后R2向主机1发送一个ICMP重定向报文,通知主机1将默认网关更改为R1路由器。主机1收到这个ICMP重定向报文,发现这是当前的默认网关R2路由器发给自己的,于是它信任这个ICMP重定向报文携带的数据,将自己的默认网关修改为R1路由器,主机1发往因特网的后续IP数据报就直接提交给R1路由器,由它来完成转发任务。通过上面的分析,我们可以发现路由器是通过动态路由协议(如RIP、OSPF)来识别网络拓扑结构变化的,而主机是通过ICMP重定向报文来识别这种变化的,因此ICMP重定向报文在网络通信中发挥了重要的作用。2通过icmp重定向攻击ICMP重定向攻击是指攻击者伪造网关向特定主机发送ICMP重定向报文从而达到数据监听、数据篡改的目的。ICMP重定向攻击的过程如图2所示。图2的网络地址是192.168.8.0,子网掩码是255.255.255.0,网关是R1路由器,网络内所有主机的默认网关均指向R1的内网接口,即192.168.8.254。网络内部主机发往因特网的数据包都要经过R1路由器中转。为了实施“中间人”攻击,攻击者首先伪造网关向主机1发送一个ICMP重定向报文,通知主机1新的网关地址是192.168.8.220。主机1收到这个ICMP重定向报文之后,发现报文的发送方IP地址是192.168.8.254,即R1路由器,于是信任这个报文携带的路由重定向信息,将自己的默认路由修改为192.168.8.220(攻击前后主机1默认路由的变化如图3所示)。这导致主机1发往因特网的IP数据报被错误地提交给攻击者,攻击者截获这个报文之后可以从中提取敏感信息、修改数据,然后将报文重新封装、转发给R1,再由R1将报文转发至因特网。整个过程中主机1的通信没有受到影响,其发往因特网的IP数据报要经过攻击者主机中转,但因特网返回的数据报到达R1路由器后被直接转发给主机1,因此通过ICMP重定向攻击只能实现单方向的中间人攻击,但仍然可以达到信息窃取、数据篡改的目的。下面具体分析攻击过程中各个阶段的IP数据报。2.1实验2重定向攻击因为网络内的主机只信任网关发出的ICMP重定向报文,攻击者需要伪造网关向主机1发送一个ICMP重定向报文,报文如图4所示,前14个字节是数据链路层数据。目的MAC地址是主机1的MAC地址00-0c-29-21-3e-6e,源MAC地址是攻击者主机的MAC地址00-0d-29-5f-40-24,协议类型是0x0800,代表网络层使用的是IP协议。此处源MAC地址不伪造成网关的MAC地址是为了不破坏交换机的MAC地址表。第15-34字节是IP首部,共20字节。其中第13-16字节是源IP地址,0xc0a808fe代表192.168.8.254,即网关的IP地址。第17-20字节是目的IP地址,0xc0a808e6代表192.168.8.230,即主机1的IP地址。这样一来,主机1会误认为这个ICMP重定向报文来自R1路由器并且信任这个报文携带的重定向信息。第35-42字节是ICMP数据,共8字节。第1字节是ICMP类型字段,0x05代表这是一个ICMP重定向报文。第2字节是代码字段,0x01代表这是一个重定向主机数据报。第3、4字节是校验和字段,本例值为0x1757。第5-8字节是新的网关地址,0xc0a808dc代表192.168.8.220,即新的网关地址为攻击者主机的IP地址。主机1会将这个IP地址作为自己的默认网关。这样一来,今后主机1发往因特网的IP数据报都会提交给攻击者。最后60字节是模拟R1路由器截获的主机1发出的ICMP数据报。这部分是重定向攻击的重点。正常情况下主机1发往因特网的数据报首先被提交给R1路由器,如果网络拓扑发生变化(如某条链路中断),R1路由器会向主机1发送一个ICMP重定向报文,通知主机1更改默认路由。这个重定向报文中需要携带主机1发出IP数据报的前60字节(从网络层开始),这样做的目的是让主机1可以将这个IP数据报和某个进程关联起来。攻击者需要伪造这60字节的数据。经过测试我们发现,如果将这60字节数据伪造成TCP报文,重定向攻击无法成功,这是因为TCP协议是面向连接的、可靠的传输层协议,主机1会从伪造数据中提取出端口号、序列号、确认号等信息和自己正在运行的进程进行比较,结果一定是不匹配,因此主机1不信任这60字节数据,重定向攻击失败。在图4中我们伪造的是主机1发出的一个ICMP请求报文,由于ICMP是一种无连接、无状态协议,主机1无法判断自己是否发出了这个报文,因此会信任这个伪造的IP数据报,进而达到重定向攻击目的。这60字节数据,前20字节是IP首部,其中第13-16字节是源IP地址,0xc0a808e6代表192.168.8.230,即主机1的IP地址。第17-20字节是目的IP地址,0xd22f8086代表210.47.128.134,即因特网主机的IP地址。第10字节是协议类型字段,0x01代表传输层使用的是ICMP协议。第11-12字节是校验和字段,本例为0x1e0c,这个数值用于校验前20字节(即IP首部)是否出错。接下来8个字节是ICMP首部,其中第3、4字节是校验和字段,用于校验后40字节(即ICMP首部和数据部分)是否出错,本例值为0x435c。最后32字节是ICMP数据部分,本例是一组小写英文字符。主机1从前20字节数据中提取源IP地址(192.168.8.230)发现和自己的IP相同,根据协议类型字段识别出这是一个ICMP数据报,进而信任该重定向报文携带的数据。经过大量测试,我们发现在构造重定向报文时需要注意以下问题:1)数据包的源MAC地址是攻击者主机的MAC地址,这样可以防止交换机的MAC地址表出错;2)数据包的源IP地址必须是默认网关的IP地址,因为主机只信任默认网关发出的ICMP重定向报文;3)新的默认网关地址设置为攻击者主机的IP地址,这个IP地址必须和被攻击者主机处在同一网段;4)伪造的60字节数据设计成ICMP请求报文,注意这个伪造数据的源IP地址是被攻击者主机的IP地址,目的IP地址应该是一个其他网段地址,因为只有这样的报文才会经过网关向外转发;5)伪造的60字节数据需要保证IP首部和ICMP首部的校验和正确,否则被攻击者主机拒绝信任这个重定向报文。2.2接收数据数据报由于主机1信任了这个伪造的ICMP重定向报文,将自己的默认网关修改为攻击者的IP地址(即192.168.8.220),这导致主机1发往因特网的IP数据报被错误地提交给攻击者主机。图5给出的是主机1接收电子邮件过程中发出的一个POP3数据报,该数据报内携带了用户的电子邮箱密码1234。下面对该报文进行详细分析。报文的前14个字节是链路层数据,其中第1-6字节是目的MAC地址,此处应为网关的MAC地址,由于主机1遭受ICMP重定向攻击之后已将默认网关由R1路由器更改为攻击者主机,于是主机1将攻击者主机的MAC地址添在此处,这样该数据报会被攻击者主机正常接收。第7-12字节是源MAC地址,即主机1自己的MAC地址。第13-14字节是协议类型字段,本例为0x0800代表网络层使用的是IP协议。第15-34字节是IP首部,共20字节。其中第11-12字节是IP首部校验和字段,本例值为0xd98f,该值用于校验IP首部20字节是否出错。第13-16字节是源IP地址,本例值为0xc0a808e6,即主机1的IP地址192.168.8.230。第17-20字节是目的IP地址,本例值为0xd22f821c,即POP3服务器的IP地址210.47.130.28。第10个字节指明传输层协议类型,本例值为0x06代表传输层使用的是TCP协议。第35-54字节是TCP的首部,共20字节。其中第1-2字节是源端口字段,本例值为0x0424=1060,这是一个大于1024的随机端口。第3-4字节是目的端口,值为0x006e=110,这是POP3协议使用的知名端口,该字段指明应用层使用的是POP3协议。第17-18字节是TCP首部校验和字段,值为0xfc8f,该值用于校验TCP首部20字节是否出错。最后11个字节是应用层POP3数据。值为0x5041535320313233340d0a,翻译成ASCII码就是PASS1234、0x0d0a代表回车和换行。攻击者可以从该数据报中提取出用户密码,也可以篡改数据,进而实现特定攻击目的。为了保证主机1的通信正常进行,攻击者需要重新封装这个数据报,将它转发给POP3服务器,下面具体分析攻击者主机转发出的IP数据报。2.3基于支撑的pla攻击者主机转发出的IP数据报如图6所示。观察该数据报可以发现报文的前12字节发生了变化,其余部分没有改
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州毕节市人才“蓄水池”岗位引进人才10人笔试备考试题及答案解析
- 2026河南商丘市市直机关遴选公务员15人笔试备考试题及答案解析
- 2026辽宁大连理工大学博士后招聘考试备考试题及答案解析
- 2025天津某服务技术有限公司面向社会招聘3人笔试备考试题及答案解析
- 2026安康市汉滨区第一医院招聘(20人)考试参考试题及答案解析
- 2025年药师药学技术责任试题及答案
- 面试表格制作能力测试题及答案
- 2025年南京交管三力测试题及答案
- 保底收购协议书农户双赢
- 食堂原材料供应协议书
- 高中语文新课标必背古诗文72篇
- 医院收费员考试试题及答案
- 病理生理学案例复习题
- 大型船舶建造设施项目船坞及码头工程施工组织设计
- GB/T 20469-2006临床实验室设计总则
- GB/T 18268.1-2010测量、控制和实验室用的电设备电磁兼容性要求第1部分:通用要求
- FZ/T 14051-2021棉与锦纶长丝氨纶包覆纱交织弹力印染布
- 各工序的协调措施施工方案
- 药化实验三 苯佐卡因的合成2015.12.23课件
- 《电气控制与PLC应用技术(第2版)》第五章习题答案
- 硫化黑生产工艺
评论
0/150
提交评论