网络嗅探的原理
在介绍Sniffer是怎样工作之前,首先需要明确的一点就是,我们无法在网络上找到一点,对计算机网络上的所有的通信进行监听。这是因为Internet的连接看起来就像渔民的渔网,通信只是流经一个网眼,没有一个点能看到所有的网眼。Internet被建设成为是“抗中心打击”的——它可以经受任何的“单点失败”。因此,这就阻止了单点的监听。
通常在同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其他网络接口的硬件地址,同时,每个网络至少还要一个广播地址。在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:帧的目标区域具有和本地网络接口相匹配的硬件地址,或者是帧的目标区域具有“广播地址”。
在接受到上面两种情况的数据包时,网卡通过CPU产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。而Sniffer就是一种能将本地网卡状态设成promiscuous(混杂)状态的软件,当网卡处于这种“混杂”方式时,该网卡具备“广播地址”,它对所有遭遇到的每一个帧都产生一个硬件中断,以便提醒操作系统处理流经该物理媒体上的每一个报文包(绝大多数的网卡具备置成promiscuous方式的能力)。
可见,Sniffer工作在网络环境中的底层,它会拦截所有正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是,Sniffer是不易发现的、被动的安全攻击。
我们通过以下的例子来讨论Sniffer的工作原理:
这个问题可以在以下的情境中来问:
A和B在上海并且正在用电话聊天,你位于北京,想听到他们之间的谈话。在这种情况下,你当然听不到A和B之间的谈话,甚至可以说是根本就没有这个可能。为了听到他们之间的聊天,你必须能访问这个通信所在的线路。因此你想监听一段通信,而你又不在该通信的线路上,你可以利用以下方式:
(1)远程访问线路
典型的例子有:
闯入A或B的计算机,并安装你能在远程控制的Sniffer软件。
闯入中间的ISP中,并安装Sniffer软件。
在ISP处发现支持Sniffer的盒子,就像RMON探针或DSS(Distributed Sniffer System)。
(2)接近线路
在一些情况下,就像cable-modems, DSL, Ethernet VLANs等,你需要重定向在两个人之间的通信,因为你不能直接访问这条路径上的通信。
(3)Rootkits和远程管理的Trojans
另一个可能是侵入该人的计算机,并安装一个Sniffer程序。在Unix上,Sniffer程序是大多数的“rootkits”的一部分。在Windows上,Sniffer是RATs的一部分(Remote Admin Trojans例如BackOrifice)。
在理论上,这些程序能被用于监听通信,但是通常它们被配置为简单的监听口令,并将这些口令E-mail回黑客。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。