有关Sniffer的整理笔记,欢迎大家到我的blog上看一些别的文章
Andy7
分为一下部分:
Sniffer前言
一.什么是sniffer?
二.Sniffer的工作原理。
三.Sniffer做什么用?
四.如何防范sniffer?
Sniffer前言
无间道这个电影好看吧,反正我是喜欢。当初一个礼拜看了3编,当然是第一部。里面的刘德华和梁朝伟是做什么工作的?卧底,都知道卧底是做什么的吧?呵呵,打入敌人内部,获取信息,然后报告给组织。那么今天提到这个sniffer在网路里就是干这事的。理解 ?
么有。这样都理解不了。那就好好看下面的文章。
一.什么是sniffer?
sniffer用英文翻译的意思为"嗅探器",是一种常用的收集有用数据方法。数据(用户的帐号,密码拉呵呵)!当然在这里sniffer扮演的是安全隐患的角色(黑客的工具)。但是对于网络人员来说他又是一个好的网络分析工具。
通常黑客在侵入到别的网络后,为了控制整个网络会安装木马或一些后门程序。并清除记录。他们经常使用的手法就是安装sniffer。在内网,因为使用sniffer可以迅速获得大量的帐号。最为有效的手段就是使用sniffer。有这么棒,好让我们来看看它的工作原理。
二.Sniffer的工作原理。
在理解sniffer工作原理之前呢我们先来看看网卡的工作原理。
NIC(网络接口卡)大家知道NIC都有全球唯一的MAC地址,那么在以太网上通信时候NIC是如何工作?这个也好理解。在NIC有两种工作模式:
普通模式
混合模式
当NIC处于普通模式时,NIC只响应这样两种数据帧:
1. 帧的目标区域具有和本地网卡相匹配的硬件地址。
2. 帧的目标区域具有广播地址。
OK!通常我们的网卡处于这种普通模式下。
那么那个混合模式是如何工作的呢?当网卡处于混合模式是接收任何的数据帧,当然是在同一个网段内了。比如总线型的网络,或是hub连的网络。
Sniffer就是一种将本地的网卡状态设为混合模式(promiscuous)的软件。当处于混合模式时。该网卡具备广播地址,它对所有遭遇到的每个帧都产生一个硬件中断。以便提醒操作系统处理流经该物理媒体上的每个数据报文。
哈哈哈。知道sniffer工作在网络的底层了吧,数据链路层。它会拦截所有的正在网络上传送的数据,并通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体的布局,值的注意的是:sniffer是极其安静的,消极的安全攻击。
三.Sniffer做什么用?
可能谁都回知道谁会使用sniffer,但是并不是每个使用它的人都是网络高手,因为现在有很多的sniffer都成了傻瓜似的了,前段时间用的最多的不外乎oicqsniffer。我想那些喜欢查好友ip的朋友都应该记得它吧。呵呵,我都使用过它,现在当然不用了啊!
当然系统管理员使用sniffer来分析网络信息交通并且找出网络上何处发生问题。一个安全管理员可以同时用多种sniffer,将它们放置在网络的各处,形成一个入侵警报系统。对于系统管理员来说sniffer是一个非常好的工具,但是它同样是一个经常被黑客使用的工具.骇客安装sniffer以获得用户名和账号,信用卡号码,个人信息,和其他的信息可以导致对你或是你的公司的极大危害如果向坏的方面发展。当它们得到这些信息后,骇客将使用密码来进攻其他的internet站点甚至倒卖信用卡号码。
四.如何防范sniffer?
下面的内容转自网上的。嘿嘿,写的不错。表扬一下!
1.怎样发现 Sniffer
Sniffer最大的危险性就是它很难被发现,在单机情况下发现一个Sniffer还是比较容易的,可以通过查看计算机上当前正在运行的所有程序来实现,当然这不一定可靠。
在UNIX系统下可以使用下面的命令:ps-aux。这个命令列出当前的所有进程、启动这些进程的用户、它们占用CPU的时间以及占用多少内存等等。
在Windoos系统下,可以按下Ctrl+Alt+Del键,查看任务列表。不过,编程技巧高的Sniffer即使正在运行,也不会出现在这里。
另一个方法就是在系统中搜索,查找可怀疑的文件。但人侵者用的可能是他们自己写的程序,所以这给发现Sniffer造成相当大的困难。还有许多工具能用来查看你的系统会不会处于混杂模式,从而发现是否有一个Sniffer正在运行。 但在网络情况下要检测出哪一台主机正在运行Sniffer是非常困难的,因为Sniffer是一种被动攻击软件,它并不对任何主机发出数据包,而只是静静地运行着,等待着要捕获的数据包经过。
2.抵御 Sniffer
虽然发现一个Sniffer是非常困难的,但是我们仍然有办法抵御Sniffer的嗅探攻击。既然Sniffer要捕获我们的机密信息,那我们干脆就让它捕获,但事先要对这些信息进行加密,黑客即使捕捉到了我们的机密信息,也无法解密,这样,Sniffer就失去了作用。
黑客主要用Sniffer来捕获Telnet、FTP、POP3等数据包,因为这些协议以明文在网上传输,我们可以使用一种叫做SSH的安全协议来替代Telnet等容易被Sniffer攻击的协议。
SSH又叫Secure Shell,它是一个在应用程序中提供安全通信的协议,建立在客户/服务器模型上。SSH服务器分配的端口是22,连接是通过使用一种来自RSA的算法建立的。在授权完成后,接下来的通信数据用IDEA技术来加密。这种加密方法通常是比较强的,适合于任何非秘密和非经典的通信。
SSH后来发展成为F-SSH,提供了高层次的、军方级别的对通信过程的加密。它为通过TCP/IP的网络通信提供了通用的最强的加密。如果某个站点使用F—SSH,用户名和口令就不再重要了。目前,还没有人突破过这种加密方法。即使是Sniffer,收集到的信息将不再有价值。有兴趣的读者可以参看与SSH相关的书籍。
另一种抵御Sniffer攻击的方法是使用安全的拓扑结构。因为Sniffer只对以太网、令牌环网等网络起作用,所以尽量使用交换设备的网络可以从最大程度上防止被Sniffer窃听到不属于自己的数据包。还有一个原则用于防止Snther的被动攻击 一个网络段必须有足够的理由才能信任另一网络段。网络段应该从考虑具体的数据之间的信任关系上来设计,而不是从硬件需要上设计。一个网络段仅由能互相信任的计算机组成。通常它们在同一个房间里,或在同一个办公室里,应该固定在建筑的某一部分。注意每台机器是通过硬连接线接到集线器(Hub)的,集线器再接到交换机上。由于网络分段了,数据包只能在这个网段上被捕获,其余的网段将不可能被监听。
所有的问题都归结到信任上面。计算机为了和其他计算机进行通信,它就必须信任那台计算机。系统管理员的工作就是决定一个方法,使得计算机之间的信任关系很小。这样,就建立了一种框架,告诉你什么时候放置了一个Sniffer,它放在哪里,是谁放的等等。
如果局域网要和Internet相连,仅仅使用防火墙是不够的。人侵者已经能从一个防火墙后面扫描,并探测正在运行的服务。应该关心的是一旦人侵者进人系统,他能得到些什么。你必须考虑一条这样的路径,即信任关系有多长。举个例子,假设你的Web服务器对计算机A是信任的,那么有多少计算机是A信任的呢?又有多少计算机是受这些计算机信任的呢?一句话,就是确定最小信任关系的那台计算机。在信任关系中,这台计算机之前的任何一台计算机都可能对你的计算机进行攻击并成功。你的任务就是保证一旦出现Sniffer,它只对最小范围有效。
Sniffr往往是在攻击者侵人系统后使用的,用来收集有用的信息。因此,防止系统被突破很关键。系统安全管理员要定期的对所管理的网络进行安全测试,防止安全隐患。同时要控制拥有相当权限的用户的数量,因为许多攻击往往来自网络内部。
3.防止 Sniffer的工具 Antisnff
Antisniff是由著名黑客组织(现在是安全公司了)L0pht开发的工具,用于检测本地网络是否有机器处于混杂模式(即监听模式)。
一台处于混杂模式的机器意味着它很可能已被入侵并被安装了Sniffer。对于网络管理员来说,了解哪台机器正处于混杂模式以作进一步的调查研究是非常重要的。
Antisniff 1.X版运行在以太网的WindOWS NT系统中,并提供了简单易用的用户图形界面。该工具以多种方式测试远程系统是否正在捕捉和分析那些并不是发送给它的数据包。这些测试方法与其操作系统本身无关。
Antisniff运行在本地以太网的一个网段上。如果在非交换式的C类网络中运行,Antisniff能监听整个网络;如果网络交换机按照工作组来隔离,则每个工作组中都需要运行一个Antisniff。原因是某些特殊的测试使用了无效的以太网地址,另外某些测试需要进行混杂模式下的统计(如响应时间、包丢失率等)。
Antisniff的用法非常简便,在工具的图形界面中选择需要进行检查的机器,并且指定检查频率。对于除网络响应时间检查外的测试,每一台机器会返回一个确定的正值或负值。返回的正值表示该机器正处于混杂模式,这就有可能已经被安装了Sniffer。
对于网络响应时间测试的返回值,建议根据第一次返回的数值计算标准值,然后再对在flood和非flood两次测试时返回的结果有较大变化的机器进行检查。一旦这些机器退出混杂模式返回到正常操作模式下,Antisniff的下一次测试将会记录到混杂模式和非混杂模式的差值(正值)。
应该周期性地运行Antisniff,具体周期值根据不同的站点、不同的网络负荷、测试的机器数量和网站策略等而有所不同。