作者:众成 文章来源:运维部 点击数: 更新时间:2018-06-29 15:53:12
ARP ,即地址解析协议,实现通过IP 地址得知其物理地址。在网络环境下,每个主机都分配了一个32位的IP 地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP 地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP 地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP 地址转换为相应物理地址,这组协议就是ARP 协议。地址解析协议 Address Resolution Protocol 基本功能。
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC 地址。而在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP 地址或端口。这就导致在以太网中使用IP 协议时,数据链路层的以太网协议接到上层IP 协议提供的数据中,只包含目的主机的IP 地址。于是需要一种方法,根据目的主机的IP 地址,获得其MAC 地址。这就是ARP 协议要做的事情。所谓地址解析(address resolution )就是主机在发送帧前将目标IP 地址转换成目标MAC 地址的过程。
另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC 地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP 协议获得的将不是目的主机的真实MAC 地址,而是一台可以通往局域网外的路由器的某个端口的MAC 地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP 代理(ARP Proxy)还有种情况封装下一跳的MAC。ARP在每台安装有TCP/IP协议的电脑里都有一个ARP 缓存表,表里的IP 地址与MAC 地址是一一对应的。
ARP 工作原理:
以主机A (192.168.1.5)向主机B (192.168.1.1)发送数据为例。当发送数据时,主机A 会在自己的ARP 缓存表中寻找是否有目标IP 地址。如果找到了,也就知道了目标MAC 地址,直接把目标MAC 地址写入帧里面发送就可以了;如果在ARP 缓存表中没有找到目标IP 地址,主机A 就会在网络上发送一个广播,A 主机MAC 地址是―主机A 的MAC 地址,这表示向同一网段内的所有主机发出这样的询问:―我是192.168.1.5,我的硬件地址是" 主机A 的MAC 地址". 请问IP 地址为192.168.1.1的MAC 地址是什么?网络上其他主机并不响应ARP 询问,只有主机B 接收到这个帧时,才向主机A 做出这样的回应:192.168.1.1的MAC 地址是00-aa-00-62-c6-09。这样,主机A 就知道了主机B 的MAC 地址,它就可以向主机B 发送信息了。同时A 和B 还同时都更新了自己的ARP 缓存表(因为A 在询问的时候把自己的IP 和MAC 地址一起告诉了B ),下次A 再向主机B 或者B 向A 发送信息时,直接从各自的ARP 缓存表里查找就可以了。ARP 缓存表采用了老化机制(即设置了生存时间TTL ),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP 缓存表的长度,加快查询速度。 ARP 攻击就是通过伪造IP 地址和MAC 地址实现ARP 欺骗,能够在网络中产生大量的ARP 通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP 响应包就能更改目标主机ARP 缓存中的IP-MAC 条目,造成网络中断或中间人攻击。
ARP 攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP 木马,则感染该ARP 木马的系统将会试图通过―ARP欺骗手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
RARP 的工作原理:
1. 发送主机发送一个本地的RARP 广播,在此广播包中,声明自己的MAC 地址并且请求任何收到此请求的RARP 服务器分配一个IP 地址;
2. 本地网段上的RARP 服务器收到此请求后,检查其RARP 列表,查找该MAC 地址对应的IP 地址;
3. 如果存在,RARP 服务器就给源主机发送一个响应数据包并将此IP 地址提供给对方主机使用;
4. 如果不存在,RARP 服务器对此不做任何的响应;
5. 源主机收到从RARP 服务器的响应信息,就利用得到的IP 地址进行通讯;如果一直没有收到RARP 服务器的响应信息,表示初始化失败。
6.如果在第1-3中被ARP 病毒攻击,则服务器做出的反映就会被占用,源主机同样得不到RARP 服务器的响应信息,此时并不是服务器没有响应而是服务器返回的源主机的IP 被占用。
RARP 反向地址解析协议:
反向地址解析协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP 地址,则它可以通过RARP 协议,并发出广播请求,征求自己的IP 地址,而RARP 服务器则负责回答。这样无IP 的站点可以通过RARP 协议取得自己的IP 地址,这个地址在下一次系统重新开始以前都有效,不用连续广请求。广泛用于获取无盘工作站的IP 地址。
ARP 缓存表查看方法:
ARP 缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入―arp -a就可以查看ARP 缓存表中的内容了,如下:
arp -a
用―arp -d‖命令可以删除ARP 表中所有的内容;
用―arp -d 空格 ‖ 可以删除指定ip 所在行的内容
用―arp -s‖可以手动在ARP 表中指定IP 地址与MAC 地址的对应,类型为static(静态) ,静态ARP 缓存除非手动清除,否则不会丢失。无论是静态还是动态ARP 缓存,重启启动计算机后都会丢失。
ARP 欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE 浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping 通网关),重启机器或在MS-DOS 窗口下运行命令arp -d后,又可恢复上网。
ARP 欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ 密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。
常用的维护方法 :
搜索网上,目前对于ARP 攻击防护问题出现最多是绑定IP 和MAC 和使用ARP 防护软件,也出现了具有ARP 防护功能的路由器。下面来了解以下三种方法:静态绑定、Antiarp 和具有ARP 防护功能的路由器。
静态绑定:
最常用的方法就是做IP 和MAC 静态绑定,在网内把主机和网关都做IP 和MAC 绑定。
欺骗是通过ARP 的动态实时的规则欺骗内网机器,所以我们把ARP 全部设置为静态可以解决对内网PC 的欺骗,同时在网关也要进行IP 和MAC 的静态绑定,这样双向绑定才比较保险。
方法:
对每台主机进行IP 和MAC 地址静态绑定。
通过命令,arp -s可以实现 ―arp –s IP MAC地址 。
例如:―arp –s 192.168.10.1 AA-AA-AA-AA-AA-AA。
如果设置成功会在PC 上面通过执行 arp -a 可以看到相关的提示:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA static(静态)
说明:对于网络中有很多主机,500台,1000台... ,如果我们这样每一台都去做静态绑定,工作量是非常大的。,这种静态绑定,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件,但是还是比较麻烦的!
使用ARP 防护软件:
目前关于ARP 类的防护软件出的比较多了,大家使用比较常用的ARP 工具主要是欣向ARP 工具,Antiarp 等。它们除了本身来检测出ARP 攻击外,防护的工作原理是一定频率向网络广播正确的ARP 信息。我们还是来简单说下这两个小工具。
欣向ARP 工具:
使用了该工具,它有5个功能:
A. IP/MAC清单
选择网卡。如果是单网卡不需要设置。如果是多网卡需要设置连接内网的那块网卡。 IP/MAC扫描。这里会扫描目前网络中所有的机器的IP 与MAC 地址。请在内网运行正常时扫描,因为这个表格将作为对之后ARP 的参照。
之后的功能都需要这个表格的支持,如果出现提示无法获取IP 或MAC 时,就说明这里的表格里面没有相应的数据。
B. ARP欺骗检测
这个功能会一直检测内网是否有PC 冒充表格内的IP 。你可以把主要的IP 设到检测表格里面,例如,路由器,电影服务器,等需要内网机器访问的机器IP 。
C. 主动维护
这个功能可以直接解决ARP 欺骗的掉线问题,但是并不是理想方法。他的原理就在网络内不停的广播制定的IP 的正确的MAC 地址。
制定维护对象的表格里面就是设置需要保护的IP 。发包频率就是每秒发送多少个正确的包给网络内所有机器。强烈建议尽量少的广播IP ,尽量少的广播频率。一般设置1次就可以,如果没有绑定IP 的情况下,出现ARP 欺骗,可以设置到50-100次,如果还有掉线可以设置更高,即可以实现快速解决ARP 欺骗的问题。
D. 欣向路由器日志
收集欣向路由器的系统日志,等功能。
E. 抓包
类似于网络分析软件的抓包,保存格式是.cap 。
使用Antiarp:
这个软件界面比较简单,以下为我收集该软件的使用方法。
A. 填入网关IP 地址,点击[获取网关地址]将会显示出网关的MAC 地址。点击[自动防护]即可保护当前网卡与该网关的通信不会被第三方监听。注意:如出现ARP 欺骗提示,这说明攻击者发送了ARP 欺骗数据包来获取网卡的数据包,如果您想追踪攻击来源请记住攻击者的MAC 地址,利用MAC 地址扫描器可以找出IP 对应的MAC 地址。
B. IP地址冲突
如频繁的出现IP 地址冲突,这说明攻击者频繁发送ARP 欺骗数据包,才会出现IP 冲突的警告,利用Anti ARP Sniffer可以防止此类攻击。
C. 您需要知道冲突的MAC 地址,Windows 会记录这些错误。查看具体方法如下: 右击[我的电脑]--[管理]--点击[事件查看器]--点击[系统]--查看来源为[TcpIP]---双击事件可以看到显示地址发生冲突,并记录了该MAC 地址,请复制该MAC 地址并填入Anti ARP Sniffer的本地MAC 地址输入框中(请注意将:转换为-) ,输入完成之后点击[防护地址冲突],为了使MAC 地址生效请禁用本地网卡然后再启用网卡,在CMD 命令行中输入Ipconfig /all,查看当前MAC 地址是否与本地MAC 地址输入框中的MAC 地址相符,如果更改失败请与我联系。如果成功将不再会显示地址冲突。
注意:如果您想恢复默认MAC 地址,请点击[恢复默认],为了使MAC 地址生效请禁用本地网卡然后再启用网卡。