分享
 
 
 

深入学习sniffer

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

随着Internet及电子商务的日益普及,Internet的安全也越来越受到重视。而在Internet安全隐患中扮演重要角色的是Sniffer和Scanner,本文将介绍Sniffer以及如何阻止sniffer。

大多数的黑客仅仅为了探测内部网上的主机并取得控制权,只有那些"雄心勃勃"的黑客,为了控制整个网络才会安装特洛伊木马和后门程序,并清除记录。他们经常使用的手法是安装sniffer。

在内部网上,黑客要想迅速获得大量的账号(包括用户名和密码),最为有效的手段是使用 "sniffer" 程序。这种方法要求运行Sniffer 程序的主机和被监听的主机必须在同一个以太网段上,故而在外部主机上运行sniffer 是没有效果的。再者,必须以root的身份使用sniffer 程序,才能够监听到以太网段上的数据流。

黑客会使用各种方法,获得系统的控制权并留下再次侵入的后门,以保证sniffer能够执行。在Solaris 2.x平台上,sniffer 程序通常被安装在/usr/bin或/dev目录下。黑客还会巧妙的修改时间,使得sniffer程序看上去是和其它系统程序同时安装的。

大多数 "ethernet sniffer"程序在后台运行,将结果输出到某个记录文件中。黑客常常会修改ps程序,使得系统管理员很难发现运行的sniffer程序。

"ethernet sniffer"程序将系统的网络接口设定为混合模式。这样,它就可以监听到所有流经同一以太网网段的数据包,不管它的接受者或发送者是不是运行sniffer的主机。 程序将用户名、密码和其它黑客感兴趣的数据存入log文件。黑客会等待一段时间 ----- 比如一周后,再回到这里下载记录文件。

一、什么是sniffer

与电话电路不同,计算机网络是共享通讯通道的。共享意味着计算机能够接收到发送给其它计算机的信息。捕获在网络中传输的数据信息就称为sniffing(窃听)。

以太网是现在应用最广泛的计算机连网方式。以太网协议是在同一回路向所有主机发送数据包信息。数据包头包含有目标主机的正确地址。一般情况下只有具有该地址的主机会接受这个数 据包。如果一台主机能够接收所有数据包,而不理会数据包头内容,这种方式通常称为"混杂" 模式。

由于在一个普通的网络环境中,帐号和口令信息以明文方式在以太网中传输,一旦入侵者获 得其中一台主机的root权限,并将其置于混杂模式以窃听网络数据,从而有可能入侵网络中的所有计算机。

二、sniffer工作原理

通常在同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其他网络接口的硬件地址,同时,每个网络至少还要一个广播地址。(代表所有的接口地址),在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:

1、帧的目标区域具有和本地网络接口相匹配的硬件地址。

2、帧的目标区域具有"广播地址"。

在接受到上面两种情况的数据包时,nc通过cpu产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。

而sniffer就是一种能将本地nc状态设成(promiscuous)状态的软件,当nc处于这种"混杂"方式时,该nc具备"广播地址",它对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。(绝大多数的nc具备置成promiscuous方式的能力)

可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。

通常sniffer所要关心的内容可以分成这样几类:

1、口令:

我想这是绝大多数非法使用sniffer的理由,sniffer可以记录到明文传送的userid和passwd.就算你在网络传送过程中使用了加密的数据,sniffer记录的数据一样有可能使入侵者在家里边吃肉串边想办法算出你的算法。

2、金融帐号:

许多用户很放心在网上使用自己的信用卡或现金帐号,然而sniffer可以很轻松截获在网上传送的用户姓名、口令、信用卡号码、截止日期、帐号和pin。

3、偷窥机密或敏感的信息数据:

通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的email会话过程。

4、窥探低级的协议信息:

这是很可怕的事,我认为,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口ip地址、ip路由信息和tcp连接的字节顺序号码等。这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用sniffer收集这些信息只有一个原因:他正在进行一次欺诈,(通常的ip地址欺诈就要求你准确插入tcp连接的字节顺序号,这将在以后整理的文章中指出)如果某人很关心这个问题,那么sniffer对他来说只是前奏,今后的问题要大条得多。(对于高级的hacker而言,我想这是使用sniffer的唯一理由吧)。

三、哪里可以得到sniffer

Sniffer是黑客们最常用的入侵手段之一。你可以在经过允许的网络中运行sniffer,了解它是如何有效地危及本地机器安全。

Sniffer可以是硬件,也可以是软件。现在品种最多,应用最广的是软件Sniffer, 绝大多数黑客们用的也是软件Sniffer。

以下是一些也被广泛用于调试网络故障的sniffer工具:

商用sniffer:

1 Network General.

Network General开发了多种产品。最重要的是Expert Sniffer,它不仅仅可以sniff,还能够通过高性能的专门系统发送/接收数据包,帮助诊断故障。还有一个增强产品"Distrbuted SnifferSystem"可以将UNIX工作站作为sniffer控制台,而将snifferagents(代理)分布到远程主机上。

2 Microsofts Net Monitor

对于某些商业站点,可能同时需要运行多种协议--NetBEUI、IPX/SPX、TCP/IP、802.3和SNA等。这时很难找到一种sniffer帮助解决网络问题,因为许多sniffer往往将某些正确的协议数据包当成了错误数据包。Microsoft的Net Monitor(以前叫Bloodhound)可以解决这个难题。它能够正确区分诸如Netware控制数据包、NTNetBios名字服务广播等独特的数据包。(etherfind只会将这些数据包标识为类型0000的广播数据包。)这个工具运行在MS Windows平台上。它甚至能够按MAC地址(或主机名)进行网络统计和会话信息监视。只需简单地单击某个会话即可获得tcpdump标准的输出。过滤器设置也是最为简单的,只要在一个对话框中单击需要监视的主机即可。

免费软件sniffer

1 Sniffit由Lawrence Berkeley 实验室开发,运行于Solaris、SGI和Linux等平台。可以选择源、目标地址或地址集合,还可以选择监听的端口、协议和网络接口等。这个SNIFFER默认状态下只接受最先的400个字节的信息包,这对于一次登陆会话进程刚刚好。

2 SNORT:这个SNIFFER有很多选项供你使用并可移植性强,可以记录一些连接信息,用来跟踪一些网络活动。

3 TCPDUMP:这个SNIFFER很有名,linux,FREEBSD还搭带在系统上,是一个被很多UNIX高手认为是一个专业的网 络管理工具,记得以前TsutomuShimomura(应该叫下村侵吧)就是使用他自己修改过的TCPDUMP版本来记录了KEVINMITNICK攻击他系统的记录,后来就配合FBI抓住了KEVINMITNICK,后来他写了一文:使用这些LOG记录描述了那次的攻击,How Mitnick hacked Tsutomu Shimomura with an IP sequence attack

(http://www.attrition.org/security/newbie/security/sniffer/shimomur.txt)

4 ADMsniff:这是非常有名的ADM黑客集团写的一个SNIFFER程序。

5 linsniffer:这是一个专门设计杂一LINUX平台上的SNIFFER。

6 Esniffer:这个也是一个比较有名的SNIFFER程序。

7 Solsniffer:这是个Solarissniffer,主要是修改了SunSniff专门用来可以方便的在Solair平台上编译。

8 Ethereal是一基于GTK+的一个图形化Sniffer。

9 Gobbler(for MS-DOS&Win95)、Netman、NitWit、Ethload...等等。

四、sniffer的安装使用

我主要以sniffit为例分别介绍在nt和linux下的应用。

[1] 在linux下的sniffit安装:

软件的安装

1、用tarzvfxsniffit.*.*.*.tgz将下载下来的sniffit.*.*.*.tgz解压缩

到你想要的目的文件夹,如果版本是0.3.7的话,你会看到该目录下出现一个sniffit.0.3.7的目录。

2、cd sniffit.0.3.7

3、./configure && make,只要在这个过程中终端上没有意外的error信息出现,你就算编译成功了--可以得到一个二进制的sniffit文件。

4、makeclean把不用的垃圾扫掉……

使用方法

1、参数,有如下的命令选项:

-v显示版本信息

-t让程序去监听指定流向某IP的数据包

-s让程序去监听从某IP流出的IP数据包,可以使用@通配符

-t199.145.@

-i显示出窗口界面,能察看当前在你所属网络上进行连接的机器

-I扩展的交互模式,忽略所有其它选项,比-i强大得多……

-c利用脚本来运行程序

-F强制使程序使用网络硬盘

-n显示出假的数据包。象使用ARP、RARP或者其他不是IP的数据包也会显示出来

-N只运行plugin时的选项,使其它选项失效

在-i模式下无法工作的参数:

-b同时做-t和-s的工作……

-d将监听所得内容显示在当前终端--以十六进制表示

-a将监听所得内容显示在当前终端--以ASCII字符表示

-x打印TCP包的扩展信息(SEQ,ACK,Flags),可以与-a,-d,-s,-t,-b一起运作,注意--它是输出在标准输出的,如果只用-t,-s,-b 而没有其它参数配合的话不会被写入文件

-R将所有通信记录在文件中

-r这一选项将记录文件送往sniffit,它需要-F的参数配合指明设备,假设你用eth0(第一块网卡)来记录文件,你必须在命令行里面加上-Feth0或者或者或者或者或者-Feth-A遇到不认识的字符时用指定的字符代替

-P定义监听的协议,DEFAULT为TCP--也可以选IP、ICMP、UDP……

-p定义监听端口,默认为全部

-l设定数据包大小,default是300字节

-M激活插件

-I,-i模式下的参数

-D所有的记录会被送到这个磁盘上

-c模式下的参数

-L

其中logparam可以是如下的内容:

raw:轻度

norm:常规

telnet:记录口令(端口23)

ftp:记录口令(端口21)

mail:记录信件内容(端口25)

比如说"ftpmailnorm"就是一个合法的logparam

2、图形仿真界面

就是上面所说的-i选项啦,我们输入sniffit-i会出现一个窗口环境,从中可以看到自己所在的网络中有哪些机器正在连接,使用什么端口号,其中可用的命令如下:

q退出窗口环境,结束程序

r刷新屏幕,重新显示正在在连线的机器

n产生一个小窗口,包括TCP、IP、ICMP、UDP等协议的流量

g产生数据包,正常情况下只有UDP协议才会产生,执行此命令要回答一些关于数据包的问题

F1改变来源网域的IP地址,默认为全部

F2改变目的网域的IP地址,默认为全部

F3改变来源机器的端口号,默认为全部

F4改变目的机器的端口号,默认为全部

一些示例

假设有以下的设置:在一个子网中有两台主机,一台运行了sniffer,我们称之为sniffit.com,另一台是66.66.66.7,我们称之为target.com。

<1>你希望检查sniffer是否能运行sniffit:~/#sniffit-d-p7-t66.66.66.7,并且开另一个窗口:

sniffit:~/$telnettarget.com7,你可以看到sniffer将你telnet到对方7号端口echo服务的包捕获了。

<2>你希望截获target.com上的用户密码sniffit:~/#sniffit-p23-t66.66.66.7

<3>target.com主机的根用户声称有奇怪的FTP连接并且希望找出他们的击键sniffit:~/#sniffit-p21-l0-t66.66.66.7

<4>你希望能阅读所有进出target.com的信件sniffit:~/#sniffit-p25-l0-b-t66.66.66.7&,或者sniffit:~/#sniffit-p25-l0-b-s66.66.66.7&

<5>你希望使用用户交互界面sniffit:~/#sniffit-i

<6>有错误发生而且你希望截获控制信息sniffit:~/#sniffit-Picmp-b-s66.66.66.7

<7>Gowildonscrollingthescreen. sniffit:~/#sniffit-Pip-Picmp-Ptcp-p0-b-a-d-x-s66.66.66.7,与之效果相当的是sniffit:~/#sniffit-Pipicmptcp-p0-b-a-d-x-s66.66.66.7

<8>你可以用more66*读取下列方式记录下的密码sniffit:~/#sniffit-p23-A.-t66.66.66.7,或者sniffit:~/#sniffit-p23-A^-tdummy.net

高级应用

1、用脚本执行

这是配合选项-c的,其执行方法也很简单,比如以如下方式编辑一个叫sh的文件

selectfromhost180.180.180.1

selecttohost180.180.180.10

selectbothport21

然后执行:sniffit-csh

说明:监听从180.180.180.1送往180.180.180.10的数据包,端口为FTP口。这里不做更多说明,你可以自己去看里面的README。

2、插件

要获取一个插件是很简单的,你将它放入sniffit的目录下,并且象如下方式编辑sn_plugin.h文件:

#definePLUGIN1_NAME"Myplugin"

#definePLUGIN1(x)main_plugin_function(x)

#include"my_plugin.plug"

注意:

a)你可以让plugin从0-9,所以从PLUGIN0_NAME到PLUGIN1_NAME……不必是连续的

d)#include"my_plugin.plug"这是我的插件源代码放置的地方。如果想详细了解的话,还是看看里面的plugin.howto吧。

3、介绍tod

这东东便是sniffit最有名的一个插件了,为什么叫TOD呢--touchofdeath,它可以轻易地切断一个TCP连接,原理是向一个TCP连接中的一台主机发送一个断开连接的IP包,这个IP包的RST位置1,便可以了。

下载下来的tod.tar.gz拷贝到sniffit所在目录下,解压安装后ln-stodsniffit_key5,就可以将这相程序与F5键连接起来,想切断哪台机器的话,只要在窗口中将光标指到需要断线的机器上按下F5键就可以了。你可以自由地定义成其它的F功能键--F1~F4不行,它们已经被定义过了……

[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-

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有