ARP欺骗

一、首先说说:什么是ARP协议

    ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个 主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发 送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 所以说从某种意义上讲ARP协议是工作在更低于IP协议的协议层。这也是为什么ARP欺骗更能够让人在神不知鬼不觉的情况下出现网络故障,他的危害更加隐 蔽。

二、ARP欺骗的原理

    首先我们可以肯定一点的就是发送ARP欺骗包是通过一个恶毒的程序自动发送的,正常的TCP/IP网络是不会有这样的错误包发送的,而人工发送又比较麻 烦。也就是说当黑客没有运行这个恶毒程序的话,网络上通信应该是一切正常的,保留在各个连接网络计算机上的ARP缓存表也应该是正确的,只有程序启动开始 发送错误ARP信息以及ARP欺骗包时才会让某些计算机访问网络出现问题。接下来我们来阐述下ARP欺骗的原理。

    第一步:假设这样一个网络,一个Hub或交换机连接了3台机器,依次是计算机A,B,C。

A的地址为:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA 

B的地址为:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB

C的地址为:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC

    第二步:正常情况下在A计算机上运行ARP -A查询ARP缓存表应该出现如下信息。

Interface: 192.168.1.1 on Interface 0x1000003 

Internet Address Physical Address Type

192.168.1.3 CC-CC-CC-CC-CC-CC dynamic

    第三步:在计算机B上运行ARP欺骗程序,来发送ARP欺骗包。

    B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD- DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP 缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.10.3(C的IP地址)和无效的DD-DD-DD-DD- DD-DD mac地址。

    第四步:欺骗完毕我们在A计算机上运行ARP -A来查询ARP缓存信息。你会发现原来正确的信息现在已经出现了错误。

Interface: 192.168.1.1 on Interface 0x1000003 

Internet Address Physical Address Type

192.168.1.3 DD-DD-DD-DD-DD-DD dynamic

    从上面的介绍我们可以清楚的明白原来网络中传输数据包最后都是要根据MAC地址信息的,也就是说虽然我们日常通讯都是通过IP地址,但是最后还是需要通过 ARP协议进行地址转换,将IP地址变为MAC地址。而上面例子中在计算机A上的关于计算机C的MAC地址已经错误了,所以即使以后从A计算机访问C计算 机这个192.168.1.3这个地址也会被ARP协议错误的解析成MAC地址为DD-DD-DD-DD-DD-DD的。

    问题也会随着ARP欺骗包针对网关而变本加厉,当局域网中一台机器,反复向其他机器,特别是向网关,发送这样无效假冒的ARP应答信息包时,严重的网络堵 塞就会开始。由于网关MAC地址错误,所以从网络中计算机发来的数据无法正常发到网关,自然无法正常上网。这就造成了无法访问外网的问题,另外由于很多时 候网关还控制着我们的局域网LAN上网,所以这时我们的LAN访问也就出现问题了。

三、ARP欺骗的危害

    前面也提到了ARP欺骗可以造成内部网络的混乱,让某些被欺骗的计算机无法正常访问内外网,让网关无法和客户端正常通信。实际上他的危害还不仅仅如此,一 般来说IP地址的冲突我们可以通过多种方法和手段来避免,而ARP协议工作在更低层,隐蔽性更高。系统并不会判断ARP缓存的正确与否,无法像IP地址冲 突那样给出提示。而且很多黑客工具例如网络剪刀手等,可以随时发送ARP欺骗数据包和ARP恢复数据包,这样就可以实现在一台普通计算机上通过发送ARP 数据包的方法来控制网络中任何一台计算机的上网与否,甚至还可以直接对网关进行攻击,让所有连接网络的计算机都无法正常上网。这点在以前是不可能的,因为 普通计算机没有管理权限来控制网关,而现在却成为可能,所以说ARP欺骗的危害是巨大的,而且非常难对付,非法用户和恶意用户可以随时发送ARP欺骗和恢 复数据包,这样就增加了网络管理员查找真凶的难度。


==========

目前知道的带有ARP欺骗功能的软件有“QQ第六感”、“网络执法官”、“P2P终结者”、“网吧传奇杀手”等,这些软件中,有些是人为手工操作来破坏网络的,有些是做为病毒或者木马出现,使用者可能根本不知道它的存在,所以更加扩大了ARP攻击的杀伤力。
    从影响网络连接通畅的方式来看,ARP欺骗有两种攻击可能,一种是对路由器ARP表的欺骗;另一种是对内网电脑ARP表的欺骗,当然也可能两种攻击同时进 行。不管理怎么样,欺骗发送后,电脑和路由器之间发送的数据可能就被送到错误的MAC地址上,从表面上来看,就是“上不了网”,“访问不了路由器”,“路 由器死机了”,因为一重启路由器,ARP表会重建,如果ARP攻击不是一直存在,就会表现为网络正常,所以网吧业主会更加确定是路由器“死机”了,而不会 想到其他原因。为此,宽带路由器背了不少“黑锅”,但实际上应该ARP协议本身的问题。

如果出现这种问题,一般有如下几个特点:

1、局域网内部所有的(或者大多数)PC都ping不通网关地址,无法上网;但是网卡、交换机的连接指示灯都是正常的。
2、由于Windows系统默认的ARP timeout时间较长,即便是立刻找出了是哪个PC搞的鬼,只关闭该PC也无法立刻解决问题,还需要在客户PC上清空ARP表[在CMD模式下执行arp /d]重新学习或者干脆重启PC才行。
3、虽然这些ARP欺骗是仿冒了路由器网口的MAC的地址,但实际上它们并不需要真的把自己网卡的ip/ mac设置的和路由器一样,所以路由器上通常不会有地址冲突的告警提示。
要确认该问题方法也很简单,在确保局域网交换机正常工作和网线正常连接的情况下,随便找个不能上网的PC,打开CMD命令行界面,执行arp /a,察看网关ip地址对应的mac是否是路由器的网口的mac地址,如果不是,那么基本可以确定是ARP欺骗了。例如:
这是PC端的ARP表项:
C:/>arp /a
Interface: 192.168.19.180 --- 0x2
  Internet Address      Physical Address      Type
  192.168.0.3           00-90-27-a7-ad-00     dynamic
  192.168.0.1          00-e0-0f-58-cc-1c (路由器以太网口的MAC地址信息)   dynamic
  192.168.0.10        00-0a-5e-04-72-50     dynamic

        再查看路由器以太网口的MAC地址信息:00-e0-0f-58-cc-1c 192.168.0.1,如果上面所查看到的不是Router的MAC,说明有人在故意扰乱。

如 果是ARP问题,通常会导致全网不通的掉线,影响很大,也很容易发现和定位。应急处理的方法和不难,前面已经说过。对于预防的方法,可以在每个PC上使用 CMD命令:arp -s 192.168.1.6 00-e0-0f-62-c6-09来绑定静态的ARP表项,但是每个PC都要配置,实施、维护起来比较麻烦。每次开机都会重新绑定静态的ARP表项,所 以很麻烦,可以新建一个批处理文件如static_arp.bat,注意后缀名为bat。编辑它,以后可以通过双击它来执行这条命令,还可以把它放置到系 统的启动目录下来实现启动时自己执行。打开电脑“开始”->“程序”,双击“启动”打开启动的文件夹目录,把刚才建立的static_arp.bat复制 到里面去,以后电脑每次启动时就会自己执行arp –s命令了。
在路由器上面也有ARP静态绑定的命令,但是ARP欺骗的是仿冒网关的身份去欺骗局域网的PC,所以在路由器上绑定各个PC的mac地址意义不大。不过这种方式倒是可以防止局域网PC乱改ip地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值