Linux下深入学习Sniffer
3、介绍tod
这东东便是sniffit最著名的一个插件了,为什么叫TOD呢--touchofdeath,它可以轻易地堵截一个TCP连接,原理是向一个TCP连接中的一台主机发送一个断开连接的IP包,这个IP包的RST地位1,便可以了。
将下载上去的tod.tar.gz拷贝到sniffit所在目次下,解压安置后ln-stodsniffit_key5,就可以将这相程序与F5键连接起来,想堵截哪台机器的话,只要在窗口中将光标指到必要断线的机器上按下F5键就可以了。你可以自由地定义成其它的F功效键--F1~F4不可,它们已经被定义过了……
4.2.在nt下的sniffit
Sniffit 0.3.7推出了NT版本,也支持WINDOWS2000,这个sniffit必要WinPcap包,就是雷同与libpcap的包,支持WIN32平台上可以信息包捕获和网络分析,是基于UNIX的libpcap和BPF(Berkeley 分帧过滤器)模子的包。它包括内核级的包过滤驱动程序,低级静态连接库(packet.dll),和初级系统有关性库(libpcap,基于0.4a6版本)。
这个WinPcap信息包捕获启动程序可把设置装备摆设驱动增长在Windows 95, Windows 98, Windows NT 和 Windows 2000 上,可以有能力捕获和发送通过原始套接口的信息包(raw packets),Packet.dll是一个能用来间接访问BPF驱动程序的API。
WinPcap在http: //netgroup-serv.polito.it/windump和http://netgroup- serv.polito.it/analyzer这两个工具中成功使用。最新的WinPcap是版本2.02,修补了2.01版本中的一些缺陷,并且支持 WIN2000。详细信息和源代码可以在下面这个站点找到:
http://netgroup-serv.polito.it/winpcap/
下面是在WIN2K中安置的步骤:
1)先下载packet.exe这个程序后展开安置
2)翻开WINDOWS2000的控制面板
3)从控制面板中双击"网络和拨号连接"图标,在翻开"当地连接"图标,并选择属性选项
4)在表现的对话框中选择"安置",安置网络组件
5)再在出现的对话框中选择"协议",点击"增长"
6)在出现的对话框中选择"从磁盘安置",选择正确路径,就是刚才你解压的网络设置装备摆设驱动程序(这个文件夹中必须包含packet.inf和packet.sys)的地方,在选择确定
7)在选择"Packet capture Driver v X.XX ",并根据指示来完成安置,每每要你WINDOWS2000的安置光盘
8)查看网络组件中有没有 Packet capture Driver v X.XX 这一行,有的话阐明这个驱动程序已经建立并绑定了网络接口
再重新启动机器
然后解压sniffit_nt.0.3.7.beta,再使用下令行形式,我简略的使用了一个下令行,刚开端是使用sniffit -t 192.168.0.1 -p 21,想监视下21 FTP端口的暗码捕获成不成功,但出现"Automatic network device lookup not yet supported in Win32、version... use '-F DevicePacket_' 、to force the choice,Read the README.FIRST on how to force network devices. 的提示,于是我根据其提示所示,使用了sniffit -F Devicepacket_{31BB7ED2-125E-11D4-8F11-D79985727、802} -t 192.168.0.1 -p 21下令,这时出现下面的提示:
Forcing device to Devicepacket_{31BB7ED2-125E-11D4-8F1 quested)...
Make sure you have read the docs carefully.
Sniffit.0.3.7 Beta is up and running.... (192.168.0.1)
这就表明sniffit在事情了,于是在FTP到NT的端口,输入暗码,随即就可以在刚才SNIFFIT的目次下看到一个关于192.168.0.2.1281-192.168.0.1.21的文件,翻开后查看里面的内容如下所示:
USER xundi
PASS xxxxxxx-------->我隐蔽了
SYST
PORT 192,168,0,2,5,2
LIST
PORT 192,168,0,2,5,3
LIST
CWD g:
CWD c
PORT 192,168,0,2,5,26
LIST
CWD hack
PORT 192,168,0,2,5,88
LIST
看,是不是很整齐啊,至于文件名为何是这样192.168.0.2.1281-192.168.0.1.21,那是应该是一个客户/办事器形式,客户端的连接是随意开一个1281端口地址和192.168.0.1的21口连接。
5.怎样监测主机正在窃听(sniffed)
怎样才晓得有没有sniffer在我的网上跑呢?这也是一个很难阐明的题目,比较有说服力的理由证明你的网络有sniffer如今有这么几条:
1、你的网络通讯失包率反常的高。
通过一些网络软件,你可以看到你的信息包传送情况(不是sniffer),向ping这样的下令会报告你失了百分几的包。如果网络中有人在听,那么你的信息包传送将无法每次都顺畅的流到你的目标地。(这是由于sniffer阻拦每个包导致的)
2、你的网络带宽将出现反常。
通过某些带宽控制器(通常是火墙所带),你可以实时看到如今网络带宽的分布情况,如果某台机器永劫间的占用了较大的带宽,这台机器就有大概在听。在非高速信道上,如56Kddn等,如果网络中存在sniffer,你应该也可以察觉出网络通讯速度的变革。
3、通常一个sniffer的记载文件会很快增大并填满文件空间。在一个大型网络中,sniffer显着减轻机器负荷。这些告诫信息每每能够资助管理员发明sniffer。
4、一个主机上的sniffer会将网络接口置为混杂形式以吸收所有数据包。对付某些UNIX系统,通过监测到混杂形式的网络接口。固然可以在非混杂形式下运转sniffer,但这样将只能捕获本机会话。只要混杂形式下的 sniffing才气捕获以太网中的所有会话,其它形式只能捕获本机会话。
对付SunOS、linux和其它BSD Unix系统,如下下令:
"ifconfig -a"
会表现所有网络接口信息和能否在混杂形式。DEC OSF/1和IRIX等系统必要指定设置装备摆设。要找到系统中有什么网络接口,可以运转如下下令:
# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Interface
default iss.net UG 1 24949 le0
localhost localhost UH 2 83 lo0
然后通过如下下令查抄每个网络接口:
#ifconfig le0
le0: flags=8863
inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1
入侵者每每会更换ifconfig等下令来避开查抄,因此一定要查抄下令程序的校验值。
在ftp.cert.org:/pub/tools/的cpm程序(SunOS平台)可以查抄接口能否有混杂形式标志。
这些下令只在sniffer与内核存在链接时有用。而在缺省情况,sniffer是没有与内核链接的。大少数的Unix系统,比方Irix、Solaris、SCO等,都没有任何标志来指示能否处于混杂形式,因此入侵者能够窃听整个网络而却无法监测到它。
如果机器上使用两块网卡,把一块设置为杂乱形式,并把IP地址设置为0.0.0.0,另一块卡处于正常的形式并是正确的地址,这样将很难发明SNIFFER的存在。
注意:要监测只采集数据而不对任何信息进行相应的窃听设置装备摆设,必要逐一细致查抄以太网上所有物理连接,不大概仅通过远程发送数据包或ping就可以查抄计算机能否正在窃听.
6.怎样制止sniffer
<1>互换
随着互换机的本钱和代价的大幅度低落,互换机已成为非常有用的使sniffer失效的设置装备摆设。如今最常见的互换机在第三层(网络层)根据数据包目标地址进行转发,而不太采取集线器的广播方法,从理论上讲,通过互换设置装备摆设对网络进行分段后,sniffer 将无法透过边界而窥伺另一边的数据包。但是,请注意:这是在边界设置装备摆设不转发广播包的情况下(这也是通常的网络情况)。一旦入侵者使用spoofer诱骗某个边界设置装备摆设而将本身的广播包流入不应进入的网段后,原理上照旧在一个共享设置装备摆设端使用sniffer,而现实大将是听到了边界的另一边).当然,这样会牵涉到ip欺诈和Mac欺诈的题目,但是,你别忘了,sniffer和spoofer是很少分开来的。
<2>加密
如今有许多软件包可用于加密连接,从而使入侵者纵然捕获到数据,但无法将数据解密而失去窃听的意义。
<3>入侵检测
使用诸如Tripwire之类的工具,天生文件系统的MD5"数据指纹",实时发明被修正的系统文件;
<4>使用antisniffer软件
一些盛行的检测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版本上的源码版本。
我下面介绍一下sentinel的用法:
Sentinel重要是设计思想是portable,arrcurate implementation,就是说小巧点,精确实现几个熟知的杂乱方法探测技能。此中Sentinel支持三种要领的远程杂乱探测形式:DNS测试, Etherping测试,和ARP测试,此中还有一种ICMPping Latency(ICMP PING反响工夫)正在开发中。
此程序必要Libnet和libpcap库来支持,各人可以到下面的地址去下载:
LIbnet 1.0: http://www.packetfactory.net/Projects/libnet
libpcap 0.4: ftp://ftp.ee.lbl.gov/libpcap-0.4.tar.Z
起首说下它此中使用的三种形式:
--ARP测试形式:
这种要领是接纳发送一个ARP请求,此中包含所有正确信息除了伪造的目标主机MAC硬件地址给我们的目标主机,这样如果目标主机没有处于杂乱形式,它将不会理睬这些信息包,由于这些信息包其认为不是指定给它们的,所以不会进行相应和复兴,但如果此目标机器处于杂乱形式,ARP请求就会产生并进行内核处置惩罚,通过机器的回应信息我们就可以晓得其处于杂乱形式。这种要领结合内核的特性来查看机器的运作状态,请看下面的Etherping 测试形式。
-- DNS测试形式:
DNS测试重要是针对网络数据网络工具能执行IP到名字反转解析来提供DNS名字来代替IP地址(The DNS tests operate on the premise that many
attacker network data gathering tools perform IP to name
inverse resolution to provide DNS names in place of IP addresses)。在执行反转查询中,工具会从主动网络工具形式转变为自动网络工具,而那些没有监视网络书记的工具就不会去解析信息包中的IP地址。使用这种信息,ANTI SNIFFER工具可以本身在当地主机中变为杂乱形式并在我们网络中发送有数个伪造的主机,这样,ANTI SNIFFER工具就可以嗅探DNS请求来查看目标能否在请求解析那些不存在主机。
--Etherping 测试形式:
Etherping 测试形式依赖于目标主机的内核,也就所谓的内核测试。在通常情况下,硬件网络接口卡过滤和抛弃那些MAC地址不同于本身机器上的MAC地址的信息包大概不是广播Ethernet 地址的地址。就是说信息包是正确和现实的Ethernet地址大概是广播Ethernet地址,接口就会把这些地址COPY和传递给内核进行进一步处置惩罚。
但某些系统假定包含在以太帧中的数据包含某个目标主机中正确的IP地址大概广播地址,但具有不同于当地主机的MAC地址,当 NIC设置为杂乱形式,发送给目标主机的每个数据包它照旧傻傻的传递给操作系统进行分析。这样通过发送包含正确IP地址和不正确MAC地址的ICMP ECHO包给要检测的主机,如果目标主机回应了我们的请求,我们就晓得其处于杂乱形式了。
多种LINUX内核存在这种题目,此中NETBSD也可以使用这个题目来检测杂乱形式,但必要使用广播地址的信息包,这种信息包使用带伪造ether帧的IP地址,如66:66:66:66:66:66.
关于WINDOWS95,98,NT的操作系统在杂乱形式中确实是查抄信息包ETHER地址的,如果信息包的NIC ETHER地址切合当地主机就让货仓来处置惩罚。但WINDOWS对广播的ether信息包存在题目,在普通情况下,如机器不在杂乱形式下,NIC只把含有起本身MAC地址的信息包大概ether地址是ff:ff:ff:ff:ff:ff传递给内核。但当在杂乱形式中驱动程序是查抄ETHER地址,但它只查抄 ETHER地址的第一个八未组能否为Oxff就来果断信息包能否为广播大概其他,因此如果我们建立一个包含EHTER地址为ff:00:00:00: 00:00的IP正确的信息包并发送给目标机器,如果其进行了相应的回应,就表示起处于杂乱形式。
但对WINDOWS的这种要领是依赖于所用的驱动程序的,默许的微软驱动程序有此特性并且大少数供应商的驱动程序也有此特性,但某些NIC过滤广播只是寄托第一个八为组,所以这些卡不适合此要领。
--网络和机器的反响工夫测试(也可以说ICMP PING反响工夫):
这种形式是比较有用的测试要领,依据是靠对操作系统的影响来测试。但此中的弊端就是这些测试会在短期内产生一些少数量的网络通讯。
这些测试假定当网络卡不处于杂乱形式时提供硬件过滤,这样的话,信息包不是指定给本身机器的将被网络卡抛弃。当在这中情况下,在网络通讯信息量将静态增长对操作系统的影响很小,相反的处于杂乱状态的机器由于不对这层进行过滤,就把这些信息传递给系统大概用户形式进行过滤,会对操作系统产生比较大的影响。简略的说,我们先正常情况下PING一机器,再我们构建很多伪造的TCP连接来ping程序来ping目标,并且注意RTT(round trip time),这样处于杂乱形式的机器由于会处置惩罚这些垃圾信息包,并影响系统并导致网络反映工夫增长,然厥后比较各个RTT,颠末屡次测试和人工果断就能决议目标机器上能否存在SNIFFER。
Sentinel是根据这些要领来进行测试的程序,是有源代码形式发放的。使用于OPENBSD 2.6 ;FREEBSD 3.X;NETBSD 1.4.1;LINUX2.2.X平台。
编译后使用要领为:
#./sentinel -t 192.168.0.1 -a 是ARP测试。
#./sentinel -t 192.168.0.1 -e 是etherping test;
#./sentinel -t 192.168.0.1 -f 1.1.1.1 -d 是DNS测试;
#./sentinel -t 192.168.0.1 -f 1.1.1.1 -d -a -e 是容许所有形式进行测试;
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|
上一篇: 黑客知识之Sniffer、黑客和网络管理
下一篇: Sniffer抓包嗅探法