本文是一简单的关于SHIFFER的描述,对于不太知道SNIFFER的人来说可能适用,高手就免进了,要深一层次的就看如袁哥,BACKEND写的文章吧。
什么是SNIFFER呢?
一般我们在讲的SNIFFER程序是把NIC(网络适配卡,一般如以太网卡)置为一种叫promiscuous杂乱模式的状态,一旦网卡设置为这种模式,它就能是SNIFFER程序能接受传输在网络上的每一个信息包。普通的情况下,网卡只接受和自己的地址有关的信息包,即传输到本地主机的信息包。要使 SNIFFER能接受处理这种方式的信息,就需要系统支持bpf,LINUX下如SOCKET-PACKET,但一般情况下网络硬件和TCP/IP堆栈是不支持接受或者发送与本地计算机无关的数据包,所以为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始将的杂乱模式,一般情况下,要激活这种方式,必须内核支持这种伪设备bpfilter,而且需要ROOT用户来运行这种SNIFFER程序,所以大家知道SNIFFER需要ROOT身份安装,而你即使以本地用户进入了系统,你也嗅探不到ROOT的密码,因为不能运行SNIFFER。
基于SNIFFER这样的模式,可以分析各种信息包可以很清楚的描述出网络的结构和使用的机器,由于它接受任何一个在同一网段上传输的数据包,所以也就存在着SNIFFER可以用来捕获密码, EMAIL信息,秘密文档等一些其他没有加密的信息。所以这成为黑客们常用的扩大战果的方法,夺取其他主机的控制权。
下面描述了一些传输介质被监听的可能性:
Ethernet监听的可能性比较高,因为Ethernet网是一个广播型的网络,困扰着INTERNET的大多数包监听时间都是一些运行在一台计算机中的包监听程序的结果。这台计算机和其他计算机,一个网关或者路由器形成一个以太网。
FDDIToken-监听的可能性也比较高,尽管令牌网内的并不是一个广播型网络,ring实际上,带有令牌的那些包在传输过程中,平均要经过网络上一半的计算机。但高的传输率将使监听变得困难。
电话线监听的可能性中等,电话线可以被一些与电话公司协作的人或者一些有机会在物理上访问到线路的人搭线窃听,在微波线路上的信息也会被截获。在实际中,高速的MODEM比低速的MODEM搭线困难的多,因为高速MODEM引入了许多频率。
IP通过有监听的可能性比较高,使用有线电视信道发送IP数据包依靠RF调制线电视信道解调器,RF调制解调器使用一个TV通道用于上行,一个用于下行。
在这些线路上传输的信息没有加密,因此,可以被一些可以物?
访问到TV电缆的人截获。
微波和监听的可能性比较高,无线电本来上一个广播型的传输媒介,任何一
无线电一个无线电接受机的人可以截获那些传输的信息。
现在多数的SNIFFER只监视连接时的信息包,原因是SNIFFER如果接受全部的信息包,一个是LOG记录极其大,而且会占用大量的CPU时间,所以在一个担负繁忙任务的计算机中进行监听,由于占用的CPU和带宽就可以怀疑有SNIFFER在工作,当你觉得有异常现象的时候就先需要一些简单的方法检测。
虽然可以使用PS或者netstat的命令去查看是否有可以进程和连接信息的转态,但入侵者改变了ps或者netstat程序也就不能发现这些程序了,其实修改ps命令只须短短数条SHELL命令,即可将监听软件的名字过滤掉。
下面的两个方法原理简单,但操作起来比较困难:
1,对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去PING,运行监听程序的机器回有响应,这是因为正常的机器不接受错误的物理地址,处于监听状态的机器能接受,如果他的IPSTACK不再次反向检查的话,就会响应,这种方法依赖系统的IPSTACK,对有些系统可能行不通。
2,往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降,通过比较前后该机器性能(icmpechodelay等方法)加以判断,这种方法难度较大点。
一些流行的SNIFFER
SNIFFIT:这是一个比较的SNIFFER,它由BrechtClearhout所写,这是你应该最先用的程序,这个SNIFFER默认状态下只接受最先的400个字节的信息包,这对于一次登陆会话进程刚刚好。:p
SNORT:这个SNIFFER有很多选项供你使用并可移植性强,可以记录一些连接信息,用来跟踪一些网络活动。
TCPDUMP:这个SNIFFER很有名,FREEBSD还搭带在系统上,是一个被很多UNIX高手认为是一个专业的网络管理工具,记得以前 TsutomuShimomura(应该叫下村侵吧)就是使用他自己修改过的TCPDUMP版本来记录了KEVINMITNICK攻击他系统的记录,后来就配合FBI抓住了KEVINMITNICK,后来他写了一文:使用这些LOG记录描述了那次的攻击, HowMitnickhackedTsutomuShimomurawithanIPsequenceattack(http://www.attrition.org/security/newbie/security/sniffer/shimomur.txt)
ADMsniff:这是非常有名的ADM黑客集团写的一个SNIFFER程序。
linsniffer:这是一个专门设计杂一LINUX平台上的SNIFFER。
Esniffer:这个也是一个比较有名的SNIFFER程序。
Sunsniff:这个是用在SUNOS系统上的SNIFFER,此程序应该在十年前推出的吧。
Solsniffer:这是个Solarissniffer,主要是修改了SunSniff专门用来可以
方便的在Solair平台上编译。
这些程序attrition收集起来了,大家可以到下面的URL下载:
http://www.attrition.org/security/newbie/security/sniffer/
一些流行的检测SNIFFER的程序:
http://www.attrition.org/security/newbie/security/sniffer/promisc.c--是一个很小的C程序,当编译好后,会查找本地机器上任何处于杂乱模式的NIC网络适配卡。
http: //www.attrition.org/security/newbie/security/sniffer/neped.c--是一个用来远程检查任何嗅探活动的程序,可惜它只在LINUX下编译,当然你也可以简单的使用ifconfig-a来检查你的UNIX机器是否有PROMISC标志。
http://www.l0pht.com/antisniff/这是L0pht写的很好的反SNIFFER程序,L0PHT还打算公开LINUX版本上的源码版本。
另外,如果机器上使用两块网卡,把一块设置为杂乱模式,并把IP地址设置为0.0.0.0,另一块卡处于正常的模式并是正确的地址,这样将很难发现SNIFFER的存在。
一些资源:
大家可以到http://www.securityfocus.com/找到很多关于SNIFFER的程序, PHRACK54(FILE10)的文章awesomearticle很好的解释了很多方法和技巧来对付SNIFFER,
http://www.attrition.org/security/newbie/security/sniffer/shimomur.txt
是Shimomura写的文章(HowMitnickhackedTsutomuShimomurawithanIPsequenceattack)
。也可以到http://www.l0pht.com/站点下载Antisniffer,这确实是一个不错的工具。