ARP欺骗原理与模拟蔡灿民一、什么是ARP协议ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。所以说从某种意义上讲ARP协议是工作在更低于IP协议的协议层。这也是为什么ARP欺骗更能够让人在神不知鬼不觉的情况下出现网络故障,他的危害更加隐蔽。ARP协议的工作流程:在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。找“主机A(IP192.1681.1)”的MAC步骤:1、查自己的ARP缓存表,如果有,则成功,否则转向第二步;2、发送目标MAC地址是“FF.FF.FF.FF.FF.FF”向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?3、只有主机B接收到这个帧时,才向主机A做出的回应,“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。4、放在ARP缓存表中,以便下次查询。二、ARP欺骗的原理此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网网的罪魁祸首,是网管员的心腹大患。从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。遭受ARP攻击后现象ARP欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp-d后,又可恢复上网。ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。常用的维护方法目前对于ARP攻击防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。.1静态绑定最常用的方法就是做IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。2使用ARP防护软件目前关于ARP类的防护软件出的比较多了,大家使用比较常用的ARP工具主要是欣向ARP工具,Antiarp等。它们除了本身来检测出ARP攻击外,防护的工作原理是一定频率向网络广播正确的ARP信息。我们还是来简单说下这两个小工具。3具有ARP防护功能的路由器这类路由器以前听说的很少,对于这类路由器中提到的ARP防护功能,其实它的原理就是定期的发送自己正确的ARP信息。但是路由器的这种功能对于真正意义上的攻击,是不能解决的。可能你会有疑问:我们也可以发送比欺骗者更多更快正确的ARP信息啊?如果攻击者每秒发送1000个ARP欺骗包,那我们就每秒发送1500个正确的ARP信息!首先我们可以肯定一点的就是发送ARP欺骗包是通过一个恶毒的程序自动发送的,正常的TCP/IP网络是不会有这样的错误包发送的,而人工发送又比较麻烦。也就是说当黑客没有运行这个恶毒程序的话,网络上通信应该是一切正常的,保留在各个连接网络计算机上的ARP缓存表也应该是正确的,只有程序启动开始发送错误ARP信息以及ARP欺骗包时才会让某些计算机访问网络出现问题。接下来我们来阐述下ARP欺骗的原理。第一步:假设这样一个网络,一个Hub或交换机连接了3台机器,依次是计算机A,B,C。A的地址为:IP:192.168.1.1MAC:AA-AA-AA-AA-AA-AAB的地址为:IP:192.168.1.2MAC:BB-BB-BB-BB-BB-BBC的地址为:IP:192.168.1.3MAC:CC-CC-CC-CC-CC-CC第二步:正常情况下在A计算机上运行ARP-A查询ARP缓存表应该出现如下信息。Interface:192.168.1.1onInterface0x1000003InternetAddressPhysicalAddressType192.168.1.3CC-CC-CC-CC-CC-CCdynamic第三步:在计算机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-DDmac地址。第四步:欺骗完毕我们在A计算机上运行ARP-A来查询ARP缓存信息。你会发现原来正确的信息现在已经出现了错误。Interface:192.168.1.1onInterface0x1000003InternetAddressPhysicalAddressType192.168.1.3DD-DD-DD-DD-DD-DDdynamic主机B主机A总结从上面的介绍我们可以清楚的明白原来网络中传输数据包最后都是要根据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访问也就出现问题了。实验原则1、每两个同学为一小组进行合作,每一小组同学交一份报告;2、主机A、B分别为小组两同学的电脑,主机C为网关172.*.*.254;3、模拟:主机B攻击主机A,向主机A发送ARP回应(Reply)包,包中为C的IP及错误的MAC,以达到修改主机A的ARP表。实验步骤1、主机A和主机B进行Ping操作,保证网络正常运行,检查主机A的ARP表,记下网关C的MAC;2、运行IRIS,过滤配置为:A、协议:ARP;B、IP地址:主机A与主机B;3、由主机B发出Ping主机A的命令,捕获到ARP数据包,在回应包中做相应修改,修改内容为:A、MAC头的发送与接收MAC;B、网关C的IP及错误的MAC;4、检测主机A的ARP表中网关C的MAC及网络情况。5、用ARP命令清空主机A的ARP表解除故障,再次检查网络情况本次作业1、对ARP包进行截图并分析;2、作ARP欺骗演示,要求A、要有拓扑图;B、截图欺骗前与欺骗后的ARP表。3、怎样解决假ARP表的网络故障;4、在模板的体会中论述:在网络管理中如何防止ARP欺骗类故障。