热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全
站外
广告
域名申请虚拟主机 信息安全 域名注册 云主机 网络安全技术 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 云安全

嗅探(被动嗅探)与ARP欺骗(主动嗅探)详解

发布时间:2013-08-21 09:47文章来源:freebuf文章作者:黑白前线 点击次数:
摘要:关于嗅探与ARP欺骗的原理,网络上有很多很好的帖子和文章,但大部分都忽略了数据在网络中的转发过程。实际上用嗅探和ARP欺骗来做标题有点忽悠 的成分,因为嗅探本身就包含了主动嗅探和被动嗅探,而ARP欺骗又是一个单独的技术,欺骗的目的只是让数据经过本机...

关于嗅探与ARP欺骗的原理,网络上有很多很好的帖子和文章,但大部分都忽略了数据在网络中的转发过程。实际上用嗅探和ARP欺骗来做标题有点忽悠的成分,因为嗅探本身就包含了主动嗅探和被动嗅探,而ARP欺骗又是一个单独的技术,欺骗的目的只是让数据经过本机,即:主动嗅探=ARP欺骗+抓包。在了解嗅探和ARP欺骗原理之前,我们必须对数据包在各种(交换网络、共享网络等)网络环境中的传输过程,笔者在这边也只针对交换网络和共享网络进行探讨。

若未加说明,文章中的三层指的是网络层,二层指的是数据链路层。

一.数据在网络中的转发过程:

1.数据在交换网络中的传输过程如下图(PC1发包给PC2)

:此图是以公网网络为基础,如果PC为内网或者加入私有网络则在出口要考虑NAT等情况

a)PC1发现目标IP110.1.1.2(网络号110.1.1.0)与本机不在同网段(掩码为24位,所以本机网络号为1.1.1.0),因此PC1会将数据包丢给网关,为了数据报文能够到达网关,PC1封装的报文里头会以网关的MAC作为目的MAC(网络数据传输,原目的IP不变,原目的MAC通过三层网络时会不断改变)。  b)数据报文到达二层交换机(这里只涉及二层交换,如果是三层交换机并设置了端口IP,则会有所不同)后,由于二层交换机拆解数据报文时只拆解到二层(只拆解到原目的MAC),根本看不懂IP,所以会查找MAC-接口映射表(所谓的建立虚拟链路),发现网关MAC对应的是E5口,则将数据包从E5口丢出去。  c)路由器R1收到数据报文后查看原目的IP(路由器属于三层设备,拆解数据包到IP层),查看数据包的目的IP为110.1.1.1,进而查找路由表,发现数据要到达目的网络,数据包必须往下一跳218.1.1.2发送,因此路由器对数据包进行重封装,查看ARP表,原、目的IP保持不变,将原MAC修改成R1出接口(连接到R2的那个端口)的MAC地址,目的MAC改成R2的进接口(R2接R1的接口MAC地址),接下来和二层传输一样,将数据包丢给R2。  d)R2收到数据包后与R1做的操作一样,直到数据报文到达目标。根据之前的步骤可以推出数据报文到达目标后,原IP、目的IP不变,原MAC为R2接PC2的接口MAC、目的MAC为PC2的MAC。PC2发现数据报文的目的IP和目的MAC与本机相符(非攻击者),从而拆解数据包,获得数据报文内容。回复报文的时候和之前的传输一样。

 

 

嗅探(被动嗅探)与ARP欺骗(主动嗅探)

2.数据在共享网络中的传输图(PC1发包给PC2)

 

嗅探(被动嗅探)与ARP欺骗(主动嗅探)

数据报文在共享网络中的传输和交换网络唯一的不同在于 第二个步骤,交换网络中交换机会根据MAC-端口对应表进行传输,也就是说除了网关(以图为例),其他同交换机下的PC机无法收到数据报文(没出现攻击的 情况下)。而在共享网络中,由于HUB属于一层设备,对于到达本身的数据报文,HUB会对报文进行广播(除了收到报文的那个接口),因此接在同HUB的所 有PC都能收到该报文。

注:通常情况下,网卡都是工作在非混杂模式,也就是说即使收到数据报文,网卡会判断目的MAC是否和自己的一样,不一样的话代表数据包不是给自己的,因此 会丢弃,只接收那些目的MAC和自己一样的数据报文。在嗅探时必须开启混杂模式,在该模式下,网卡不对数据报文进行判断,一锅端!

二.ARP欺骗:

1.欺骗过程及原理从上面的数据报文传输过程可以知道二层传输是通过MAC进行传输的,在传输过程中PC需要查询ARP表。因此攻击者只要可以改变目标的ARP表就能实现攻击,从而将数据牵引到自己的机器上,如图

 

嗅探(被动嗅探)与ARP欺骗(主动嗅探)
a)在正常情况下,PC1通过本地ARP表知道网关1.1.1.2的MAC地址为1.1.1.10260.8c01.1111,所以PC1封装包的时候会将目的MAC设置成路由器的MAC地址。交换机通过MAC-端口对应表能够正常的将数据报文从E1口转发给路由器,实现数据传输。  b)黑客对PC2有完全的控制权,通过不断发送(假冒的)ARP报文告诉PC1,自己才是1.1.1.1对应的MAC是0260.8c01.1113。  c)PC1收到黑客发的ARP报文后,刷新自己的ARP表,将1.1.1.1的MAC误认为是0260.8c01.1113。  d)PC1将要访问外网数据报文的目的MAC设置成0260.8c01.1113(PC2的MAC,目测PC1被自己的ARP表给骗了)。  e)交换机通过拆解包发现目的MAC对应的端口为E4(PC2的那个接口,连锁反应了!),就将数据报文从E4口丢出。  f)PC2成功得到PC1发往外网的请求报文。偷看后重新封包,原IP、目的IP不改变,将原MAC改成PC2的MAC,目的MAC改成网关的(数据包恢复正常,看起来和没攻击时PC1发出的报文完全一样),PC2修改完后将数据包丢给交换机,从而欺骗实现,当然对于该包的回应报文,由于路由器ARP表没被污染,所以能够正常的将返回报文直接丢给PC1。

2.如何选择欺骗方向

 在欺骗过程中,选择正确的欺骗方向也是很重要的,通过阅读我们可以看到上面的欺骗方向是PC1à网关。那么我们如何确定正确的欺骗方向呢?

a) 员工工作网络,我们知道正常请求报文里面含有大量的敏感信息,如网站管理后台账户密码等。而请求包的走向是员工PCà网关,如果黑客控制的电脑与员工内部同一网段,那么正常情况下黑客会欺骗员工的PC机自己是网关,从而截获请求报文

b)服务器网络,而在机房(服务器网络)中,管理员一般会在外部进行访问,即请求报文 是由网关转发给服务器,也就是说请求报文的走向是网关à服务器,如果黑客控制的是机房里的一台服务器,为了截获到请求报文中的服务器登录密码等敏感信息, 攻击者一般会对网关发起欺骗,告诉网关自己是某台或者某些服务器。

c)  实际上不管在员工网络或者机房内部网络,黑客比较习惯与进行双向欺骗,一方面告诉网关自己是某些终端,另一方面告诉同网段的其他终端自己是网关,但是该方法会产生大量的垃圾信息,因为在回应报文中基本上不会携带敏感的信息。

标签分类:

上一篇:技术剖析中国菜刀 -- 使用教程
下一篇:如何导出Windows哈希系列一