频道栏目
首页 > 资讯 > 系统安全 > 正文

无ARP欺骗的嗅探技术

11-02-13        来源:[db:作者]  
收藏   我要投稿
文/图 刘志生
ARP欺骗的攻击和防御技术都比较成熟了,杂志以前的文章也介绍得比较详细,这里就不再细述了。本文重点讲解如何不使用ARP欺骗进行嗅探以及会话劫持的技术原理,实际的攻击方法是进行MAC欺骗。
原理说明
在开始之前,我们先简单了解一下交换机的转发过程。交换机的一个端口接收到一个数据帧时,首先检查该数据帧的目的MAC地址在MAC地址表(CAM)对应的端口,如果目的端口与源端口不为同一个端口,则把帧从目的端口转发出去,同时更新MAC地址表中源端口与源MAC的对应关系;如果目的端口与源端口相同,则丢弃该帧。
假设有一个如下的工作场景,一个4口的switch,端口分别为Port.A、Port.B、Port.C和Port.D,对应主机 A、B、C和D,其中D为网关。
当主机A向B发送数据时,A主机按照OSI往下封装数据帧,此过程中会根据IP地址查找到B主机的MAC地址,填充到数据帧中的目的MAC地址。发送之前网卡的MAC层协议控制电路也会先做个判断,如果目的MAC相同于本网卡的MAC,则不会发送,反之网卡将这份数据发送出去。Port.A接收到数据帧,交换机按照上述的检查过程,在MAC地址表发现B的MAC地址(数据帧目的MAC)所在端口号为Port.B,而数据来源的端口号为Port.A,则交换机将数据帧从端口Port.B转发出去,B主机就收到这个数据帧了。整个过程如图1所示。
 
图1
这个寻址过程也可以概括为IP->MAC->PORT。ARP欺骗是欺骗了IP/MAC的应关系,而MAC欺骗则是欺骗了MAC/PORT的对应关系。比较早的攻击方法是泛洪交换机的MAC地址,这样确实会使交换机以广播模式工作,从而达到嗅探的目的,但是会造成交换机负载过大,网络缓慢和丢包,甚至瘫痪。本文我们将不采用这种方法。
实战演练
依然假设工作环境为上述的4口swith,软件以cncert的httphijack为例,应用为A主机劫持C主机的数据。以下是劫持过程(da为目的MAC,sa为源MAC)。
1)A发送任意da=网关.mac、sa=B.mac的数据包到网关。这样就表明b.mac对应的是port.a,在一段时间内,交换机会把发往b.mac的数据帧全部发到a主机。这个时间一直持续到b主机发送一个数据包,或者另外一个da=网关.mac、sa=b.mac的数据包产生前。整个过程如图2所示。
图2
2)A 主机收到网关发给B的数据,记录或修改之后要转发给B,在转发前要发送一个请求B.MAC的广播,这个包是正常的,MAC信息为da=FFFFFFFFFF、sa=a.mac。这个数据帧表明了a.mac对应port.a,同时会激发b主机响应一个应答包,MAC信息为da=a.mac、sa=b.mac,这个数据帧表明了 b.mac对应port.b。至此,对应关系已经恢复,A主机将劫持到的数据顺利转发至B。整个过程如图3所示。
图3
3)转发劫持到的数据到B,最终完成一次劫持。
这种攻击方法的特点非常明显,具有时间分段特性,所以对方的流量越大,劫持频率也越低,网络越稳定;而且隐蔽性强,基于其特殊性和工作本质,可以在ARP防火墙和双向绑定的环境中工作。
以上介绍的攻击方法,涉及到的利用工具主要有httphijack,用于实现HTTP会话劫持,ssclone用于交换环境下的会话复制(Gmail、QQmail、Sohumail……),skiller则用于流量控制。
在实际环境中,如果遇到这种攻击时,我们该如何防护呢?高级交换机可以采用IP+MAC+Port 绑定,控制CAM表的自动学习。至于软件,目前尚无可以防护此类攻击的有效工具。
相关TAG标签
上一篇:深入剖析汕头吧网络商城系统漏洞
下一篇:Linux下绕过多网卡实现双网络
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站