一、ARP概念 
咱们谈ARP之前,还是先要知道ARP的概念和工作原理,理解了原理知识,才能更好去面对和分析处理问题。 
1.1ARP概念知识 
ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。 
IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。 
1.2ARP工作原理 
首先,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有﹐就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。 
例如: 
A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA 
B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB 
根据上面的所讲的原理,我们简单说明这个过程:A要和B通讯,A就需要知道B的以太网地址,于是A发送一个ARP请求广播(谁是192.168.10.2 ,请告诉192.168.10.1),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A发送一个ARP单播应答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。 
1.3ARP通讯模式 
通讯模式(Pattern Analysis):在网络分析中,通讯模式的分析是很重要的,不同的协议和不同的应用都会有不同的通讯模式。更有些时候,相同的协议在不同的企业应用中也会出现不同的通讯模式。ARP在正常情况下的通讯模式应该是:请求 -> 应答 -> 请求 -> 应答,也就是应该一问一答。  
二、常见ARP***类型 
个人认为常见的ARP***为两种类型:ARP扫描和ARP欺骗。 
2.1ARP扫描(ARP请求风暴) 
通讯模式(可能): 
请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 应答 -> 请求 -> 请求 -> 请求... 
描述: 
网络中出现大量ARP请求广播包,几乎都是对网段内的所有主机进行扫描。大量的ARP请求广播可能会占用网络带宽资源;ARP扫描一般为ARP***的前奏。 
出现原因(可能): 
病毒程序,侦听程序,扫描程序。 
如果网络分析软件部署正确,可能是我们只镜像了交换机上的部分端口,所以大量ARP请求是来自与非镜像口连接的其它主机发出的。 
如果部署不正确,这些ARP请求广播包是来自和交换机相连的其它主机。 
2.2ARP欺骗 
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。所以在网络中,有人发送一个自己伪造的ARP应答,网络可能就会出现问题。这可能就是协议设计者当初没考虑到的! 
2.2.1欺骗原理 
假设一个网络环境中,网内有三台主机,分别为主机A、B、C。主机详细信息如下描述: 
A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA 
B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB 
C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC 
正常情况下A和C之间进行通讯,但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么:)。这就是典型的ARP欺骗过程。 
注意:一般情况下,ARP欺骗的某一方应该是网关。 
2.2.2两种情况 
ARP欺骗存在两种情况:一种是欺骗主机作为“中间人”,被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通讯数据;另一种让被欺骗主机直接断网。 
◆第一种:窃取数据(嗅探) 
通讯模式: 
应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求 -> 应答 -> 应答 ->请求->应答... 
描述: 
这种情况就属于我们上面所说的典型的ARP欺骗,欺骗主机向被欺骗主机发送大量伪造的ARP应答包进行欺骗,当通讯双方被欺骗成功后,自己作为了一个“中间人“的身份。此时被欺骗的主机双方还能正常通讯,只不过在通讯过程中被欺骗者“窃听”了。 
出现原因(可能): 
***病毒 
嗅探 
人为欺骗 
◆第二种:导致断网 
通讯模式: 
应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求… 
描述: 
这类情况就是在ARP欺骗过程中,欺骗者只欺骗了其中一方,如B欺骗了A,但是同时B没有对C进行欺骗,这样A实质上是在和B通讯,所以A就不能和C通讯了,另外一种情况还可能就是欺骗者伪造一个不存在地址进行欺骗。 
对于伪造地址进行的欺骗,在排查上比较有难度,这里最好是借用TAP设备(呵呵,这个东东好像有点贵勒),分别捕获单向数据流进行分析! 
出现原因(可能): 
***病毒 
人为破坏 
一些网管软件的控制功能 
三、常用的防护方法 
搜索网上,目前对于ARP***防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。呵呵,我们来了解下这三种方法。 
3.1静态绑定  
最常用的方法就是做IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。  
欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。 
方法: 
对每台主机进行IP和MAC地址静态绑定。 
通过命令,arp -s可以实现 “arp –s IP MAC地址 ”。 
例如:“arp –s192.168.10.1 AA-AA-AA-AA-AA-AA”。 
如果设置成功会在PC上面通过执行arp -a 可以看到相关的提示: Internet Address Physical Address Type  
192.168.10.1AA-AA-AA-AA-AA-AA static(静态)  
一般不绑定,在动态的情况下:  
Internet AddressPhysical AddressType  
192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(动态) 
说明:对于网络中有很多主机,500台,1000台...,如果我们这样每一台都去做静态绑定,工作量是非常大的。。。。,这种静态绑定,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件,但是还是比较麻烦的!
3.2使用ARP防护软件 
目前关于ARP类的防护软件出的比较多了,大家使用比较常用的ARP工具主要是欣向ARP工具,Antiarp等。它们除了本身来检测出ARP***外,防护的工作原理是一定频率向网络广播正确的ARP信息。我们还是来简单说下这两个小工具。 
3.2.1欣向ARP工具 
俺使用了该工具,它有5个功能: 
A. IP/MAC清单  
选择网卡。如果是单网卡不需要设置。如果是多网卡需要设置连接内网的那块网卡。 
IP/MAC扫描。这里会扫描目前网络中所有的机器的IP与MAC地址。请在内网运行正常时扫描,因为这个表格将作为对之后ARP的参照。 
之后的功能都需要这个表格的支持,如果出现提示无法获取IP或MAC时,就说明这里的表格里面没有相应的数据。 
B.ARP欺骗检测  
这个功能会一直检测内网是否有PC冒充表格内的IP。你可以把主要的IP设到检测表格里面,例如,路由器,电影服务器,等需要内网机器访问的机器IP。 
(补充)“ARP欺骗记录”表如何理解: 
“Time”:发现问题时的时间; 
“sender”:发送欺骗信息的IP或MAC; 
“Repeat”:欺诈信息发送的次数; 
“ARP info”:是指发送欺骗信息的具体内容.如下面例子: 
timesenderRepeatARP info 22:22:22192.168.1.22 1433192.168.1.1 is at 00:0e:03:22:02:e8  
这条信息的意思是:在22:22:22的时间,检测到由192.168.1.22发出的欺骗信息,已经发送了1433次,他发送的欺骗信息的内容是:192.168.1.1的MAC地址是00:0e:03:22:02:e8。 
打开检测功能,如果出现针对表内IP的欺骗,会出现提示。可以按照提示查到内网的ARP欺骗的根源。提示一句,任何机器都可以冒充其他机器发送IP与MAC,所以即使提示出某个IP或MAC在发送欺骗信息,也未必是100%的准确。所有请不要以暴力解决某些问题。  
C.主动维护 
这个功能可以直接解决ARP欺骗的掉线问题,但是并不是理想方法。他的原理就在网络内不停的广播制定的IP的正确的MAC地址。 
“制定维护对象”的表格里面就是设置需要保护的IP。发包频率就是每秒发送多少个正确的包给网络内所有机器。强烈建议尽量少的广播IP,尽量少的广播频率。一般设置1次就可以,如果没有绑定IP的情况下,出现ARP欺骗,可以设置到50-100次,如果还有掉线可以设置更高,即可以实现快速解决ARP欺骗的问题。但是想真正解决ARP问题,还是请参照上面绑定方法。 
D. 欣向路由器日志 
收集欣向路由器的系统日志,等功能。 
E.抓包 
类似于网络分析软件的抓包,保存格式是.cap。 
3.2.1Antiarp 
这个软件界面比较简单,以下为我收集该软件的使用方法。 
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地址生效请禁用本地网卡然后再启用网卡。 
3.3具有ARP防护功能的路由器 
这类路由器以前听说的很少,对于这类路由器中提到的ARP防护功能,其实它的原理就是定期的发送自己正确的ARP信息。但是路由器的这种功能对于真正意义上的***,是不能解决的。 
ARP的最常见的特征就是掉线,一般情况下不需要处理一定时间内可以回复正常上网,因为ARP欺骗是有老化时间的,过了老化时间就会自动的回复正常。现在大多数路由器都会在很短时间内不停广播自己的正确ARP信息,使受骗的主机回复正常。但是如果出现***性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),它是不断的发起ARP欺骗包来阻止内网机器上网,即使路由器不断广播正确的包也会被他大量的错误信息给淹没。 
可能你会有疑问:我们也可以发送比欺骗者更多更快正确的ARP信息啊?如果***者每秒发送1000个ARP欺骗包,那我们就每秒发送1500个正确的ARP信息! 
面对上面的疑问,我们仔细想想,如果网络拓扑很大,网络中接了很多网络设备和主机,大量的设备都去处理这些广播信息,那网络使用起来好不爽,再说了会影响到我们工作和学习。ARP广播会造成网络资源的浪费和占用。如果该网络出了问题,我们抓包分析,数据包中也会出现很多这类ARP广播包,对分析也会造成一定的影响。

转载于:https://blog.51cto.com/balance/313361

ARP的***与防护相关推荐

  1. tell网关arp包正常吗_网工知识角|如何理解ARP协议?防护有诀窍,网络工程师必读...

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内高端网络工程师培养基地 今天我们来学习ARP攻击基本防护. 为了避免上述ARP攻击行为造成的各种危害, ARP安全特性针对不同的攻 ...

  2. 局域网ARP攻击和防护

    1       ARP攻击原理介绍 1)         ARP协议的缺陷 ARP协议是建立在信任局域网内所有节点的基础上的,他的效率很高.但是不安全.它是无状态的协议.他不会检查自己是否发过请求包, ...

  3. ARP攻击与防护--小试牛刀

    大家好,作为网络人我们都知道ARP协议是存在BUG的,下面我们来模拟实验攻击一番. 我们提前装备好2台虚拟机,一台win7 , IP配192.168.10.10 ,win7上运行长角牛软件,一台win ...

  4. ARP攻击的发现、攻击原理、攻击方式、防护

    ARP协议概述 ARP协议(address resolution protocol)地址解析协议. 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址, ...

  5. ARP攻击的发现,攻击原理,攻击方式,防护

    目录 ARP协议概述 APR攻击发现 ARP攻击过程 攻击方式: arp攻击的防护 ARP协议概述 ARP协议(address resolution protocol)地址解析协议 一台主机和另一台主 ...

  6. ARP概念及攻击与防护的原理(来自中国协议分析网)

    1. ARP概念 咱们谈ARP之前,还是先要知道ARP的概念和工作原理,理解了原理知识,才能更好去面对和分析处理问题. 1.1 ARP概念知识 ARP,全称Address Resolution Pro ...

  7. 网络安全之 ARP 欺骗防护

    ARP 协议 什么是 MAC 地址 MAC 地址是固化在网卡上的网络标识,由 Ieee802 标准规定. 什么是广播 向同一个网段内的设备,发送数据包,广播 IP 地址是同网段最后一个 IP 地址. ...

  8. 内网计算机病毒如何查杀,如何追踪并查杀局域网ARP病毒 局域网如何查杀ARP病毒...

    今天给大家带来如何追踪并查杀局域网ARP病毒,局域网如何查杀ARP病毒,让您轻松解决问题. 怎样追踪并查杀局域网ARP病毒 局域网怎样查杀ARP病毒 目前防护局域网中ARP木马病毒最有效的方法是通过网 ...

  9. 网络安全—arp欺骗原理数据包分析

    网络安全-arp欺骗原理&数据包分析 提要:arp欺骗虽然比较简单,但是在日常面试中也是会被经常问到的问题,本文将通过kali中的arpspoof工具进行arp攻击,同时使用wireshark ...

最新文章

  1. next_permutation函数
  2. BootStrap网格布局
  3. python自动化部署程序,聊聊Python自动化脚本部署服务器全流程(详细)
  4. 再推荐一个安全的好软件
  5. POJ2828 Buy Ticket
  6. 关于c语言编写 单项链表 的创建、插入、修改、删除、显示、退出 的程序案例
  7. CentOS升级Python到2.7版本
  8. java把abcedf字符串进行排序_字符串合并处理 - 一贱书生的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. Gemini 2 for Mac(重复文件查找清理工具)
  10. atitit 信息存储理论专题 目录 1.1. ACID 1 1.2. 一致性相关的理论 CAP(CA、CP、AP 的相关算法) 1 1.3. BASE 理论。 1 1.4. FLP不可能原理 1
  11. 市场分析-全球与中国OLED用氧化氘市场现状及未来发展趋势
  12. 灵动微电子MM32L0系列芯片做呼吸灯功能
  13. Ae 脚本:TypeMonkey 动态文本动画
  14. 线性代数 --- 线性相关与线性无关(个人学习笔记)
  15. 关机状态下启动微型计算机叫做,湖南省计算机等级考试题库
  16. GraphPad Prism 8 可做哪些图?GraphPad Prism快速入门
  17. Arduino从零开始(1)——按钮控制LED
  18. java p12 ssl_OpenSSL 1.0.0生成p12、jks、crt等格式SSL数字证书的全过程合集
  19. RK3368 8.1 HDMI声音调节只有最大和最小两个等级
  20. stata 模型设定专题【计量经济系列(六)】(遗漏变量、无关变量、多重共线性、leverage、虚拟变量、线性插值......)

热门文章

  1. 《Photoshop修饰与合成专业技法》—第1章快速选择工具和调整边缘
  2. 所有权链(Ownership Chain)
  3. ICommand接口
  4. Linux访问windows共享文件夹
  5. 【DP】LeetCode 85. Maximal Rectangle
  6. Flask程序的基本结构
  7. 透视形变及其校准的方法
  8. ValueError: could not broadcast input array from shape (*,*) into shape (*)
  9. 如何设置 Web 服务器的权限之iis
  10. php7.0-fpm.sock