防止ARP攻击全攻略,黑客进阶

5月23日下午5:00左右,网络时断时续,网速极慢,经查为某部门拷贝文件时,将ARP病毒感染至一台PC,以致发生ARP欺骗攻击,5:30左右隔离后此PC,网络恢复正常。2006年7月20日,我校发生第一次ARP攻击,此后在住宅区也发生过。希望广大用户务必及时更新系统及升级杀毒软件,使用移动存储或传输数据时应查杀病毒。 5月28日下午4:40左右,因UPS电源故障,无法启动,致使所有设备停机,20分钟后,故障恢复。网络信息中心2007.5.29

      你的网络经常无故断线?是否经常出现IP冲突?是否受到P2P终结者或者网管专家的限速?其实,大家都知道是ARP在做鬼。

一、ARP攻击概述

黑客进阶: ARP攻击第二章

      最近,我也收到了ARP的侵扰,网络极不稳定,有的时候打开一个网页要等半天,QQ基本就登陆不上,尽管机器也装了杀毒软件,但是杀毒软件只能保证本机器没有病毒,不能够防止外来病毒的攻击,所以,必须使用防火墙。windows自带的防火墙,功能有限,我们最好使用一种专门ARP防火墙。

在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答、数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么,账号是否可以被窃取?有哪些常见的ARP渗透(攻击)工具可以用来练手?ARP扫描和攻击有什么区别,底层数据包特征是怎样的?

上一章节讲解了原理的攻击方式,要理解并运用到实际当中。

      也许有人使用常见的360ARP防火墙、金山ARP防火墙等,但是没什么效果,最多只是警告通知你有ARP攻击,根本没有起到防治的作用。

接下来,我们通过图解的方式来深入了解ARP攻击是如何实现的。

其实不一定是ARP攻击,很有可能是局域网内路由器桥接导致的。如果存在路由器桥接,且这些路由器均开启DHCP进行动态IP分配,客户端有从任一路由器获取IP的可能,会出现IP冲突但不会被检测到,所以无法上网,而且360也会提示ARP攻击。解决方法就是把除总路由外的路由器DHCP全关掉;或者总路由网关改特殊些,如192.168.250.1,然后静态IP上网。

      为了解决上网问题,我查阅了很多资料,也试过多种软件。最后总结出一些东东,希望对你有用。也希望有更好方法的朋友,能够无私提供。

二、ARP攻击原理

ARP请求是通过广播方式来实现的,那么,PC2返回ARP回应包,是否也需要通过广播来实现呢?答案是否定的。大部分网络协议在设计的时候,都需要保持极度克制,不需要的交互就砍掉,能合并的信息就合并,能不用广播就用单播,以此让带宽变得更多让网络变得更快。

      <1>采用彩影的ARP防火墙,效果比360、金山的要好很多,而且支持vista,免费使用。

但凡局域网存在ARP攻击,都说明网络存在"中间人",我们可以用下图来解释。

图片 1

      <2>IP- MAC双向绑定,在下面的资料中会有说明。

图片 2

请点击此处输入图片描述

  <3>使用反P2P终结者,但是好像没什么效果。

在这个局域网里面,PC1、PC2、PC3三台主机共同连接到交换机SW1上面,对应3个接口port1/2/3。假设PC3这台主机安装了ARP攻击软件或遭受ARP病毒,成为这个网络的攻击者(hacker),接下来,PC3是如何攻击的?先不急,先来回顾下PC1和PC2是如何通信的。

那么,ARP回应包是如何处理的?这里需要特别关注ARP请求包的内容,在上面的图解里面,ARP请求包的完整信息是:我的IP地址是IP1,MAC地址是MAC1,请问谁是PC2,你的IP2对应的MAC地址是多少?简单来说,ARP请求首先有"自我介绍",然后才是询问。这样的话,PC2在收到请求之后,就可以将PC1的IP和MAC映射信息存储在本地的【ARP缓存表】,既然知道PC1在哪里,就可以返回ARP单播回应包。

  <4>最笨的方法,修改自己的IP,效果明显,但不长久。

图片 3

一、ARP的攻击叙述

  <5>重启路由,但是很多人没这个权限。

①PC1需要跟PC2通信,通过ARP请求包询问PC2的MAC地址,由于采用广播形式,所以交换机将ARP请求包从接口P1广播到P2和PC3。(注:交换机收到广播/组播/未知帧都会其他接口泛洪

我记得在上一篇文章里给大家普及了关羽ARP协议的基本原理还包括ARP请求应答、数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么,账号是否可以被窃取?有哪些常见的ARP渗透(攻击)工具可以用来练手?ARP扫描和攻击有什么区别,底层数据包特征是怎样的?

 

②PC2根据询问信息,返回ARP单播回应包;此时PC3作为攻击者,没有返回ARP包,但是处于"监听"状态,为后续攻击做准备。

接下来,我们通过图解的方式来深入了解ARP攻击是如何实现的。

下面是我搜集的关于ARP的资料,你可以真正的了解ARP协议和ARP攻击的原理,只有真正的了解了这些,才能对其进行有效的防治。

③PC1和PC2根据ARP问答,将各自的ARP映射信息(IP-MAC)存储在本地ARP缓存表。

二、ARP的攻击原理

一、什么是ARP?

④交换机根据其学习机制,记录MAC地址对应的接口信息,存储在CAM缓存表(也称为MAC地址表)。交换机收到数据包时,会解封装数据包,根据目标MAC字段进行转发。

凡是局域网存在ARP攻击,都说明网络存在"中间人",我们可以用下图来解释。

我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,浏览器实际上查找的是IP地址而不是网址。那么IP地址是如何转换为第二层物理地址(即MAC地址)的呢?在局域网中,这是通过ARP协议来完成的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现 ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。所以网管们应深入理解ARP协议。

关于上面的图解,我们要记住这些关键知识(敲黑板!):

图片 4

二、ARP协议的工作原理

①主机通信需要查找ARP表,而交换机通信需要查找CAM表(路由器则查找Route表)。

网络中有攻击就有防御,每一本武功秘籍的现世,都预示着一场武林纷争,都引领着一场腥风血雨,每一把绝世好剑的铸成,都象征着一次血染长河,都伴随着众多英雄泣血。然而武侠的时代早已过去,黑客的时代正在到来。很幸运,你没有生在一个怀璧其罪的年代,相反,你处在一个充满机遇的时代,你处在一个提倡共享的大数据时代。学习黑客的第一本书《网络黑白》tb有卖。

在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。

注:ARP表:ip<->mac    CAM表:mac<->port  (Route表:route<->port)

本人跟局域网ARP攻击打交道的时间有2年之久,个人层面防止ARP攻击非大神级别只能做到这种程度。

主机                    IP地址                             MAC地址
A                     192.168.16.1                     aa-aa-aa-aa-aa-aa
B                     192.168.16.2                     bb-bb-bb-bb-bb-bb

②交换机基于源MAC地址学习,基于目的MAC地址转发。

然后,我提供一种方法扼杀ARP攻击的源头

C                     192.168.16.3                     cc-cc-cc-cc-cc-cc
D                     192.168.16.4                     dd-dd-dd-dd-dd-dd

③同一局域网内,攻击者可以根据主机的ARP广播请求监听其IP和MAC信息。

方法:联系网管人员,告知局域网内ARP攻击泛滥,让其在接入设备上开启ARP动态检测。

我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。

注:这里是"被动监听",跟后面要谈到的"主动扫描",原理上有区分,这里先埋个坑)

可能会碰到很无力的情况:1.网管不鸟你。2.你们的接入设备不可网管(就是不支持方法中的功能)。

当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标 IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A 就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问: “192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应: “192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

接下来是重点,我们来看看PC3(Hacker)是如何发起ARP攻击的=>

最后,如果碰到极端情况,只有自己动手了,装个金山贝壳ARP防火墙(不知道有没有以前好用,已经2年没用过了),或是自己手动绑定网关把。

三、如何查看ARP缓存表

图片 5

在这张图里面,Hacker(就是我...)接入了一个WiFi网络,这个10.1.20.0/24便是所在的网段。刚进来一个陌生网络,Hacker只知道自己的IP信息,例如IP地址是10.1.20.253,网关地址是10.1.20.254,而这个局域网的其他设备是什么?有多少台?地址分布是多少?Hacker都不知道,接下来怎么办呢?是不是要直接发动ARP攻击了?不用这么着急,咋们至少要先了解下这个网络,进行基本的扫描和踩点。这个时候通过ARP工具对这个WiFi网络进行扫描,具体的数据包截图如下:

ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了,如附图所示。

正常情况下,若收到的ARP请求不是给自己的,则直接丢弃;而这里PC3(Hacker)在监听之后,发起了ARP回应包:我就是PC2(IP2-MAC3)

图片 6

用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应。

从拓扑可以出现,PC3明明是IP3对应MAC3,很显然这就是一个ARP欺骗行为。于此同时,PC2正常的ARP回应包也交到了PC1手中,我们来看PC1接下来如何处理的:

上面的ARP扫描过程,大概的情况是这样的=>

四、ARP欺骗

图片 7

图片 8

其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。

PC1收到两个ARP回应包,内容分别如下:

其实,这就是典型的"盲扫"或者"暴力扫描":反正我不知道网络到底有多少主机,那我就尝试一下把整个网段全部问一遍得了。好比老师上课点名,把每个学生的桌位号念一遍,谁举手就到勤,没举手就算逃课。

从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。

③我是PC2,我的IP地址是IP2,我的MAC地址是MAC2

图片 9

第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。

③我是PC2,我的IP地址是IP2,我的MAC地址是MAC3

请点击此处输入图片描述

一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少 “黑锅”。

PC1一脸懵:咋回事?还有这操作?不管了,我选最新的!(后到优先)

​怎么找到攻击者的IP和MAC地址呢?2010年的安全软件,不像现在的ARP防火墙,能够主动告警,并且说明攻击次数和攻击源,所以还是需要自己折腾下:熟练的打开电脑之前安装好了的wireshark,监听自己电脑网卡的流量,设置流量过滤器(仅过滤arp协议),不出意外,接下来就是一堆"带有节奏的ARP扫描包"(还记不记得之前章节说过的,ARP攻击一般会涉及到持续的内网扫描和欺骗攻击)。

作为网吧路由器的厂家,对防范ARP欺骗不得已做了不少份内、份外的工作。一、在宽带路由器中把所有PC的IP-MAC输入到一个静态表中,这叫路由器 IP-MAC绑定。二、力劝网管员在内网所有PC上设置网关的静态ARP信息,这叫PC机IP-MAC绑定。一般厂家要求两个工作都要做,称其为IP- MAC双向绑定。

这里给大家顺便普及下网络协议里各种表在处理缓存信息的方式:

下一章节讲解arp欺骗攻击的方式和具体步骤,大家不懂的多看下,结合图文理解,实际中本地搭建也可以操作一下,跟着自己配置一个环境来试试。

五、如何实现ARP攻击?针对ARP原理的例子:

要么"先到先得",要么"后到优先"。上面提到的ARP和CAM表,就是遵循"后到优先"原则,而后面章节我们会讲到的DHCP表,则遵循"先到先得"原则。

了解上面这些常识后,现在就可以谈在网络中如何实现ARP欺骗了,可以看看这样一个例子:

那么问题来了,上面两个ARP回应包到底哪个先到哪个后到呢?

一个入侵者想非法进入某台主机,他知道这台主机的防火墙只对192.0.0.3(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:
1、他先研究192.0.0.3这台主机,发现这台95的机器使用一个oob就可以让他死掉。
2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。
3、这时,主机发到192.0.0.3的ip包将无法被机器应答,系统开始更新自己的arp对应表。将192.0.0.3的项目搽去。
4、这段时间里,入侵者把自己的ip改成192.0.0.3
5、他发一个ping(icmp 0)给主机,要求主机更新主机的arp转换表。
6、主机找到该ip,然后在arp表中加入新的ip-->mac对应关系。
7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。

作为初学者,可能还在纠结前后这种naive的问题;而作为hacker,只要持续不停发出ARP欺骗包,就一定能够覆盖掉正常的ARP回应包。稳健的ARP嗅探/渗透工具,能在短时间内高并发做网络扫描(例如1秒钟成千上百的数据包),能够持续对外发送欺骗包。

无论如何,当PC1和PC2这种"小白"用户遇到PC3(hacker)时,最终的结果一定是这样的:

图片 10

小白 vs 黑客,很明显的较量,PC1最终记录的是虚假的ARP映射:IP2<->MAC3,得到错误信息的PC1,接下来会发生什么情况呢?(我们以PC1 ping PC2为例)

图片 11

根据数据封装规则,当PC1要跟PC2进行通信时,无论是发生PING包还是发送其他数据,首先要查找ARP表,然后在网络层打上源目IP,在链路层打上源目MAC,然后将数据包发送给交换机。交换机收到之后对数据进行解封装,并且查看CAM表(基于目的MAC转发),由于目标MAC3对应Port3,所以交换机自然而然将其转发给PC3。

就这样,PC1本来要发给PC2的数据包,落到了PC3(Hacker)手里,这就完成了一次完整的ARP攻击。反过来,如果PC2要将数据包发送给PC1,PC3仍然可以以同样的ARP欺骗实现攻击,这就有了下面这张图(PC3既欺骗了PC1,也欺骗了PC2)。

图片 12

此时,PC1和PC2的通信数据流被PC3拦截,形成了典型的"中间人攻击"。那么,一旦被攻击并拦截,攻击者能做什么,普通用户又会遭受什么损失?这里给大家举几个常见的例子=>

①攻击者既然操控了数据流,那么直接断开通信是轻而易举的,即"断网攻击",例如,PC1发给PC2的数据在PC3这里可以直接丢弃,而如果这里的PC2是一台出口路由器(无线路由器),那就意味着PC1直接无法连上互联网。

②"断网攻击"显然容易被发现,而且比较"残忍",所以就有了更加常见的应用-"限速"。例如,在宿舍上网突然很慢,在网吧上网突然打不开网页,如果这个网络没有安全防御,那么很有可能有"内鬼"。

③其实无论是"断网攻击"还是"限速",整体还是比较"善良",因为这里流量里面的核心数据还没有被"提取"出来。如果攻击者是一名真正的黑客,他的目的一定不会这么无聊,因为内网流量对于黑客是没有太大价值的,而只有"用户隐私",例如常见网站的登录账号密码,这些才是最有价值的。

问:遭受ARP攻击之后,哪些账号可能被窃取?

答:任何基于明文传输的应用,都可以被窃取。例如,如果一个网站不是HTTPS协议,而是基于HTTP明文传输,那么当你登录这个网站时,你的密码就会被窃取。除了http(web应用),常见的还有telnet、ftp、pop3/smtp/imap(邮箱)等应用,都很容易泄露密码。

三、常见ARP渗透工具与底层原理分析

基于ARP欺骗原理设计出来的渗透/攻击工具非常多,而最终能实现什么功能则各有差异,简单举几个例子:

①无毒无害型的仅具备ARP扫描功能,用来发现内网主机;例如Metasploit里面的arping/arpscan相关模块;

ARP扫描 流量控制(限速或限制能上哪些网站和应用);例如Windows下的P2P终结者;

ARP扫描 账号窃取(网站、邮箱、各种);最强的莫过于Windows下的Cain,当然还有跨平台的Ettercap(需配合其他工具);

当然,如果攻击者足够强悍,也可以基于协议底层原理,编写自己的ARP工具。这里我通过wirehshark给大家还原真实网络中常见的ARP扫描和欺骗攻击(具体的软件使用这里暂时不出现,大家重点关注底层实现)。

图片 13

在这张图里面,Hacker(就是我...)接入了一个WiFi网络,这个10.1.20.0/24便是所在的网段。刚进来一个陌生网络,Hacker只知道自己的IP信息,例如IP地址是10.1.20.253,网关地址是10.1.20.254,而这个局域网的其他设备是什么?有多少台?地址分布是多少?Hacker都不知道,接下来怎么办呢?是不是要直接发动ARP攻击了?

不用这么着急,咋们至少要先了解下这个网络,进行基本的扫描和踩点。这个时候通过ARP工具对这个WiFi网络进行扫描,具体的数据包截图如下:

图片 14

上面的ARP扫描过程,大概的情况是这样的=>

图片 15

其实,这就是典型的"盲扫"或者"暴力扫描":反正我不知道网络到底有多少主机,那我就尝试一下把整个网段全部问一遍得了。好比老师上课点名,把每个学生的桌位号念一遍,谁举手就到勤,没举手就算逃课。

那么,这个实际网络里面,到底谁"举手"了呢?我们来看Wireshark抓包情况。

图片 16

在ARP应答信息里面,除了IP地址和MAC信息,我们还能看到相关的设备厂商信息,例如cisco、meizu、apple、xiaomi等,这其实就是依靠MAC地址前面24位的OUI(机构唯一标识符)来识别的。

Wireshark或扫描器能够帮我们将OUI转为对应的厂商(还有一些扫描器基于Netbios协议,还能找到电脑的主机名),所以,扫描之后可以得到下面这张图片=>

图片 17

通过扫描,我们已经知道了整个网络的主机信息,例如20.254对应cisco,应该是路由器,20.248对应apple,是苹果手机,20.249对应xiaomi,是小米手机,以此类推.....

接下来,如何进行ARP欺骗攻击呢?这里将最重点的数据包截取出来=>

图片 18

根据之前的信息,我们知道00:08:ca:86:f8:0f其实就是hacker的mac地址,并且对应的真正的IP地址应该是10.1.20.253。而这里很明显是hacker在欺骗局域网其他主机,它对外声称:自己就是"所有人"。尤其是上面标红的主机,我们已经知道是小米、思科、苹果等设备,但是hacker都声明是自己!这样做的意义在于覆盖掉其他主机的ARP缓存表信息,并生成错误的ARP映射,最终将通信流量交给hacker。

当然,还有另外一种ARP欺骗的做法:hacker告诉所有人,自己就是网关。因为其他主机访问互联网必经之路便是网关(出口路由器/无线路由器),通过这种方式,同样可以截取到用户数据流,这里给出另外一个网络的实现过程=>

Hacker欺骗主机Honhai,告诉它:我就是网关(10.1.1.254)

图片 19

Hacker欺骗主机Apple,告诉它:我就是网关(10.1.1.254)

图片 20

依此类推,Hacker会告诉局域网所有主机:自己就是网关,并且后续可以把数据都丢给我,我来转发到互联网。

四、ARP攻击总结

①ARP缓存表基于"后到优先"原则,IP与MAC的映射信息能被覆盖;

②ARP攻击基于伪造的ARP回应包,黑客通过构造"错位"的IP和MAC映射,覆盖主机的ARP表(也被称为"ARP毒化"),最终截取用户的数据流;

③一旦遭受ARP攻击,账号密码都可能被窃取(如果通信协议不是加密的);

④通过Wireshark数据包分析,我们掌握了真实网络中ARP底层攻击原理及数据包组成。

预告:ARP防御篇

如何防御ARP攻击?

有哪些ARP防御软件?

如果被ARP攻击了,如何揪出"内鬼",应该如何"还手"?

企业网/家庭网的防御方法有什么区别?

【相关推荐】

《TCP/IP协议栈视频教程》

新浪微博:@拼客学院陈鑫杰

微信公众号:拼客院长陈鑫杰

本文由凯旋门074网址发布于澳门凯旋门官网,转载请注明出处:防止ARP攻击全攻略,黑客进阶

您可能还会对下面的文章感兴趣: