当前位置:中国易下载软件教材中心文章中心黑客技术基础知识 → 局域网内arp攻击与防护之解析

局域网内arp攻击与防护之解析

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2007-8-20 16:46:35
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
喜欢这些内容嘛,请告诉你身边的朋友,易下载中心-QQ资源-itnetcn.com一起享受这份乐趣,本站内容来源互联网
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

arp攻击在校园网内越来越泛滥,包括中病毒者,蓄意攻击者,无论哪种情况,都会造成网络中断的情况。sgZ海岸线网络安全资讯站
鉴于此,特写此文为大家解惑arp。sgZ海岸线网络安全资讯站
arp全称地址解析协议,提供了ip地址——〉mac地址的解析。ip地址是为大家所熟知的逻辑地址,而mac就有很多人不知道为何物了。mac地址是一个烧录在网卡内的物理硬件地址,该地址在网卡出厂时就由网卡生产厂家唯一确定了的,真正全球唯一(恶意修改或伪造的除外)。ip地址提供了网络上路由选择的依据,而mac地址则提供以太网内主机的定位。sgZ海岸线网络安全资讯站
我们所在的网络是由许许多多的路由器和交换机构成,路由器识别ip地址,而交换机识别mac地址。因为是浅析,我不深入讲解交换和路由的机制,具体涉及到该方面的内容时再具体分析。sgZ海岸线网络安全资讯站
我们寝室内的电脑要连接校园网,首先连接到的就是交换机。我画了个简单的拓卜,来表示我们寝室的网络sgZ海岸线网络安全资讯站
sgZ海岸线网络安全资讯站
图中所有主机的mac地址均为假设sgZ海岸线网络安全资讯站
图中的主机a、b、c、d、e、f就表示我们的电脑,交换机就是我们各楼层中的交换机,路由器则是我们的网关。我所在楼层的ip段为172.19.5.1~172.19.5.254,172.19.5.1为网关地址,从2~254都为主机地址。我假设主机a要和主机b通信,现在,来看一下这个通信过程怎么实现的。sgZ海岸线网络安全资讯站
首先,主机a通过用户输入或别的途径了解到主机b的ip地址为172.19.5.3。前文说过交换机只识别mac地址,我们的主机都连接在交换机上,所有的通信都得通过mac地址来定位主机。而此时,a并不知道b的mac地址为多少。所以a就发出一个arp请求广播,该arp请求广播中包括了a的ip地址,mac地址,b的ip地址以及一个mac广播地址(FF.FF.FF.FF.FF.FF),其意思为:“你好,我的ip地址为172.193.5.2,mac地址为AA.AA.AA.AA.AA.AA,请拥有ip地址为172.19.5.3的主机回复你的mac地址。”。所谓广播,就是连接于交换机上的所有主机都会收到该arp请求广播。因为请求中包含了目标ip为172.19.5.3的内容,广播域内的其他主机通过识别内容中的目的ip地址,发现该广播不是发给自己的,于是丢弃该arp请求。而主机b识别该arp请求后,发现目的主机是自己,于是通过arp请求中a的mac地址回复一个arp回复,并将主机a的ip地址和mac地址存入自己arp缓存表以供下回通信时使用,而不必再发送arp请求来寻找主机a。注意,因为通过主机a的arp请求,主机b已经知道a的mac地址是多少了,所以这个arp回复是以单播的形式发送给主机a,其他主机是不会收到这个回复的。arp回复的内容为主机b的ip地址,mac地址,目的主机a的ip地址,mac地址。其意思为:“你好,我是拥有ip为172.19.5.3的主机,我的mac地址为BB.BB.BB.BB.BB.BB。”通过这一arp请求-应答,主机a就知道了mac,同时也将主机b的ip地址和mac地址存入自己的arp缓存表,以供以后的通信使用。sgZ海岸线网络安全资讯站
废话了这么多,其实都为了之后更好的理解arp攻击的原理及发生过程。sgZ海岸线网络安全资讯站
下面就进入arp的攻击篇。sgZ海岸线网络安全资讯站
其实所谓arp攻击就是利用了arp协议的漏洞,通过伪造的数据,刷新目的机器的arp缓存表来达到攻击目的的。sgZ海岸线网络安全资讯站
在arp协议中,定义了绝对相信arp回复中所提供的信息。这就给了攻击者可乘之机。前文说过,arp回复中包括了回复者的ip地址,mac地址,目的主机的ip地址,mac地址。而收到arp回复的主机不会检测该arp回复是否为真的主机回复,且不在乎之前自己是否发送过arp请求。一旦主机收到arp回复,就提取其中的回复者的ip地址和mac地址加入自己的arp缓存,如果缓存中已有关于该ip的记录,就用新的arp回复中提供的mac地址刷新原来的mac地址。sgZ海岸线网络安全资讯站
于是,攻击产生了。我们可以用特定的软件来产生arp回复,发送向欲攻击的主机,来刷新它的arp缓存,导致原本该发向真正主机的数据却发向了攻击者精心定义的伪造mac地址。如果攻击者持续不断的发送这种伪造的arp回复,会导致被攻击机器的arp缓存表中的ip与mac的对应一直是错误的。sgZ海岸线网络安全资讯站
原理先解释到此,下面我来演示一次攻击过程。sgZ海岸线网络安全资讯站
制作完成,屏幕录像文件,压制成exe了:sgZ海岸线网络安全资讯站
http://safewind.dlmu.edu.cn/acdown/list.asp?id=1232

攻击解释:sgZ海岸线网络安全资讯站
我们的机器要访问校园网,所有数据先要通过网关。于是在我访问海事主页时,先有一个arp请求网关mac地址的过程。然后将网关的mac缓存到arp缓存表中,方便以后的通讯。完成这一步后,主机就将数据发送到先前通过arp请求得到的网关mac上。当我攻击时,伪造了一个arp回复,告诉被攻击主机,172.19.5.1(即网关ip地址)的mac地址为xx.xx.xx.xx.xx.xx(只要不是网关的真正mac,随意伪造成什么都行)。被攻击机器收到这个伪造的arp回复后,将自己的arp缓存刷新成伪造的网关mac,之后所有的数据都会发向伪造的mac(演示中为我自己机器的mac)而不是网关。因此造成了网页访问的失败。sgZ海岸线网络安全资讯站
这是对主机的攻击。同理,网关也有一个对应主机的arp缓存,我们也可以发送伪造的arp来攻击网关。不过这个罪过就大了,会造成整个网段的网络访问失败。sgZ海岸线网络安全资讯站
来继续更新了。前面讲的攻击,只是一种无聊的行为,是骇客的行为。其目的是导致大面积网络瘫痪,或者自己独享带宽上网。sgZ海岸线网络安全资讯站
下面我介绍一种比较隐蔽的,但危害更大的一种攻击——中间人攻击。这种攻击,轻则被攻击人泄露隐私,重则丢失重要帐号信息。而且,中间人攻击的隐蔽性较强,不容易发现。限于其危害性,我就不发布攻击过程的录像了,以口头描述过程以及攻击结果的截图来代替。sgZ海岸线网络安全资讯站
首先将我自己的机器开启路由功能,目的为了转发被攻击机器发送过来的数据包。如果没有这一步,我的机器会丢弃被攻击主机发送的数据包。这就是前面演示中,受攻击后,被攻击主机无法打开网页的原因。然后向我的虚拟机(172.19.5.251)发送arp-request,同arp-reply的目的一样,为了刷新被攻击机器的arp缓存,使其网关的mac地址指向自己。相比较,request的成功率更大。因为有些系统,如unix定义了不响应非请求的reply。如果直接发送arp-reply,这些系统由于没有发送过arp-request,会丢弃收到的reply而不是刷新arp缓存。sgZ海岸线网络安全资讯站
这时,由于我的机器开启了路由功能,这些数据包会转发给真正的网关。而网关则认为这些转发的数据是我的机器发送的连接请求。sgZ海岸线网络安全资讯站
然后我在自己机器上打开嗅探器(sniffer),就能监听到被攻击机器所发送的数据包的内容了。实验中,我用被攻击机器登录了海风网的论坛,在嗅探器中,我找到了登录的用户名和密码。如图:sgZ海岸线网络安全资讯站
sgZ海岸线网络安全资讯站
图中反白的内容就是帐号和密码sgZ海岸线网络安全资讯站
除了这种中间人攻击,还有一种双向的中间人。sgZ海岸线网络安全资讯站
就是同时攻击网关和主机。然后用软件转发两者之间的数据。于是,相对于网关和主机,我这个中间人就是透明的。sgZ海岸线网络安全资讯站
arp的攻击篇就到此结束了,接下来请看防护篇。sgZ海岸线网络安全资讯站
arp攻击的防护,可以分为两部分。网关的防护和主机的防护。先针对受攻击比较多的主机进行讲解。sgZ海岸线网络安全资讯站
前面说过,所有的攻击要实现最终的目的,都是改变目标机器的arp缓存来达到目的的。于是防护方法诞生——一旦确定了正确的网关mac地址,就锁定该arp缓存条目,使之无法更改,就可以达到防治攻击的目的。这一方法的实现有多种途径,可以用软件,也可以使用系统自带的命令。sgZ海岸线网络安全资讯站
先说说系统自带命令:sgZ海岸线网络安全资讯站
*nix下可以通过修改文件来达到静态mac地址表的目的。具体命令请查看相关书籍,本人不熟悉*nix的命令。sgZ海岸线网络安全资讯站
windows下有一条arp -s命令来达到相同的目的。命令语法如下:sgZ海岸线网络安全资讯站
arp -s 网关ip地址 网关mac地址sgZ海岸线网络安全资讯站
如此,就将网关的ip和mac进行了静态绑定。无论攻击者怎么发送arp-reply,arp缓存都不会被刷新。不过该方法只对现在登录的系统有效,也就是重启后,还得键入该命令,以将网关ip和mac绑定。所以,可以将该命令写成批处理,放入启动项,达到自动运行的目的。还要强调的是,这种方法只对win-xp有效,2k即使绑定了ip和mac,还是会被arp-reply刷新mac地址表。sgZ海岸线网络安全资讯站
所以,遇到这种情况,就要靠软件来锁定mac地址表了。sgZ海岸线网络安全资讯站
有关的命令和软件,已经有兄弟发在海青上了,我就不再做无用功。sgZ海岸线网络安全资讯站
http://202.118.83.45/vbb/showthread.php?t=390613sgZ海岸线网络安全资讯站
有关命令我做了截图,看下图:sgZ海岸线网络安全资讯站
sgZ海岸线网络安全资讯站
sgZ海岸线网络安全资讯站
友情提示:经测试,2k系统由于设计缺陷,无论命令的静态绑定还是使用提供的软件,都无法抵挡arp攻击。在找到更好的防护arp攻击的软件前,使用2k系统的朋友们小心了。sgZ海岸线网络安全资讯站
现在讲解网关的防护。sgZ海岸线网络安全资讯站
其实更确切点是网关和交换机的防护。sgZ海岸线网络安全资讯站
网关的防护最有效的就是ip和mac地址的绑定。呵呵,又是绑定。没错,一旦绑定了,就无法通过非法途径修改,当然安全了。不过,像我们寝室这种网络,动则几百台机器一幢楼,全部绑定,一定累死网管。而且有谁要更换网卡,还要请网管修改绑定的mac地址,很是麻烦。所以,对我们寝室的网关来说,绑定不现实。但对于机器较少的网络来说,这的确是一个可行有效的办法。同样,在交换机上也能进行端口和mac地址绑定,优劣同刚才说的ip-mac绑定,不再赘述。sgZ海岸线网络安全资讯站
其实arp攻击还有一种形式前文没有讲述。这就是arp-flood(arp泛洪攻击)。其原理如下:sgZ海岸线网络安全资讯站
交换机正常工作时,其内部有一张mac地址表和交换机上的端口对应。交换机刚启动时,地址表是空的每次端口收到数据时,交换机会检查数据帧中的mac地址,如果没有对应的mac地址记录,就执行泛洪*作,将数据发往所有的端口。主机收到数据后比对其中的mac地址和自己的mac地址,若不匹配,则丢弃数据。匹配,则进行回复。进行数据回复时,交换机会检查数据帧中的mac地址,并将mac地址存入mac-port的地址表。如此,下回有发往已学习mac地址的数据时,交换机不再进行泛洪*作,而是直接将数据发往对应的端口。这一过程就是交换机的mac地址学习。说多了,回到arp-flood。sgZ海岸线网络安全资讯站
进行flood攻击时,我们发送大量的伪造arp数据到交换机,刷新其mac地址表,使其达到存储上限。造成mac地址表的溢出。此时,由于有大量的mac地址刷新,交换机无法处理,于是交换机自动降级,使自己成为hub,执行泛洪*作,也就是将数据发往所有端口。只要我们将网卡处于混杂模式,就能使网卡不检查mac地址匹配,而是将所有收到的数据包传递到上层,而非原先的mac不匹配丢弃数据包。sgZ海岸线网络安全资讯站
这时我们用嗅探工具(sniffer)就能嗅探到原本不属于我们的数据了。sgZ海岸线网络安全资讯站
针对这种攻击,交换机上要求有arp流量过滤的功能才能防护。一旦某端口的arp流量超过设定的警戒值,就block该端口,使其无法通讯。sgZ海岸线网络安全资讯站
还有就是在交换机上合理划分vlan,将广播域分割,使arp攻击的影响降到最小。不过以上所述的防护都要求交换机提供这些功能特性。一般都是3层可网管交换机可以进行这样的管理。不知学校安排在寝室的交换机有没有这个档次了。sgZ海岸线网络安全资讯站
所以,做好主机的防护还是关键。现在寝室楼层发生的arp攻击现象多半是由于中了病毒木马所致,所以,勤升级病毒库,养成良好的上网习惯就能做到一定的防护。sgZ海岸线网络安全资讯站
还有,奉劝那些使用工具攻击主机或网关的,这种行为是不道德且违法的。不要认为自己做的隐蔽,就发现不了。还是可以有技术手段来跟踪你的位置的。再怎么伪造mac,你上网的端口是不会变的。到有人来找你时,真的麻烦就到了。

全文完!sgZ海岸线网络安全资讯站