ARP 攻击原理

ARP协议概述&ARP攻击的原理&ARP解决思路

ARP应该是一直以来捆绕着众多网管朋友的一个难题,我在工作中也经常遇到,也因此搜集了很多关于ARP方面的资料跟防御工具,希望对朋友们有些帮助。

一.ARP协议概述:
P数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。

ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。

如果有一个不被信任的节点对本地网络具有写访问许可权,那么也会有某种风险。这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。ARP机制常常是自动起作用的。在特别安全的网络上, ARP映射可以用固件,并且具有自动抑制协议达到防止干扰的目的

二.ARP的工作原理:以太网设备比如网卡都有自己全球唯一的MAC地址,它们是以MAC地址来传输以太网数据包的,但是它们却识别不了我们IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使IP数据包能发到一个确定的地方去。这就是ARP(Address Resolution Protocol,地址解析协议)。

讲到此处,我们可以在命令行窗口中,输入
  arp –a
来看一下效果,类似于这样的条目
210.118.45.100   00-0b-5f-e6-c5-d7   dynamic
就是我们电脑里存储的关于IP地址与MAC地址的对应关系,dynamic表示是临时存储在ARP缓存中的条目,过一段时间就会超时被删除(xp/2003系统是2分钟)。

这样一来,比如我们的电脑要和一台机器比如210.118.45.1通信的时候,它会首先去检查arp缓存,查找是否有对应的arp条目,如果没有,它就会给这个以太网络发ARP请求包广播询问210.118.45.1的对应MAC地址,当然,网络中每台电脑都会收到这个请求包,但是它们发现210.118.45.1并非自己,就不会做出相应,而210.118.45.1就会给我们的电脑回复一个ARP应答包,告诉我们它的MAC地址是xx-xx-xx-xx-xx-xx,于是我们电脑的ARP缓存就会相应刷新,多了这么一条:
210.118.45.1   xx-xx-xx-xx-xx-xx   dynamic

为什么要有这么一个ARP缓存呢,试想一下如果没有缓存,我们每发一个IP包都要发个广播查询地址,岂不是又浪费带宽又浪费资源?
  而且我们的网络设备是无法识别ARP包的真伪的,如果我们按照ARP的格式来发送数据包,只要信息有效计算机就会根据包中的内容做相应的反应

三.ARP攻击的原理
在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

每台安装有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后的一些现象:
1:能PING通网内其它客户机,但PING不通路由,上不了网(连接到INTERNET)。
2:能PING通网内其它客户机,同样PING不通路由,但能上网(能连接到INTERNET)。
3:当中毒的机器向网关路由发出请求时,网关路由的ARP缓存还未到刷新时间,网关路由内的ARP缓存表中保存的是客户机还未中毒前的MAC地址。而这个MAC地址,与客户机当前请求的MAC(被病毒修改过)不一致,客户机的连接请求被网关拒绝。即发生与网关断流。
4:当中毒的源头机器向局域网发出假MAC广播时,网关路由也接收到了此消息,并将这些假MAC地址与其IP相对应,并建立新的ARP缓存。导致客户机与服务器断开连接。

四.ARP解决思路
1、不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。

2、设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。
在网关路由上对客户机使用静态MAC绑定。ROUTE OS软路由的用户可以参照相关教程,或是在IP--->ARP列表中一一选中对应项目单击右键选择“MAKE STATIC”命令,创建静态对应项。
用防火墙封堵常见病毒端口:134-139,445,500,6677,5800,5900,593,1025,1026,2745,3127,6129 以及P2P下载

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

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

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

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

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

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

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


10:在客户机上进行网关IP及其MAC静态绑定,并修改导入如下注册表:
    (A)禁止ICMP重定向报文
    ICMP的重定向报文控制着Windows是否会改变路由表从而响应网络设备发送给它的ICMP重定向消息,这样虽然方便了用户,但是有时也会被他人利用来进行网络攻击,这对于一个计算机网络管理员来说是一件非常麻烦的事情。通过修改注册表可禁止响应ICMP的重定向报文,从而使网络更为安全。
    修改的方法是:打开注册表编辑器,找到或新建“HKEY_LOCAL_Machine/System/CurrentControlSet/Services/TCPIP/Paramters”分支,在右侧窗口中将子键“EnableICMPRedirects”(REG_DWORD型)的值修改为0(0为禁止ICMP的重定向报文)即可。

    (B)禁止响应ICMP路由通告报文
    “ICMP路由公告”功能可以使他人的计算机的网络连接异常、数据被窃听、计算机被用于流量攻击等,因此建议关闭响应ICMP路由通告报文。
    修改的方法是:打开注册表编辑器,找到或新建“HKEY_LOCAL_Machine/System/CurrentControlSet/Services/TCPIP/Paramters/Interfaces”分支,在右侧窗口中将子键“PerformRouterDiscovery”
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值