文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ARP攻击原理、防范、解决

ARP攻击原理、防范、解决

时间:2007-06-26  来源:ajiangg

   前言:ARP攻击也是在维护中时常遇到的问题,大概的收集整理了一下ARP攻击的原理、防范、解决的相关文档。另外现在还有专门的ARP软件,在这里没有具体的来说。 ARP欺骗原理:   首先还是得说一下什么是ARP。如果你在UNIX Shell下输入 arp -a (9x下也是),你的输出看起来应该是这样的:

  Interface: xxx.xxx.xxx.xxx

  Internet Address Physical Address Type

  xxx.xxx.xxx.xxx 00-00-93-64-48-d2 dynamic

  xxx.xxx.xxx.xxx 00-00-b4-52-43-10 dynamic

  ...... ......... ....

这里第一列显示的是ip地址,第二列显示的是和ip地址对应的网络接口卡的硬件地址(MAC),第三列是该ip和mac的对应关系类型。

可见,arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。

为什么要将ip转化成mac呢?简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义。但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别。也就是说,只有机器的mac地址和该ip包中的mac地址相同的机器才会应答这个ip包。因为在网络中,每一台主机都会有发送ip包的时候。所以,在每台主机的内存中,都有一个 arp--> mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这是由于以太网在子网层上的传输是靠48位的mac地址而决定的。

通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的mac地址。如果没有找到,该主机就发送一个ARP广播包,看起来象这样子:

  "我是主机xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip为xxx.xxx.xxx.xx1的主机请告之你的mac来"

  ip为xxx.xxx.xxx.xx1的主机响应这个广播,应答ARP广播为:

  "我是xxx.xxx.xxx.xx1,我的mac为xxxxxxxxxx2"

于是,主机刷新自己的ARP缓存,然后发出该ip包。
一个入侵者想非法进入某台主机,他知道这台主机的防火墙只对192.0.0.3(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:

1、他先研究192.0.0.3这台主机,发现这台95的机器使用一个oob就可以让他死掉。

2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。

3、这时,主机发到192.0.0.3的ip包将无法被机器应答,系统开始更新自己的arp对应表。将192.0.0.3的项目搽去。

4、这段时间里,入侵者把自己的ip改成192.0.0.3

5、他发一个ping(icmp 0)给主机,要求主机更新主机的arp转换表。

6、主机找到该ip,然后在arp表中加入新的ip-->mac对应关系。

7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。

现在,假如该主机不只提供telnet,它还提供r命令(rsh,rcopy,rlogin等)那么,所有的安全约定将无效,入侵者可以放心的使用这台主机的资源而不用担心被记录什么。

有人也许会说,这其实就是冒用ip嘛。是冒用了ip,但决不是ip欺骗,ip欺骗的原理比这要复杂的多,实现的机理也完全不一样。

上面就是一个ARP的欺骗过程,这是在同网段发生的情况。但是,提醒注意的是,利用交换集线器或网桥是无法阻止ARP欺骗的,只有路由分段是有效的阻止手段。(也就是ip包必须经过路由转发。在有路由转发的情况下,ARP欺骗如配合ICMP欺骗将对网络造成极大的危害。从某种角度讲,入侵者可以跨过路由监听网络中任何两点的通讯,如果设置防火墙,请注意防火墙有没有提示过类似“某某IP是局域IP但从某某路由来”等这样的信息。

ARP欺骗流程:
    了解这些常识后,现在就可以谈在网络中如何实现ARP欺骗了,可以看看这样一个例子: 在有路由转发的情况下,发送到达路由的ip的主机其arp对应表中,ip的对应值是路由的mac。

  比如: 我ping www.xxxx.com后,那么在我主机中,www. xxxx.com的IP对应项不是xxxx的mac,而是我路由的mac,其ip也是我路由的IP。(有些网络软件通过交换路由ARP可以得到远程IP的MAC)。
有兴趣做深入一步的朋友可以考虑这样一种情况:

假设这个入侵者突然想到:我要经过一个路由才可以走到那台有防火墙的主机!!!

于是这个入侵者开始思考:

1、我的机器可以进入那个网段,但是,不是用192.0.0.3的IP。

2、如果我用那个IP,就算那台正版192.0.0.3的机器死了,那个网络里的机器也不会把ip包丢到路由传给我。

3、所以,我要骗主机把ip包丢到路由。

通过多种欺骗手法可以达到这个目的。所以他开始这样做:

1、为了使自己发出的非法ip包能在网络上活久一点,开始修改ttl为下面的过程中可能带来的问题做准备。他把ttl改成255。 (ttl定义一个ip包如果在网络上到不了主机后在网络上能存活的时间,改长一点在本例中有利于做充足的广播)

2、他掏出一张软盘,这张软盘中有他以前用sniffer时保存的各种ip包类型。

3、他用一个合法的ip进入网络,然后和上面一样,发个洪水包让正版的192.0.0.3死掉,然后他用192.0.0.3进入网络。

4、在该网络的主机找不到原来的192.0.0.3的mac后,将更新自己的ARP对应表。于是他赶紧修改软盘中的有关ARP广播包的数据,然后对网络广播说"能响应ip为192.0.0.3的mac是我"。

5、好了,现在每台主机都知道了,一个新的MAC地址对应ip 192.0.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的ip包丢给路由。于是他还得构造一个ICMP的重定向广播。

6、他开始再修改软盘中的有关ICMP广播包的数据,然后发送这个包,告诉网络中的主机:"到192.0.0.3的路由最短路径不是局域网,而是路由。请主机重定向你们的路由路径,把所有到192.0.0.3的ip包丢给路由哦。"

7、主机接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3 的ip通讯都丢给路由器。

8、入侵者终于可以在路由外收到来自路由内的主机的ip包了,他可以开始telnet到主机的23口,用ip 192.0.0.3。

注意,这只是一个典型的例子,在实际操作中要考虑的问题还不只这些。

现在想想,如果他要用的是sniffer会怎样?

可见,利用ARP欺骗,一个入侵者可以:

1、利用基于ip的安全性不足,冒用一个合法ip来进入主机。

2、逃过基于ip的许多程序的安全检查,如NSF,R系列命令等。

他甚至可以栽账嫁祸给某人,让他跳到黄河洗不清,永世不得超生!

防止ARP欺骗简介:

1、不要把你的网络安全信任关系建立在ip基础上或mac基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在ip+mac基础上。

2、设置静态的mac-->ip对应表,不要让主机刷新你设定好的转换表。

3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。

4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。

5、使用"proxy"代理ip的传输。

6、使用硬件屏蔽主机。设置好你的路由,确保ip地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。

7、管理员定期用响应的ip包中获得一个rarp请求,然后检查ARP响应的真实性。

8、管理员定期轮询,检查主机上的ARP缓存。

9、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢
失。

以下收集的资料,供做进一步了解ARP协议

ARP的缓存记录格式:

每一行为:

  IF Index:Physical Address:IP Address:Type

其中: IF Index 为:

1 以太网

2 实验以太网

3 X.25

4 Proteon ProNET (Token Ring)

5 混杂方式

6 IEEE802.X

7 ARC网

ARP广播申请和应答结构

硬件类型:协议类型:协议地址长:硬件地址长:操作码:发送机硬件地址:

发送机IP地址:接受机硬件地址:接受机IP地址。

其中:协议类型为: 512 XEROX PUP

  513 PUP 地址转换

  1536 XEROX NS IDP

  2048 Internet 协议 (IP)

  2049 X.752050NBS

  2051 ECMA

  2053 X.25第3层

  2054 ARP

  2055 XNS

  4096 伯克利追踪者

  21000 BBS Simnet

  24577 DEC MOP 转储/装载

  24578 DEC MOP 远程控制台

  24579 DEC 网 IV 段

  24580 DEC LAT

  24582 DEC

  32773 HP 探示器

  32821 RARP

  32823 Apple Talk

  32824 DEC 局域网桥

如果你用过NetXRay,那么这些可以帮助你了解在细节上的ARP欺骗如何配合ICMP欺骗而让一个某种类型的广播包流入一个.

ARP故障现象:     当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和安全网关,让所有上网的流量必须经过病毒主机。其他用户原来直接通过安全网关上网现在转由通过病毒主机上网,切换的时候用户会断一次线。

  切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。

  由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从安全网关上网,切换过程中用户会再断一次线。

快速查找方法:
在WebUIà系统状态à系统信息à系统历史记录中,看到大量如下的信息:

  MAC SPOOF 192.168.16.200

  MAC Old 00:01:6c:36:d1:7f

  MAC New 00:05:5d:60:c7:18

  这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址)。

  同时在安全网关的WebUIà高级配置à用户管理à读ARP表中看到所有用户的MAC地址信息都一样,或者在WebUIà系统状态à用户统计中看到所有用户的MAC地址信息都一样。

  如果是在WebUIà系统状态à系统信息à系统历史记录中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在安全网关上恢复其真实的MAC地址)。

  在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN(下载地址:http://www.utt.com.cn/upload/nbtscan.rar)工具来快速查找它。

  NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”传奇木马”在做怪,可以找到装有木马的PC的IP/和MAC地址。

  命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。

  NBTSCAN的使用范例:

  假设查找一台MAC地址为“000d870d585f”的病毒主机。

  1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:\下。

  2)在Windows开始à运行à打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C:\nbtscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。

  


  3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。
  解决方法实例: 

  采用双向绑定的方法解决并且防止ARP欺骗。

  1、在PC上绑定安全网关的IP和MAC地址:

  1)首先,获得安全网关的内网的MAC地址(例如HiPER网关地址192.168.16.254的MAC地址为0022aa0022aa)。

  2)编写一个批处理文件rarp.bat内容如下:

  @echo off

  arp -d

  arp -s 192.168.16.254 00-22-aa-00-22-aa

  将文件中的网关IP地址和MAC地址更改为实际使用的网关IP地址和MAC地址即可。

  将这个批处理软件拖到“windowsà开始à程序à启动”中。

  3)如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000的默认启动目录为“C:\Documents and Settings\All Users「开始」菜单程序启动”。

  2、在安全网关上绑定用户主机的IP和MAC地址:

  在WebUIà高级配置à用户管理中将局域网每台主机均作绑定。

  

 

 

 
相关阅读 更多 +
排行榜 更多 +
冰封前线1941无限金币版

冰封前线1941无限金币版

策略塔防 下载
头文字d公路传说手机版

头文字d公路传说手机版

模拟经营 下载
火车站模拟器手机版

火车站模拟器手机版

模拟经营 下载