要了解故障原理,我们先来了解一下ARP协议。
在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
在命令行中使用arp -a命令,获得本机的ARP缓存.如果想知道一个局域网主机的MAC地址,可以先Ping它,然后再使用这个命令. 以下是我去获得非飞的主机的MAC地址的过程.获得本机的MAC可以用ipconfig/all获得.
C:\Documents and Settings\Administrator>ping feifei
Pinging feifei[10.1.28.23] with 32 bytes of data:
Reply from 10.1.28.23: bytes=32 time=1ms TTL=128
Reply from 10.1.28.23: bytes=32 time<1ms TTL=128
Reply from 10.1.28.23: bytes=32 time<1ms TTL=128
Reply from 10.1.28.23: bytes=32 time<1ms TTL=128
Ping statistics for 10.1.28.23:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
C:\Documents and Settings\Administrator>arp -a
Interface: 10.1.28.11 --- 0x10003
Internet Address Physical Address Type
10.1.28.1 00-05-3b-04-2d-48 dynamic
10.1.28.2300-14-85-82-16-a5 dynamic
注意Type是dynamic,就是动态的意思,这样就容易被欺骗.可以用asp -s设置为静态,就能防止ARP欺骗了.
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。
主机 IP地址 MAC地址
A 192.168.16.1 aa-aa-aa-aa-aa-aa
B 192.168.16.2 bb-bb-bb-bb-bb-bb
C 192.168.16.3 cc-cc-cc-cc-cc-cc
D 192.168.16.4 dd-dd-dd-dd-dd-dd
我们以主机A(192.168.16.1)向主机B(192.168.16.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.16.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A进行欺骗,A去Ping主机C却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果进行欺骗的时候,把C的MAC地址骗为DD-DD-DD-DD-DD-DD,于是A发送到C上的数据包都变成发送给D的了。这不正好是D能够接收到A发送的数据包了么,嗅探成功。
A对这个变化一点都没有意识到,但是接下来的事情就让A产生了怀疑。因为A和C连接不上了。D对接收到A发送给C的数据包可没有转交给C。
做“man in the middle”,进行ARP重定向。打开D的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个计划。
D直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了。
【故障现象】
当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。
一般ARP欺骗软件运行中,其他被控制电脑就不能上网.
由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当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、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
【解决方案】
最好的方法是在交换机或者路由器上绑定用户,在用户主机绑定网关MAC.但大型网络工作量较大.一般只在用户那里绑定.
在PC上绑定路由器或者交换机的IP和MAC地址:
1)首先,获得路由器或者交换机的内网的MAC地址(例如C区A栋地址10.1.28.*段的交换机的MAC地址为00-05-3b-04-2d-48)。
在命令行中输入arp -a,显示
10.1.28.1 00-05-3b-04-2d-48 dynamic
2)编写一个批处理文件rarp.bat内容如下:
@echo off
arp -d
arp -s 10.1.28.1 00-05-3b-04-2d-48
将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可。
将这个批处理软件拖到“windows--开始--程序--启动”中。
3)如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000的默认启动目录为“C:\Documents and Settings\All Users「开始」菜单程序启动”。
ARP欺骗的定义:由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!这就是一个简单的ARP欺骗。
ARP欺骗现象表现为:
例如:主机A想要和主机B通信,主机A会查找本地arp表,找到主机B的mac地址,然后进行传输。如果主机A没有找到主机B的mac地址,那么主机A就会发送一个arp广播包,主机B收到这个ARP广播包后,回复主机A它的mac地址。然后主机A就会在本地arp缓存表里,生成主机B的ip和mac地址信息。(该表现默认会保存300秒)
ARP欺骗如何解决:
情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者不能正常上网。
情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。
关于ARP欺骗的具体原理请看我收集的资料ARP欺骗的原理 如果用户发现以上疑似情况,可以通过如下 *** 作进行诊断:
点击“开始”按钮->选择“运行”->输入“arp –d”->点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。
注:arp -d命令用于清除并重建本机arp表。arp –d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击。 1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。
2、被害者:(1)绑定网关mac地址。具体方法如下:
1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下: @echooffarp-darp-s10.10.75.25400-22-aa-00-22-aa
将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可,计算机重新启动后需要重新进行绑定,因此我们可以将该批处理文件AntiArp.bat文件拖到“windows--开始--程序--启动”中。这样开机时这个批处理就被执行了。
(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。
AntiArp软件会在提示框内出现病毒主机的MAC地址 第一招:使用Sniffer抓包
在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送
ARP Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。
第二招:使用arp -a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp -a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。
第三招:使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert61.135.179.148。假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。
ARP欺骗是黑客常用的攻击手段之一,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。
一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少“黑锅”。
[编辑本段]局域网ARP欺骗的应对
一、故障现象及原因分析
情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者正常上网。
情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。
关于APR欺骗的具体原理请看我收集的资料ARP欺骗的原理
二、故障诊断
如果用户发现以上疑似情况,可以通过如下 *** 作进行诊断:
点击“开始”按钮->选择“运行”->输入“arp–d”->点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。
注:arp-d命令用于清除并重建本机arp表。arp–d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击。
三、故障处理
1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。
2、被害者:(1)绑定网关mac地址。具体方法如下:
1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下: @echooffarp-darp-s10.10.75.25400-22-aa-00-22-aa
将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可,计算机重新启动后需要重新进行绑定,因此我们可以将该批处理文件AntiArp.bat文件拖到“windows--开始--程序--启动”中。这样开机时这个批处理就被执行了。
(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。
AntiArp软件会在提示框内出现病毒主机的MAC地址
四,找出ARP病毒源
第一招:使用Sniffer抓包
在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送
ARP Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。
第二招:使用arp-a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp-a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。
第三招:使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert61.135.179.148。假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。
希望对你有帮助``呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)