Groups    |     Jobs    |      User Space 

Hello, pls   log in or   register
current location:   up9rade > groups > inside security
安全之局域网嗅探

20071024 23:25:21   from: figo


摘要

为什么会出现所谓的msn/QQ sniffer[1][2],为什么一台机器能捕获其它机器的信息。这些现象让大多数不懂网络的人感到困惑,也感到害怕,因为个人隐私可能被某些不良人员(包括很多只是好奇的人)所利用,更严重的是一些信息可以被利用来作出更大的危害,那么我们来了解下这其中的原理,以及个人和网络
管理人员如何察觉和避免这种窥探。

Sniffer的原理
如图所示,有多台pc终端交换机上构成一个局域网,当PC1向其它机器发送消息时,

根据交换机的不同有两种模式
1) 如果交换机是管理模式,他会记录下每一口所连计算机的MAC地址(一种网卡的物理地址,无法更改)当交换机收一个消息帧,会根据目标地址来决定发往哪个端口。

2) 如果交换机是passive,那么交换机收到消息帧会向交换机的每一个口复制发送一份并且发送。 能够被窥探者利用的是第二种模式,即交换机会向每一个口上的网卡发送数据帧,但
是为什么一般情况上不会发生问题,是因为网卡也有两种工作模式:

1)一般模式,网卡只接收目标地址是自己的数据帧,其它数据帧被丢弃。

2)混杂模式(promiscuous mode)网卡接收所有到达网卡的数据帧。

把交换机的第二种情况和网卡的混杂模式综合起来,就使得一台机器能捕捉到局域网 内所有通讯的数据包,加以分析就形成了我们所看到的msn,qq和其它的消息。

为什么网卡可以设置成混杂模式?
这多半是由于网络监控的需要,但是一般的使用者也能很轻松的把自己的网卡设置成混杂模式。

1)最简单的办法,多款著名的packet capture自由软件直接提供了混杂模式功能,比如ethereal (Google it), 应用它能直接捕获局域网的数据包。

2)对于Linux机器,可以直接修改其驱动,重新编译装载即可,关于修改网上有很多文章,http://www.linuxdiyf.com/viewarticle.php?id=52177

3)对于windows机器,利用winpcap做应用程序来实现,
http://www.leftworld.net/wenzhang/show/1816.html

如何反sniffer
如何反sniffer是我们最关心的问题,可以从两个方面来分析

第一是个人,个人可以通过给通讯加密,使得捕获者即使获得数据包也无法读懂内容,当然如果它还能成功破译那就是另外的问题。现在网上能直接下载msn,qq的发sniffer软件[3][4], 它的原理就是给通讯加密;不要直接使用telnet,而用ssh等。


第二对于网络管理员,有两种途径

一是不要使用广播式的hub或者交换机来连接局域网(很可能处于经费考虑没法解决)。

二是成功的监控网络上是否有sniffer,也就是网络上是否出现混杂模式的网卡,最直接的办法是ping本机,如果得到其它机器的icmp响应就证明那台机器是处于混杂模式;或者把 监控软件安装在客户端,一旦有sniffer就及时报告。


总结
以上是对网络捕获的初步分析,有待深入。


引用

[1]msn sniffer: http://www.effetech.com/msn-sniffer
[2]QQ sniffer http://www.skycn.com/soft/550.html

[3]SimpLite For ICQ 2.1.3 anti-sniffer

[4]SimpLite For MSN Messenger

作者:Figo
email: figo_luo@symantec.com

------------------------------------------------------------------------------------------------------------




I want to say something...

Input autho code, click on image to change another code: