下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

解决局域网中的ARP攻击

作者:课课家教育     来源: http://www.kokojia.com点击数:861发布时间: 2018-01-15 11:00:22

标签: 通信服务器安全操作系统

软考,您想通过吗?一次通过才是硬道理

  想要了解ARP欺骗攻击原理,首先就要了解什么是ARP协议。ARP是地址协议的英文缩写,它是一个链路层协议,工作在OSI模型第二层,在本层和硬件接口间进行联系,同时为上层(网络层)提供服务。
  我们知道,二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。因此IP地址与MAC地址之间就必须存在一种对立关系,而ARP协议就是用来确定这种对应关系的协议。
  在局域网中,通过ARP协议进行IP地址(第三层)与第二层物理层(即MAC地址)的相互交换。网吧中的一些设备如路由器、装有TCP/IP协议的电脑等都提供ARP缓存表,以提高通信速度。目前很多带有ARP欺骗功能的 攻击软件都是利用ARP协议的这个特点来对网络设备进行攻击,通过伪造的MAC与局域网内的IP 地址对应,并修改路由器或电脑的ARP缓存表,使得具有合法MAC的电脑无法与IP地址对应,从而无法通过路由器上网。
  在掉线重启路由器后,ARP缓存表会刷新,网络会在短时间内恢复正常,待ARP个攻击启动后,又出现断网现象,如此反复,很容易被误断为路由器“死机”,从而使得网吧管理员无法及时采取行动迅速恢复网吧的正常运营。说白一点,就是你要访问网络的时候需要通过一个服务器,但是中毒的主机,就会在中间截住服务器发送给你的数据包,并在中间加上它的内容以后再发给你。这样,你要看的网页就会多出一段代码。
  通过下面的例子我们可以很清楚的看出ARP的工作机制。
  假定有如下五个IP地址的主机或者网络设备,它们分别是:
  主机A 192.168.1.2
  主机B 192.168.1.3
  网关C 192.168.1.1
  主机D 10.1.1.2
  网关E 10.1.1.1
  假如主机A要与主机B通信,它首先会检查主机的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址,如果没有它就会向局域网的广播地址发送ARP请求包,大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而广播地址会把这个包广播给局域网内的所有主机,但是只有192.168.1.3这台主机才会响应这个请求包,它会回应192.168.1.2的一个ARP包,大致的意思是192.168.1.3的MAC地址是02-02-02-02-02-02。这样的话,主机A就得到了主机B的MAC地址,并且它会把这个对应关系存在自己的SRP缓存表中。之后主机A与主机B之间的通信就依靠两者缓存表里的MAC地址来通信,直到通信停止后2分钟,这个对应关系才会从表中被删除。
  再来看一个非局域网内部的通信过程。假如主机A需要和主机D进行通信,它首先会发现这个主机D的IP地址并不是自己同一个网段内的,因此需要通过网关来转发,这样的话它会检查自己的ARP缓存表里是否有网关192.168.1.1对应的MAC地址,如果没有就通过ARP请求获得,如果有就直接与网关通信,然后再由网关C通过路由将数据包送到网关E,网关E收到这个数据包后发现是送给主机D(10.1.1.2)的,它就会检查自己的ARP缓存,看看里面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址与主机D通信。
  通过上面的例子我们知道,在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性,像主机B之类的是无法截获A与D之间的通信信息的。
  但是主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。这就导致主机B截取主机A与主机D之间的数据通信成为可能。
  首先主机B向主机A发送一个ARP应答包说192.168.1.1的MAC地址是02-02-02-02-02-02,主机A收到这个包后并没有去验证包的真实性而是直接将自己ARP列表中的192.168.1.1的MAC地址替换成02-02-02-02-02-02,同时主机B向网关C发送一个ARP响应包说192.168.1.2的MAC是02-02-02-02-02-02,同样,网关C也没有去验证这个包的真实性就把自己ARP表中的 192.168.1.2的MAC地址替换成02-02-02-02-02-02。当主机A想要与主机D通信时,它直接把应该发送给网关 192.168.1.1的数据包发送到02-02-02-02-02-02这个MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真正的网关C,当从主机D返回的数据包到达网关C后,网关也使用自己ARP表中的MAC,将发往192.168.1.2这个IP地址的数据发往 02-02-02-02-02-02这个MAC地址也就是主机B,主机B在收到这个包后再转发给主机A完成一次完整的数据通信,这样就成功地实现了一次 ARP欺骗攻击。

解决局域网中的ARP攻击_通信_服务器-安全_操作系统_课课家教育
  如果你是单机上网,那么杀一下毒就可以了。如果是局域网上网,那么下面的就是解决办法:
  路由器端,将客户机的MAC地址和IP地址一一绑定,没有别绑定的电脑就上不了网,因为中毒的主机要想用ARP攻击,就得不断变化自己的MAC地址来截取和发送数据包。做完这一步基本已经能解决问题了。
  另外,在局域网中,一般只有两类设备带有ARP缓存,一类是上网电脑,也只是这两类设备最容易受到ARP攻击。如同路由器受到ARP攻击数据包不能达到电脑一样,上网电脑受到ARP攻击时,数据包也不会发送到路由器上,而是发送到一个错误的地方,当然也就无法 通过路由器上网了。因此,网吧要对付ARP攻击,除对路由器进行IP与NAC绑定以外,在电脑上进行IP与MAC绑定也必不可少。
  在电脑上进行IP与MAC绑定该如何操作呢?其实微软的操作系统中都带有ARP这一命令行程序,在电脑的Windows命令行界面中输入“arp -s +路由器IP如192.168.1.1+路由器LAN口MAC地址”就可以将的路由器IP和MAC绑定到电脑的ARP表中。 若通过Windows命令行界面中输入ARP命令来绑定IP与MAC,电脑每次在重启后都需要先输入ARP命令,还有更简单的办法,可以让电脑每次启动时,自动将路由器的IP与MAC绑定到电脑的ARP表中:
  第一步:新建一个批处理文件如static_arp.bat,注意后缀名为bat。编辑它,在里面加入ARP命令,并保存。要得到路由器的LAN口MAC地址,可以查看路由器的界面中的“LAN运行状态”。
  第二步:将建立好的批处理文件static_arp.bat拷贝到系统的启动目录中。电脑每次启动时将自动运行该文件,自动绑定IP与MAC。
  第三步:将static_arp.bat文件拷贝到网吧内所有电脑的系统启动目录中。
  至此,网吧中的所有电脑都将路由器的IP与MAC绑定到ARP表中,无需再担心因ARP攻击而无法上网。
  特别提示:当使用了ARP防范功能(IP和MAC绑定功能)后,电脑应使用固定IP,而不要使用动态IP(通过DHCP自动获取IP),因为若使用动态IP,电脑每次启动时所获得的IP可能不一样,从而可能造成与路由器中保存的IP与MAC绑定条目不一致,这样电脑将无法上网。
  其实对于ARP欺骗攻击的的防范,最主要是提供用户的安全意识,养成良好的安全习惯,包括:及时安装系统补丁程序;为系统设置强壮的密码;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击,不随便运行不受信任的软件。

赞(28)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程