什么是Sniffer?
分类: 电脑/网络 >> 互联网
解析:
Sniffer,中文可以翻译为嗅探器,是一种威胁性极大的被动攻击工具。使用这种工具,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。黑客们常常用它来截获用户的口令。据说某个骨干网络的路由器曾经被黑客攻人,并嗅探到大量的用户口令。本文将详细介绍Sniffer的原理和应用。
一、Sniffer 原理
1.网络技术与设备简介
在讲述Sni计er的概念之前,首先需要讲述局域网设备的一些基本概念。
数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。
每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Inter地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。
在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。
2.网络监听原理
Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。
普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备Bpfilter,而且需要root权限来运行这种程序,所以sniffer需要root身份安装,如果只是以本地用户的身份进人了系统,那么不可能唤探到root的密码,因为不能运行Sniffer。
基于Sniffer这样的模式,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权
3 Snifffer的分类
Sniffer分为软件和硬件两种,软件的Sniffer有 NetXray、Packetboy、Net monitor等,其优点是物美价廉,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer通常称为协议分析仪,一般都是商业性的,价格也比较贵。
实际上本文中所讲的Sniffer指的是软件。它把包抓取下来,然后打开并查看其中的内容,可以得到密码等。Sniffer只能抓取一个物理网段内的包,就是说,你和监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。
4.网络监听的目的
当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一网段上的其他主机时,他就会在这台主机上安装Sniffer软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个LOg文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。一旦黑客截获得了某台主机的密码,他就会立刻进人这台主机。
如果Sniffer运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。
Sniffer属于第M层次的攻击。就是说,只有在攻击者已经进入了目标系统的情况下,才能使用Sniffer这种攻击手段,以便得到更多的信息。
Sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。Sniffer几乎能得到任何在以太网上传送的数据包。
Sniffer是一种比较复杂的攻击手段,一般只有黑客老手才有能力使用它,而对于一个网络新手来说,即使在一台主机上成功地编译并运行了Sniffer,一般也不会得到什么有用的信息,因为通常网络上的信息流量是相当大的,如果不加选择地接收所有的包,然后从中找到所需要的信息非常困难;而且,如果长时间进行监听,还有可能把放置Sniffer的机器的硬盘撑爆。
sniffer什么意思
sniffer的意思:n.嗅探器,以鼻吸毒者。noun. a person who sniffs.例句:Development and implementation of network sniffer based on data link layer.面向数据链路层的网络嗅探器的开发与实现。The Application of Sniffer in Computer Network Course Based on Iris. 基于Iris网络嗅探器在计算机网络课程中的应用。Sniffer dogs could be trained to track them down. 可以训练嗅探犬追捕他们。The Kismet wireless sniffer is an 802.11b network sniffer and network dissector. Kismet. 无线嗅探器是一种802.11b网络嗅探器及网络剖析器。Construction of a Network Security Platform Based on the Sniffer Technology .基于监听技术的网络安全平台的构建。
网络嗅探器怎么用啊?
Iris网络嗅探器使用与技巧
(以下内容部分翻译自iris自带的帮助文件
1.【Iris简介】
一款性能不错的嗅探器。嗅探器的英文是Sniff,它就是一个装在电脑上的窃听器,监视通过电脑的数据。
2.【Iris的安装位置】
作为一个嗅探器,它只能捕捉通过所在机器的数据包,因此如果要使它能捕捉尽可能多的信息,安装前应该对所处网络的结构有所了解。例如,在环形拓扑结构的网络中,安装在其中任一台机都可以捕捉到其它机器的信息包(当然不是全部),而对于使用交换机连接的交换网络,很有可能就无法捕捉到其它两台机器间通讯的数据,而只能捕捉到与本机有关的信息;又例如,如果想检测一个防火墙的过滤效果,可以在防火墙的内外安装Iris,捕捉信息,进行比较。
3.【配置Iris】
Capture(捕获)
Run continuously :当存储数据缓冲区不够时,Iris将覆盖原来的数据包。
Stop capture after filling buffer:当存储数据缓冲区满了时,Iris将停止进行数据包截获,并停止纪录。
Load this filter at startup:捕获功能启动时导入过滤文件并应用,这样可以进行命令行方式的调试。
Scroll packets list to ensure last packet visible:一般要选中,就是将新捕获的数据包附在以前捕获结果的后面并向前滚动。
Use Address Book:使用Address Book来保存mac地址,并记住mac地址和网络主机名。而Ip也会被用netbios名字显示。
Decode(解码)
Use DNS:使用域名解析
Edit DNS file:使用这个选项可以编辑本地解析文件(host)。
HTTP proxy:使用http使用代理服务器,编辑端口号。默认为80端口
Decode UDP Datagrams:解码UDP协议
Scroll sessions list to ensure last session visible:使新截获的数据包显示在捕获窗口的最上。
Use Address Book:同Capture中的Use Address Book
Adapters(网络配置器)
选择从哪个网络配置器(网卡)中截获数据。
Guard(警报和日志选项)
Enable alarm sound:当发现合乎规则的数据包发出提示声音
Play this wave file:选择警报声音路径,声音格式是.wav
Log to file:启动日志文件。如果选中后,当符合规则的数据包被截获后将被记录在日志文件中。
Ignore all LAN connections:Iris可以通过本地的ip地址和子网掩码识别地址是否是本地的地址。当这个选项被不选中后,Iris会接受所有的数据包(包括本机收发出的)。如果选中,将不接受本地网络的数据包。
Ignore connections on these>>:过滤指定端口(port),在列表中可以选择。
Use software filter:软件过滤方案生效。当没有被选中后,软件将会接受所有的数据。另外只有当Apply filter to incoming packets 被选中后Use software filter才能使用。
Miscellaneous(杂项功能)
选项 功能描述
Packet buffer:设置用来保存捕获数据包最多个数(默认值是2000个)
Stop when free disk space drops :当磁盘空间低于指定值时,Iris将会停止捕获和记录数据。
Enable CPU overload protection 当Cpu的占用率连续4秒钟达到100%时,Iris会停止运行。等到恢复正常后才开始纪录。
Start automatically with Windows:点击这里可以把Iris加入到启动组中。
Check update when program start:是否启动时检查本软件的更新情况。
4【任务】
Schedule:配置Iris指定的时间捕获数据包,蓝色代表捕获,白色代表停止捕获。
5.【建立过滤条件】
a.硬件过滤器(HardWare Filter):
Promiscuous (噪音模式):使得网卡处于杂收状态,这个是默认状态。
Directed (直接连接):只接受发给本网络配置器的数据包,而其他的则不予接受。
Multicast (多目标):捕获多点传送的数据包
All multicast (所有多目标):捕获所有的多目标数据包
Broadcast (广播) 只捕获广播桢,这样的真都具有相同的特点,目的MAC地址都是FF:FF:FF:FF:FF:FF
b.数据包捕获类型匹配(Layer 2,3):
这个过滤设置位于DoD模型(四层)中的第二、三层——网络层和运输层。
利用这个过滤设置,可以过滤不同协议类型的数据。
include:表示包括此种协议类型的数据将被捕获;
exclude:表示包括此种协议类型的数据将被忽略;
也可以自定义协议类型,方法是配置proto.dat文件。Layer 2的协议编辑[PROTOCOL],而layer 3则编辑相应的[IP PROTOCOL]。我们用记事本打开proto.dat,在这里很多的协议可以被修改和添加。
c.字符匹配(Words Filter)
加入你想过滤的关键字符到列表。列表下面有All和ANY两个选项(有的是AND和OR),其中ANY是指数据包至少要匹配列表中的一个关键字符,而ALL选项是指所有列表中的数据都要匹配才会显示出来。
Apply filter to packets是指显示带有关键字的数据帧,而其他的数据帧则会被抛弃。
Mark sessions containing words是指所有的数据帧都会被截获,只不过带有指定字符的数据帧会加上标志。
d.MAC地址匹配(MAC Address Filter)
第一个窗口是IRIS可是识别出来的硬件地址。你可以点击这些地址把他们加到下边的Address 1或Address 2,如果你不这样做也可以自己输入地址到窗口二中;
e.IP地址匹配层(IP address)
和MAC地址匹配(MAC Address Filter)选项相类似,这个是IP地址匹配层。
f.端口匹配层(Ports)
CP和UDP采用16 bit的端口号来识别应用程序的。FTP服务器的TCP端口号是2 1,Telnet服务器的TCP端口号是23,TFTP(简单文件传送协议)服务器的UDP端口号是69。任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号.例如我们想截获telnet中的用户名和密码这里我们就应该选择23 Port。
g.高级选项配置(Advanced)
数据大小匹配选项(Size):可以选择指定接收的数据包的大小。
十六进制数据匹配(Data):指定数据包中所包含数据的十六进制字符相匹配。
6【截获数据包】
在数据包编辑区内,显示着完整的数据包。窗口分两部分组成,左边的数据是以十六进制数字显示,右边则对应着ASCII。点击十六进制码的任何部分,右边都会显示出相应的ASCII代码,便于分析。
十六进制码是允许进行编辑再生的,可以重写已经存在的的数据包。新的数据包可以被发送,或者保存到磁盘中。
7.【数据包编辑】
Capture > Show Packet Editor点击显示出来
利用工具条的选项可以进行数据包的保存,更改,加入到列表和发送等操作。
例如想生成一系列TCP数据包,首先点击生成一个空数据包,参照数据包格式,使得每一部分都用十六进制表示法来表示。建立了一个包假设它由100个字节的长度(假设一下,20 个字节是IP信息,20个字节是TCP信息,还有60个字节为传送的数据)。现在把这个包发给以太网,放14个字节在目地MAC地址之前,源MAC地址,还要置一个0x0800的标记,它指示出了TCP/IP栈后的数据结构。同时,也附加了4个字节用于做CRC校验 (CRC校验用来检查传输数据的正确性),之后我们点击发送按钮。