网络监听技术研究(2011-05-09 22:34:05)转载标签:捕获sniffer监听mac地址交换机数据包数据报杂谈分类:网络及硬件
1 引言
计算机局域网和Internet的发展给个人、企事业单位带来了革命性的改革和发展。
同时又要面对网络开放带来的数据安全的新挑战和新危险;网络的安全访问、黑客的攻击等。
基于对网络安全的考虑,需要一种能够实时的对网络上的数据进行监视的技术,网络监听技术应运而生了。
网络监听也叫嗅探,其英文名是Sniffing,即将网络上传输的数据捕获井进行分析的行为。
网络监听器也叫嗅探器,其英文名是sniffer。
ISS为sniffer这样定义:Sniffer是利用计算机的网络接口捕获目的地为其它计算机的数据报文(数据包)的一种工具。
实际上,Sniffer 就是网络上的“窃听器”。
网络监听器是一种网络监测设备既可以是硬件,也可以是软件,硬件形式的sniffer称为网络分析仪,一般都是商业性的,价格电比较贵。
软件形式的sniffe:在Windows和Unix平台上都很多,其优点是价格便宜,易于学习使用;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的运行情况。
2 网络监听原理
Internet是由众多的局域网所组成,这些局域网一般是以太网、令牌网结构。
数据在这此网络上是以很小的称为帧(Frame)的单位传输的,帧通过特定的网络驱动程序进行成型,然后通过网卡发送到网线上。
由于以太网等很多网络(常见共享HUB连接的内部网)是基于总线方式,物理上是广播的,同一物现网段的所有主机的网卡都能接收到这此以太网帧。
当网络接日处于正常状态时,网卡收到传输来的数据帧,网卡内的芯片程序先接收数据头的目的MAC地址,根据汁算机上的网卡驱动程序设置的接收模式判断该不该接收,如果认为是目的地址为本机地址的数据帧或是广播帧,则接收并在接收后产全中断信号通知CPU,否则就丢弃不管,CPU得到中断信号产生中断,操作系统就根据网卡驱动程序中设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放人堆伐让操作系统处理。
通过修改网卡让其处于一种特殊的工作模式,在这种工作模式下,网卡不对目的地址进行判断,而直接将它收到的所有报文都传递给操作系统进行处理。
这种特殊的工作模式称之为混杂模式(Promiscuous Mode)。
Sniffer就是通过将网卡设置为混杂模式,它对遇到的侮一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
Sniffer工作在网络环境中的底层,它会捕获所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容.进而分析所处的网络状态和整体布局。
3 网络监听系统组成部分
如图1展示了一个监听系统大体框架。
网络硬件设备:如网卡、集线器、路由器等。
捕获驱动程序:控制网络硬件从信道上抓取数据,并将数据存人缓冲器。
过滤驭动程序:捕获数据流,进行过滤并把数据存人缓冲区。
缓冲器:用来存放捕获到的数据的容器。
由于缓冲器容量有限,监听器使用缓冲器时,通常有两种方式:一是如果缓冲器满,马上停止捕获;二是缓冲器满了还继续捕获,但是新的数据会筱盖旧的数据。
实时分析程序:实时对数据包分析统计,目的是发现网络性能问题和故障,侧重于网络性能和故障方面的问题。
解码程序:将接收到的加密数据进行解密;构造白己的加密数据包并把它发送到网络中。
数据包分析器:对截取到的数据包进行模式匹配和分析.将需要的信息从原始数据包中剥离出来。
4 网络监听的实施环境
监听的实施是有条件的,不可能在互联网上的某台主机上装上监PJ软件,就可以看到整个网络的网络状况网络监听可以在两种环境下实现,一种是利用以太网络的广播特性实现,另一种是通过设置路由器的监听端口实现,两种方式适用于不同的工作情况。
本文中的网络监听实施环境主要讲解在以太网下实现监听,这也是口前比较流向的监听方式。
针对集线器的监听:首先从TCP/IP模型的角度来看数据包在局域网内发送的过程:当数据由应用层自上而下地传递时,在网络层形成IP数据报,再向下到达数据链路层,由数据链路层将IP数据报分割为数据帧,增加以太网包头,再向下一层发送。
需要说明的是.以太网的包头中包含着本机和目标设备的MAC地址,也就是说,数据链路层的数据帧发送时,是依靠4Rbits的以太网地址而非IP地址来确认的,以太网的网卡设备驱动程序不会关心IP 数据报中的目的IP地址,它所需要的仅仅是MAC地址。
当局域网内的主机通过HUB连接时,HUB的作用就是局域网上面的一个共享的广播媒体,所有通过局域网发送的数据首先被送到HUB,然后HUB将接收到的所有数据向它的每个端口转发。
只要将某台主机的网卡设置为棍杂模式,就可以接收到局域网内所有主机间的数据传输。
针对交换机的监听:不同于下作在物理层的HUB,交换机是工作在数据链路层的。
交换机在工作时维护着一张ARP的数据库表,在这个库中记录着交换机每个端Q所绑定的MAC地址,当有数据报发送到交换机时,交换机会将数据报的目的做C地址与自己维护的数据库内的端口对照,然后将数据报发送到“相应的”端口上,交换机转发的报文是一一对应的。
对交换机而言,仅有两种情况会发送广播方式一是数据报的目的MAC地址不在交换机维护的数据库中,此时报文向所有端口转发;二是报文本身就是广播报文。
因此,基于交换机以太网建立的局域网并不是真正的广播媒体,交换机限制了被动监听工具所能捕获的数据。
为了实现监听的目的,可以采用MAC flooding和ARP欺骗等方法。
MAC flooding:通过在局域网上发送大量随机的MAC地址,以造成交换机的内存耗尽,当内存耗尽时,一些交换机便开始向所有连在它上面的链路发送数据。
ARP欺骗:ARP协议的作用是将IP地址映射到MAC地址,攻击者通过向目标主机发送伪造的ARP应答包,骗取目标系统更新ARP表,将日标系统的网茉的MAC地址修改为发起攻击的主机MAC地址,使数据包都经由攻击者的主机。
这样,即使系统连接在交换机上,也不会影响对数据包的窃取,因此就可轻松地通过交换机来实现网络监听。
5 网络监听工具
目前存在许多网络监听工具,这里对其中比较有代表性的几个监听工具进行了分析。
Network General:Network General开发了多种产品。
最重要的是Expert Sniffer,它不仅仅可以sniffing,还能够通过高性能的专门系统发送/接收数据包。
还有一个增强产品Distrbuted Sniffer System,可以将UNIX工作站作为sniffer控制台,而将Sniffer Agents分布到远程主机上。
Misrosofts Net Monitor:对于某些商业站点,可能同时需要运行多种协议如NetBEUI,IPX/SPX ,TCP/IP,802.3和SNA等。
这时很难找到一种sniffer帮助解决网络问题,因为许多Sniffer往往将某些正确的协议数据包当成了错误数据包。
Microsoft的Net Monitor可以解决这个难题。
它能够正确区分诸如Netware控制数据包,NetBios名字服务广播等独特的数据包。
VVinDump:最经典的Unix平台上的tepdump的Windows移植版,和tepdump几乎完全兼容.采用命令行方式运行。
Sniffit:由Lawrence Berkeley实验室开发,运行于Solaris和Linux等平台。
可以选择源、目标地址或地址集合,还可以选择监听的端口、协议和网络接口等。
Tcpdump:最经典的网络监听工具,被大量的Uni、系统采用。
另外,还有Iris,Linsniffer,ESniffer,So1Sniffer,Wireshark(Ethereal)等等网络监听工具,这里就不再累述。
6 总结
随着互联网的迅猛发展,对千网络的攻防技术将日新月异,网络监听技术也将快速发展。
本文讨论了网络监听技术的基本原理,以及通用的系统的组成结构和具体的网络监听实施的环境,在此基础上介绍了部分通用的网络监听工具并进行了比较。
为学习和熟悉网络监听技术提供了有益的帮助。