ARP欺骗原理,千万不要随意连接免费的WIFI!!

网络 通信技术
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。

一、ARP攻击原理分析

1、什么是ARP协议?

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

此处涉及到OSI七层模型,ARP协议就是工作在OSI七层模型中的第二层数据链路层,它在这一层不是采用IP来通信的,而是采用MAC地址来通信的,是以 帧 来传输的,

OSI七层模型:

  1. 物理层
  2. 数据链路层(ARP协议)
  3. 网络层(网络层才是使用IP地址来通信的)
  4. 传输层
  5. 会话层
  6. 表示层
  7. 应用层

2、ARP欺骗的危害

ARP欺骗可以造成内部网络的混乱,让某些被欺骗的计算机无法正常访问内外网,让网关无法和客户端正常通信,也可以截取全网络数据包等。实际上他的危害还不仅仅如此,一般来说IP地址的冲突我们可以通过多种方法和手段来避免,而ARP协议工作在更低层,隐蔽性更高,很难发现。系统并不会判断ARP缓存的正确与否,无法像IP地址冲突那样给出提示。

像网络执法官、聚生网管等软件可以控制整个内网的流量,可以限制网速、带宽等,它们都是利用ARP欺骗的方式来进行操作的。做的好的ARP欺骗工具发送数据包是比较稳定的,去窃取你的账户密码等敏感信息时都很难被发现。

上述ARP欺骗是常见的ARP欺骗,常见危害,还有其他危害,

例如:通过ARP在整个内网挂马插入恶意代码,在内网主机访问web站点的时候针对这些Internet站点全部挂马;或者是针对无线网进行钓鱼,很多人在火车站、飞机场等公共地方使用免费WiFi,当去连接这些WIFI打开钓鱼的web站点的时候就会下载木马到手机中窃取个人信息、刷广告链接等。像以前有很便宜的路由器,使用之后经常跳出广告,这些都是利用ARP欺骗来操作的。

3、ARP欺骗的原理

ARP欺骗的原理就是:把自己的MAC地址伪造成网关的地址来欺骗其它的主机。

图片图片

实施中间人攻击时,攻击者常考虑的方式是ARP欺骗或DNS欺骗等。下面以常见ARP欺骗为例来介绍一下ARP欺骗原理。

一般情况下,ARP欺骗并不是使网络无法正常通信,而是通过冒充网关或其他主机使得到达网关或主机的数据流通过攻击主机进行转发。通过转发流量可以对流量进行控制和查看,从而控制流量或得到机密信息。ARP欺骗主机的流程如下图所示:

图片图片

如上图所示,当主机A和主机B之间通信时,如果主机A在自己的ARP缓存表中没有找到主机B的MAC地址时(如果找到是不会广播的),主机A将会向整个局域网中所有计算机发送ARP广播,广播后整个局域网中的(即在同一个交换机下面的)计算机都收到了该广播数据包。这时候,主机C响应主机A,欺骗说我就是主机B,我的MAC地址是XX-XX-XX-XX-XX-XX,主机A收到地址后就会重新更新自己的缓冲表。当主机A再次与主机B通信时,该数据将被转发到攻击主机(主机C)上,则该数据流会经过主机C转发到主机B。

当然,在上述过程中,在最后主机C也可能不转发数据给主机B,那么这种情况就属于ARP欺骗中的单向ARP欺骗。单向ARP欺骗一般是不会影响到主机B的,但是双向的ARP欺骗是会影响到主机B的。

ARP欺骗此处在老师的讲解中分为三种:

1)单向ARP欺骗(我的理解是单向ARP欺骗不转发流量给原有的目标主机)

2)双向ARP欺骗(我的理解是双向ARP欺骗会转发流量给原有的目标主机)

3)单向ARP欺骗和双向ARP欺骗中也是分两种:欺骗网关 和 欺骗主机

什么是双向ARP欺骗?

答:接着以上述示例为例,如果A要跟B正常通讯,C向A说我是才B。C向B说我才是A,那么这样的情况下会把A跟B的ARP缓存表全部修改了。以后通讯过程就是 A把数据发送给C,C再发送给B,B把数据发送C,B再把数据给A。

什么是ARP欺骗网关?

答:上面讲解的都是单双向ARP欺骗主机,是欺骗内网主机自己的攻击机才是目标主机,而ARP欺骗网关是欺骗内网主机自己的攻击机才是网关。攻击者首先是通过一台内网主机发送广播包给当前交换机下的所有的内网主机和网关,告诉它们我是网关,此时,它们分别更新其ARP缓存表,会将攻击者的MAC地址当作网关,当内网的其他主机之间进行通信的时候就会先经过认为是网关的攻击者的主机,它们之间数据都被攻击主机截获。

实现ARP欺骗攻击的必备条件:

1)首先攻击者需要获取到一台内网主机。如果是通过外网主机发起ARP欺骗攻击是不行的,因为外网连接内网是通过网络层的IP来通信的,但是ARP工作在数据链路层。因此,攻击者需要获取到一台内网主机才能发起ARP欺骗攻击。

2)对方的内网没有采用ARP防护。目前,其实大部分企业都没有采用ARP防护。

ARP防护方法介绍:

方法1:在路由器和交换机上做配置,去将端口、IP地址、MAC地址、网关全部绑死,但是这种方法有一个缺点:如果公司很大,那么当有人的电脑的IP地址一变,就需要再去路由器和交换机上改这些配置,这样太麻烦,会累死人...因此,一般情况下都是针对几个服务器去绑定以下,个人服务器不会去绑定。

方法2:主机自身绑定自己的IP和MAC地址,再将网关的IP和MAC地址绑定好。但是这种方法对于不懂电脑的小白用户显得麻烦,他们不会去绑定的..且这种方法的缺点是会让电脑变成静态的IP地址,但是现在很多电脑都是DHCP自动获取IP的。

补充1:因为企业ARP防护比较困难,于是衍生出安全软件自身的ARP防火墙功能,但是默认情况下,像360安全卫士是不启用ARP防火墙的,需要手动开启。

补充2:使用命令 arp -a查看arp缓存表

二、ARP攻击防范

防范策略:

1、不要随意登录免费的WIFI,没人知道免费的WIFI是不是有恶意的攻击者在搞鬼;

2、使用ARP绑定,避免被ARP欺骗;

手工静态绑定IP和MAC地址的方法示例:编写一个批处理文件命名为xx.bat,将批处理文件放到“Windows→开始→程序→启动”中,当每次主机重启时都会执行该启动项,如果需要立即生效,请直接运行此文件或者是在命令行执行。批处理文件内容如下: 

解释:

①没绑定之前,ARP表是dynamic动态的,而绑定后就变成static静态了,使用arp -a查看

②ip与MAC地址根据具体情况修改,要先使用config查看。 

3、开启电脑管家或者360安全卫士的ARP防火墙或金山贝壳或彩影ARP防火墙;

4、使用https协议或者其他有保密协议的连接访问外网,避免被坑。      

企业解决ARP攻击方案参考文档:

1.https://wenku.baidu.com/view/89772efb7e192279168884868762caaedd33bade.html

解释:华为的解决方案就是买设备,添加认证服务器

2.https://wenku.baidu.com/view/55efed86f71fb7360b4c2e3f5727a5e9856a27cd.html

解释:

①神州数码的解决方案是在交换路由上划分WLAN来解决内网的ARP广播风暴的问题。划分WALN需要参照文档敲命令去交换机中执行,但是在企业里面这样做会把人累死,并且,可能还会出现别人需要换网卡、更改IP地址等各种情况,这种方法是不现实的!因此会选择采用DHCP Snooping和Bing Arp的方式去在内网存在DHCP服务器的情况下去结合交换机路由去实现自动化的动态绑定。

②普通的交换机是没用防止网段扫描这个功能的,但是企业的交换机是有的。

③注意:不同厂商的交换机路由设备中使用的命令可能是不一样的,但是方法是一样的,原理是一样的。

补充:

①很多人说ARP欺骗攻击就是中间人攻击,这种说法不完全正确,应该是中间人攻击涵盖了ARP攻击,因为像DNS欺骗、DHCP欺骗等等也属于中间人攻击。

②就算使用上述四条防范策略也是不能完全防范ARP欺骗的,只能说解决个人电脑60%的ARP攻击,目前能够彻底解决ARP欺骗的方法就是:在交换路由设备上划分WLAN(指局域网),在WLAN里面绑定网关,然后绑定主机的IP和MAC地址,从而隔离ARP广播。(不太容易实现,会累死管理人员)

③通过实验测试安全工具的防御效果证明:安全工具的ARP防火墙是不靠谱的,不能完全防御(当然也不是完全没用,是能够解决部分ARP攻击的,但是依然不靠谱...)

责任编辑:武晓燕 来源: 快乐程序猿
相关推荐

2012-12-13 10:34:35

ARP欺骗

2010-09-29 10:21:50

2013-09-17 09:08:07

ARP欺骗IP

2019-10-31 08:43:43

ICMPARP协议ARP欺骗

2015-06-09 14:36:34

WiFi安全

2013-03-21 18:54:23

2010-09-07 10:44:14

2010-07-06 16:22:01

2010-09-16 15:39:18

2013-04-01 10:12:39

2011-04-06 10:23:46

2009-07-15 20:44:17

2010-06-12 17:33:31

2010-09-26 09:49:35

2009-12-17 10:14:14

2009-01-11 10:30:00

2017-05-24 11:44:17

Linux命令

2012-03-14 14:25:57

2019-04-03 14:03:58

Linux命令运行

2010-06-21 17:51:53

Linux Arp命令
点赞
收藏

51CTO技术栈公众号