由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!这就是一个简单的ARP欺骗。

ARP解释

ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。

从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。

ARP具体说来就是将网络层(也就是相当于OSI的第三层)地址解析为数据链路层也就是相当于OSI的第二层)的物理地址(注:此处物理地址并不一定指MAC地址)。

ARP原理

某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输

如果未找到,则A广播一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。

网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

ARP协议

ARP协议并不只在发送了ARP请求才接收ARP应答。

当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。

因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。

含义


1) 什么是ARP欺骗?在局域网中,黑客经过收到ARP Request广播包,能够偷听到其它节点的 (IP, MAC) 地址, 黑客就伪装为A,告诉B (受害者) 一个假地址,使得B在发送给A 的数据包都被黑客截取,而B 浑然不知。

2) 为什么黑客能够进行ARP欺骗? ARP 是个早期的网络协议,RFC826在 1980就出版了。早期的互联网采取的是信任模式,在科研、大学内部使用,追求功能、速度,没考虑网络安全。尤其以太网洪泛特点,能够很方便的用来查询。但这也为日后的黑客开了方便之门。黑客只要在局域网内阅读送上门来的ARP Request就能偷听到网内所有的 (IP, MAC)地址。而节点收到ARP Reply时,也不会质疑。黑客很容易冒充他人

3) 能够防止欺骗吗?不能。但这种伤害的伤害已经很小。因为局域网的工作环境有了改变, 服务器通常不会和终端主机在同一个局域网。但如果黑客对主机发送ARP欺骗分组,向它伪造了网关的地址,或对网关发送ARP欺骗分组,向网关伪造了主机的mac地址,则主机也无法正常和因特网上服务器交流。

应对

故障分析

情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者不能正常上网。情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。

故障诊断

如果用户发现以上疑似情况,可以通过如下操作进行诊断:

点击“开始”按钮->选择“运行”->输入“arp –d”->点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。

注:arp -d命令用于清除并重建本机arp表。arp –d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击

故障处理

1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。

2、被害者:(1)绑定网关mac地址。具体方法如下:

1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下:

@echooff

arp -d -s 10.10.75.254 00-22-aa-00-22-aa

pause

将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可,计算机重新启动后需要重新进行绑定,因此我们可以将该批处理文件AntiArp.bat文件拖到“windows--开始--程序--启动”中。这样开机时这个批处理就被执行了。

(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。AntiArp软件会在提示框内出现病毒主机的MAC地址

找出病毒源

第一招:使用Sniffer抓包在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送ARP Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。


第二招:使用arp -a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp -a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机

和这台主机最后有过数据通信发生。如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。


第三招:使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert61.135.179.148。假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。


案列

MITM攻击实例:
  1. 网络拓扑: 



  1. 网络环境:
  • 无线路由器一台型号:Fast FW300R
  • IP:192.168.1.1
  • MAC地址:00:5A:39:1A:BB:BE


  • 被攻击主机PC 1系统版本:Windows 10 Enterprise
  • IP:192.168.1.106
  • MAC地址:00:5A:39:1A:BB:BE


  • 中间人(攻击者)主机PC 0
  • 系统版本:Kali Linux 2.0

      IP:192.168.1.113

    MAC地址:00:0C:29:03:85:DC


由于实验条件有限,故中间人主机PC 0在虚拟机内运行。但实际效果与真实测试相同。

 

攻击测试:

使用Kali Linux中的嗅探工具ettercap-NG对目标主机进行ARP欺骗,并截获明文密码。

首先打开终端,输入ettercap -G 启动ettercap (ettercap要求使用root权限,使用sudo或者切换到root用户运行)的图形界面模式,如图:

 


打开ettercap-NG 的图形界面之后点击"sniff",选择"unified sniffing"然后根据自己的要求选择要抓包的网卡。


使用NMAP工具查看局域网内所有主机:


 

根据返回数据可知,我的网关无线路由器的IP地址为192.168.1.1,MAC地址为:00:5A:39:1A:BB:BE,根据MAC地址,分析出 深圳Fast科技公司出产。

此外有几台苹果的设备,是室友的几部苹果手机,此外还有一部Vivo手机,BBK步步高电子产品出产,还有一台小米科技出产的小米手机。此外,还有一台名为 Hon Hai Precision 的设备,经查原来其名为鸿海精密集团,富士康是旗下的公司,应该就是我的网卡生产商了。 还有一个提示信息为"Host is up"的主机即为本次测试的中间人(攻击者)的主机。

筛选后,得到信息如下:

主机名

IP地址

MAC地址

Fast路由器(网关)

192.168.1.1 

00:5A:39:1A:BB:BE 

被攻击主机PC 1

192.168.1.106 

C0:CB:38:6C:5A:B3

中间人(黑客)主机PC 2

192.168.1.113

00:0C:29:03:85:DC

 

返回ettercap,然后单击Hosts选项,选择Scan for host,待扫描完成之后再选择Scan for host,然后选择Host list,此时可以看到ettercap-NG已经扫描的主机列表,如图所示:


 

然后就可以选择要攻击的目标了, 选择192.168.1.106的IP地址,点击Add to Target 1(添加到目标1),然后选择网关的IP地址192.168.1.1,点击Add to Target 2(添加到目标2),可以看到ettercap提示成功加入目标,如图所示:

 


然后明确攻击方式,这里采用ARP欺骗的方式,告诉主机192.168.1.106我(192.168.1.113)才是网关(192.168.1.1),使得 192.168.1.106的主机把所有数据流量全部发给我,然后抓包截获密码。

明确攻击方式之后,我们选择"mitm"—"arp poisoning"— "Sniff remote connections" — "确定"


这时可以看看目标主机的arp地址表,如图所示,ARP缓存毒化成功。

攻击之前:


 

 

点击确定攻击之后:

 

 

此时发现ARP缓存表已经毒化成功!

然后在攻击主机中选择"Start" —  "Start sniffing" 开始监听。

此时使用Wireshark抓包工具可以发现,被攻击主机的所有流量都是通过攻击者的主机发送出去的,即被攻击主机误认为192.168.1.113是它的网关。


此时便可以实现很多功能。例如抓包获取密码,Cookies欺骗,DNS欺骗,恶意程序替换等等,如通过driftnet过滤嗅探图片:




 怎样防范ARP欺骗

  1.在主机绑定网关MAC与IP地址为静态(默认为动态),命令:arp -s 网关IP 网关MAC

  2.在网关绑定主机MAC与IP地址

  3.使用ARP防火墙

more.....................

部分内容收集自网络。


最后修改:2018 年 05月 05日 17:29:12

文章声明:非特殊说明,本文版权归 浅唱春天博客 所有,转载请注明出处
本文标题:ARP欺骗攻击
本文标签:ARP,攻击
如果觉得本篇文章对你有用,请随意赞赏;赞赏将用于服务器、域名开支