嗅探器
目录
嗅探器可以作为能够捕获网络报文的设备,ISS为嗅探器这样定义:嗅探器是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具、嗅探器的正当用处在于分析网络的流量,以便找出所关心的网络中潜在的问题。
嗅探器在功能和设计方面有很多不同。有些只能分析一种协议,而另一些可能能够分析几百种协议。
大多数嗅探器支持的协议类型:
(1)标准以太网
(2)TCP/IP
(3)IPX
(4)DECNet
嗅探器与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器则捕获真实的网络报文。
以太网sniffing是指对以太网设备上传送的数据包进行侦听,发现感兴趣的包。如果发现符合条件的包,就把它存到一个log文件中去。通常设置的这些条件是包含字"username"或"password"的包。它的目的是将网络层放到promiscuous模式,从而达到目的。
Promiscuous模式是指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。一个设备要向某一目标发送数据时,它是对以太网进行广播的。一个连到以太网总线上的设备在任何时间里都在接受数据。不过只是将属于自己的数据传给该计算机上的应用程序。利用这一点,可以将一台计算机的网络连接设置为接受所有以太网总线上的数据,从而实现嗅探功能。
嗅探器通常运行在路由器,或有路由器功能的主机上。这样就能对大量的数据进行监控。嗅探器属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用嗅探器这种攻击手段,以便得到更多的信息。
嗅探器除了能得到口令或用户名外,还能得到更多的其他信息,比如一个其他重要的信息,在网上传送的金融信息等等。嗅探器几乎能得到任何以太网上的传送的数据包。黑客会使用各种方法,获得系统的控制权并留下再次侵入的后门,以保证嗅探器能够执行。在Solaris 2.x平台上,嗅探器 程序通常被安装在/usr/bin 或/dev目录下。黑客还会巧妙的修改时间,使得嗅探器程序看上去是和其它系统程序同时安装的。大多数以太网嗅探器程序在后台运行,将结果输出到某个记录文件中。黑客常常会修改ps程序,使得系统管理员很难发现运行的嗅探器程序。 以太网嗅探器程序将系统的网络接口设定为混合模式。这样,它就可以监听到所有流经同一以太网网段的数据包,不管它的接受者或发送者是不是运行嗅探器的主机。 程序将用户名、密码和其它黑客感兴趣的数据存入log文件。黑客会等待一段时间 ----- 比如一周后,再回到这里下载记录文件。
通常情况下,在同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其他网络接口的硬件地址,同时,每个网络至少还要一个广播地址。(代表所有的接口地址),在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:
(1)帧的目标区域具有和本地网络接口相匹配的硬件地址。
(2)帧的目标区域具有"广播地址"。
在接受到上面两种情况的数据包时,nc通过cpu产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。 而嗅探器就是一种能将本地nc状态设成promiscuous状态的软件,当nc处于这种"混杂"方式时,该nc具备"广播地址",它对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
可见,嗅探器工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:嗅探器是极其安静的,它是一种消极的安全攻击。
NetXray 是一款常用的嗅探器,也是个功能强大的软件,他具备了常用的嗅探功能,并且使用方便。NetXray 的具体用法和步骤:
(1)整体轮廓:因为NetXray是英文版的,对讨厌E文的朋友来说是件令人头疼的事,所以先了解大体的筐架是有必要的:NetXray的主界面:菜单栏有六个选项,分别为文件(file)、捕获(capture)、包(packet)、工具(tools)、窗口(window)和帮助(help)。它的工具栏里集合了大部分的功能,依次为:打开文件(Open)、保存(Save)、打印(Print)、取消打印(Abort Printing)、回到第一个包(First Packet)、前一个包(Previous)、下一个包(Next)、到达最后一个包(Last Packet)、仪器板(Dashboard)、捕获板(Capture Panel)、包发生器(Packet Generator)、显示主机表(Host Table)等。NetXray的大部分功能都能用工具栏里的按钮实现。
(2)确定目标:依次点击:Capture菜单中Capture Filter Setting,单击Profilems选择New,进入如下对话(图2),在New Profile Name中输入First,以Default为模板选择OK,然后选择Done,在New Profile Name中输入First,以Default为模板选择OK,然后Done。设置过滤所有目标IP是xxx.xxx.xxx.xxx的报文,即指向Any输入:xxx.xxx.xxx.xxx现在就可以开始抓包了,同时用IE登陆你刚才输入的IP,会发现NetXray窗口中的指针在移动,等到他提示你过滤到包后,就可以停止抓包了。选中一个目标IP是xxx.xxx.xxx的报文,选择菜单条中的PacketàEdit Display Filte,选择"Data Pattern",选择"Add Pattern",到TCP层选中8080目标端口,用鼠标选择"set data",在name中输入"TCP"。点击OK,确定,然后在Packet中选择"Apply Display Filter"。以后用proxy规则过滤将只过滤目标IP是xxx.xxx.xxx.xxx、目标端口是8080的报文。
(3)设定条件(端口):确定好了目标,先面来设定嗅探的条件:依次选择:Filter SettingàData Pattern,举一例说明:过滤经过bbs(端口2323)的IP包,先选中第一行,用Toggle AND/OR调整成OR,如下图(图3)选择Edit Pattern,在弹出的对话框里设置:Packet 34 2 Hex(十六进制),从顶头开始填写 09 13,(因为十进制的2323对应十六进制的0x0913),而IP包使用网络字节顺序,高字节在低地址。起名为beginbbs,单击OK,再次选择Edit Pattern,Packet 36 2 Hex 从顶头开始填写 09 13 起名为endbbs,单击OK。于是最外层的OR下有两个叶子,分别对应两个Pattern。NetXray所谓的高级协议过滤事实上就是端口过滤,用上面介绍的方法指定源端口、目标端口均过滤0x00 0x17(23),就可以达到和指定telnet过滤一样的效果。因为telnet就是23端口,所以如果想捕捉一个非标准telnet的通信,必须自己指定端口过滤。如果是分析telnet协议并还原屏幕显示,只需要抓从server到client的回显数据即可,因为口令不回显,这种过滤规则下抓不到口令明文。用NetXray抓从client到server包,指定过滤PASS关键字。
网络监听技术出现了新的重要特征。传统的嗅探器技术是被动地监听网络通信、用户名和口令。而新的嗅探器技术出现了主动地控制通 信数据的特点,把嗅探器技术扩展到了一个新的领域。Dug Song写的Dsniff的工具是第一批扩展了传统的嗅探器概念的监听工具。 Dsniff制造数据包注入到网络,并将通信数据重定向到攻击者的机器。在这种方式下,Dsniff允许攻击者在交换环境的网络内窃听数据,甚至在攻击者 和攻击目标不在同一个Lan(局域网)的情况下,也能使攻击者收集到他想要的数据。它支持telnet 、ftp、smtp、pop、imap、http,以及其他的一些应用协议,如果你只想获得用户主机的口令和用户名的话,就请选择dsniff。
libpcap是Unix或Linux从内核捕获网络数据包的必备工具, 它是独立于系统的API接口, 为底层网络监控提供了一个可移植的框架, 可用于网络统计收集、安全监控、网络调试等应用. 很多Unix或Linux下的网络程序都需要libpcap才能够运行。Windows平台下类似的程序为Winpcap。
WinPcap类似于libpcap, 支持Win32平台, Winpcap提供了3个模块:NPF(Netgroup Packet Filter,内核级的数据报过滤器),packet.dll(底层的动态连接库),wpcap.dll(架构在packet.dll之上,提供了更方便、更直接的编程方法)。 很多网络工具(嗅探器等)都是使用Winpcap进行开发的, 运行这些网络工具, 均需要安装Winpcap。
NAI 公司出品的嗅探器, 作为NAI公司的主打产品, 价格也是不菲的。嗅探器 Portable 是一系列网络故障和性能管理解决方案, 网络专业人士可以使用它对多拓朴结构和多协议网络进行维护、故障解决、优化调整和扩展. Sniffer Portable 软件可以在桌面机、便携式计算机或者笔记本等硬件平台上运行, 并且可以利用高级自定义硬件组件确保全线速的捕获能力。Sniffer Portable非常出色, 其区别于其它嗅探器主要为以下几个方面:
(1)自定义硬件:通过自定义硬件, 使嗅探器 Portable可以实现线速捕捉、过滤以及触发功能。
(2)详细的报告:可以生成基于 RMON1/RMON2 的图形报告, 以及由 Sniffer Portable 应用程序收集的类似数据. 从带宽使用率到潜在的网络衰减, Sniffer Reporter 提供详尽数据来帮助您规划未来的网络需求. 有关以太网和令牌环的可用报告包括: 主机表、矩阵、协议分发、全局统计及其他报告。
3Sniffer Voice 选项:Sniffer Voice 是一个与 Sniffer Portable 集成的增值包,它提供语音和视频聚合流量的必要信息, 主要用于VoIP网络。
EtherPeek NX 是第一个提供信息包捕获过程中实时进行专业诊断和结构解码的网络协议分析器。EtherPeek NX专门为IT人员设计, 帮助他们分析和诊断日益加速变化的网络数据群, 对现今网络面临的众多故障提供精确和最新的分析。 我收藏的这个版本中包括iNetTools和PacketGrabber两款附带产品, iNetTools提供了一些比较有用的网络工具(Ping,Ping Scan,Trace Route,Name Lookup,Name Scan, DNS Lookup,Port Scan,Service Scan,Finger,Whois以及Throughput), PacketGrabber是一款远程数据报收集程序。同时也提供了Peek SDK, 方便用户自己开发插件,SDK文档在安装路径下1033DocumentsPeek SDK的目录里.适用于Windows的EtherPeek是一种屡受嘉奖的以太网流量和协议分析器。 EtherPeek确立了“轻松使用”的行业标准。EtherPeek 是"全球国际网络测试联盟"从五种网络分析器中评选出的最优产品。
由业内知名公司Eeye出品的嗅探器, Iris的优点在于:便于使用、全面丰富的流量状态和报告、高级数据重建功能、精密的数据包操作和伪造能力、扩展的过滤功能、数据分析能力。
CommView系列是Windows下比较优秀的商业嗅探器产品, 支持NDIS3.0驱动标准, 功能大致上和其他一些嗅探器差不多, 另外, 结合CommView Remote Agent可以实现远程嗅探。
CommView for WiFi 是CommView的特别版本, 设计用来捕获和分析无线网络, 支持802.11a/b/g协议。
CommView Remote Agent 是CommView的专用的、可选的组件, 设计用来进行远程网络监视。
Ettercap 是一套LAN下中间人攻击的工具,属于开源项目, 支持多种平台(Linux, BSD, Windows, Solaris,Mac OS),其功能包括嗅探活动连接、On the Fly模式的内容过滤以及其它一些有趣的欺骗功能。Ettercap 支持主动和被动多种协议的分析,并包括其他网络和主机分析的功能。 另外,Ettercap具有插件功能, 自带不少功能不错的插件,也允许第三方编写插件。在安装了OpenSSL以后可以支持SSH1以及HTTPS。
Ethereal 是全球最流行的网络协议分析器,功能强大而且支持平台最多的一款嗅探器(支持以下平台:Windows, Linux, Solaris, Mac OS, BSD, BeOS, Tru64 Unix, HP-UX, AIX, Irix等)。属于开源项目,支持分析的协议有512种之多, 支持实时和非实时两种模式.Windows下运行需要Winpcap库。
Packetyzer 是为数不多的开源的Windows平台下的优秀嗅探器,支持483种协议,与Neutrino Sensor结合在一起可以截获和分析802.11数据包,Packetyzer的数据报标记色彩功能,但需要安装Winpcap。
Cain & Abel 是一套Windows平台下强大的密码截获与破解工具,把它归纳为嗅探器里面来, 主要是因为Cain & Abel主要的功能在于嗅探器方面, 它支持共享环境和交换环境下进行截获, Cain 和 Abel是分开的的两个工具(Cain作为客户端,Abel作为服务端)。
Tcpdump是一款众人皆知和受人喜欢的基于命令行的网络数据包分析和嗅探工具。 它能把匹配规则的数据包的包头给显示出来,使用TCPDump去查找网络问题或者去监视网络上的状况. WinDump是Tcpdump在Windows平台上的移植版。 Dsniff dsniff 是一个 UNIX 可执行工具的集合, 它是为执行网络审核和网络渗透而设计的,拥有ARP欺骗功能,是最早具有交换环境下嗅探功能的嗅探器。一个早期版本(1.8)已经被移植到 Windows 下。
Sniffit是由Lawrence Berkeley Laboratory开发的,可以在Linux、Solaris、SGI、Windows等各种平台运行的嗅探器,提供了不少商业版嗅探器所没有的功能,支持脚本和插件功能。另外可以使用tod(Touch of Death)插件,tod通过向目标机器发送RST包来切断目标机器的TCP连接 Windows版本由Symbolic迁移, 运行需要Winpcap。
Windows 平台下交换网络的嗅探器。
Windows 平台下交换网络的嗅探器. 另外在流光5中, 增加了Remote ANS(Remote ARP Network 嗅探器)功能,这个工具采用了Sensor/GUI的结构. 运行需要Winpcap。
嗅探器所获取的内容可以分成这样几类:
这是绝大多数非法使用嗅探器的理由,嗅探器可以记录到明文传送的嗅探器和passwd.就算你在网络传送过程中使用了加密的数据,嗅探器记录的数据一样有可能使入侵者在家里边吃肉串边想办法算出你的算法。
许多用户很放心在网上使用自己的信用卡或现金帐号,然而嗅探器可以很轻松截获在网上传送的用户姓名、口令、信用卡号码、截止日期、帐号和pin。
通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的email会话过程。
危害网络邻居的安全,或者用来获取更高级别的访问权限。
一般检测网络监听的方法通过以下来进行: 网络监听是很难被发现的。当运行监听程序的主机在进听的过程中只是被动的接收在以太网中传输的信息,它不会跟其它的主机交换信息的,也不能修改在网络中传输的信息包。 可以通过ps-ef或者ps-aux来检测,但大多实施监听程序的人都会通过修改ps的命令来防止被ps-ef的。 当运行监听程序的时候主机响应一般会受到影响变的会慢,所以也就有人提出通过响应的速率来判断是否受到监听。
当网内某台机器可能正在实施监听程序的话,可以用正确的IP地址和错误的物理地址去ping它,这样正在运行的监听程序就会做出响应的。这是因为正常的机器一般不接收错误的物理地址的ping信息的。但正在进听的机器就可以接收,要是它的IP stack不再次反向检查的话就会响应的。不过这种方法对很多系统是没效果的,因为它依赖于系统的IP stack。
此外,还可以通过向网上发大量不存在的物理地址的包,而监听程序往往就会将这些包进行处理,这样就会导致机器性能下降,你可以用icmp echo delay来判断和比较它。还可以通过搜索网内所有主机上运行的程序,但这样做其的难度可想而知,因为这样不但是大的工作量,而且还不能完全同时检查所有主机上的进程。可是如果管理员这样做也会有很大的必要性,那就是可以确定是否有一个进程是从管理员机器上启动的。
在Unix中可以通过ps –aun或ps –augx命令产生一个包括所有进程的清单:进程的属主和这些进程占用的处理器时间和内存等。
这些以标准表的形式输出在STDOUT上。如果某一个进程正在运行,那么它将会列在这张清单之中。但很多黑客在运行监听程序的时候会把ps或其它运行中的程序修改成Trojan Horse程序。这种情况下,上述办法是不会有结果的。 Ifstatus是运行在Unix下的工具,它可以识别出网络接口是否正处于调试状态下或者是在进听装下。若网络接口运行这样的模式之下,那么很有可能正在受到监听程序的攻击。Ifstatus一般情况下不会产生任何输出的,当它检测到网络的接口处于监听模式下的时候才回输出。管理员可以将系统的cron参数设置成定期运行Ifstatus,如果有好的cron进程的话可以将它产生的输出用mail发送给正在执行cron任务的人,要实现可以在crontab目录下加****/usr/local/etc/ifstatus一行参数。
抵御监听包括很多方面。一般情况下,监听只对用户口令信息比较敏感。所以对用户信息和口令信息进行加密是完全有必要的。防止以明文传输而被监听到。现代网络中,SSH(一种在应用环境中提供保密通信的协议)通信协议一直都被沿用,SSH所使用的端口是22,它排除了在不安全信道上通信的信息,被监听的可能性使用到了RAS算法,在授权过程结束后,所有的传输都用IDEA技术加密。但SSH并不是完全安全的。
抵御嗅探器监听的方法可以总结为:
(1)检测和消灭嗅探器
(2)将数据隐藏,使嗅探器无法发现
(3)会话加密
附件列表
故事内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
