当前位置:文档之家› 网络嗅探与监听

网络嗅探与监听

网络嗅探与监听局域网具有设备共享、信息共享、可进行高速数据通讯和多媒体信息通信、分布式处理、具有较高的兼容性和安全性等基本功能和特点。

目前局域网主要用于办公室自动化和校园教学及管理,一般可根据具体情况采用总线形、环形、树形及星形的拓扑结构。

一、网络监听网络监听技术本来是提供给网络安全管理人员进行管理的工具,可以用来监视网络的状态、数据流动情况以及网络上传输的信息等。

当信息以明文的形式在网络上传输时,使用监听技术进行攻击并不是一件难事,只要将网络接口设置成监听模式,便可以源源不断地将网上传输的信息截获。

网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等。

二、在局域网实现监听的基本原理对于目前很流行的以太网协议,其工作方式是:将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。

但是,当主机工作监听模式下,无论数据包中的目标地址是什么,主机都将接收(当然只能监听经过自己网络接口的那些包)。

在因特网上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起。

当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包直接发向目的主机。

但这种数据包不能在IP层直接发送,必须从TCP/IP 协议的IP层交给网络接口,也就是数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。

在帧头中有两个域,分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个与IP 地址相对应的48位的地址。

传输数据时,包含物理地址的帧从网络接口(网卡)发送到物理的线路上,如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。

当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。

当数字信号到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃。

对于每一个到达网络接口的数据帧,都要进行这个过程。

然而,当主机工作在监听模式下,所有的数据帧都将被交给上层协议软件处理。

而且,当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的数据包。

也就是说,在同一条物理信道上传输的所有信息都可以被接收到。

另外,现在网络中使用的大部分协议都是很早设计的,许多协议的实现都是基于一种非常友好的、通信的双方充分信任的基础之上,许多信息以明文发送。

因此,如果用户的账户名和口令等信息也以明文的方式在网上传输,而此时一个黑客或网络攻击者正在进行网络监听,只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。

同理,正确的使用网络监听技术也可以发现入侵并对入侵者进行追踪定位,在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息,成为打击网络犯罪的有力手段。

三、局域网监听的简单实现要使主机工作在监听模式下,需要向网络接口发出I/O控制命令,将其设置为监听模式。

在Unix系统中,发送这些命令需要超级用户的权限。

在Windows 系列操作系统中,则没有这个限制。

要实现网络监听,可以自己用相关的计算机语言和函数编写出功能强大的网络监听程序,也可以使用一些现成的监听软件,在很多黑客网站或从事网络安全管理的网站都有。

1. 一个使用Wireshark进行监听并解析IPv4协议头部的例子(1)IP数据报首部概述(1).版本占4位,指IP协议的版本。

通信双方使用的IP协议版本必须一致。

目前广泛使用的IP协议版本号为4(即IPv4)。

关于IPv6,目前还处于草案阶段。

(2).首部长度占4位,可表示的最大十进制数值是15。

请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。

当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。

首部长度限制为60字节的缺点是有时可能不够用。

但这样做是希望用户尽量减少开销。

最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3).区分服务占8位,用来获得更好的服务。

这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。

1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。

只有在使用区分服务时,这个字段才起作用。

(4).总长度总长度指首部和数据之和的长度,单位为字节。

总长度字段为16位,因此数据报的最大长度为216-1=65535字节。

在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。

当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

(5).标识(identification) 占16位。

IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。

但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。

当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。

相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6).标志(flag) 占3位,但目前只有2位有意义。

●标志字段中的最低位记为MF(More Fragment)。

MF=1即表示后面“还有分片”的数据报。

MF=0表示这已是若干数据报片中的最后一个。

●标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。

只有当DF=0时才允许分片。

(7).片偏移占13位。

片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。

也就是说,相对用户数据字段的起点,该片从何处开始。

片偏移以8个字节为偏移单位。

这就是说,每个分片的长度一定是8字节(64位)的整数倍。

(8).生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。

由发出数据报的源点设置这个字段。

其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。

最初的设计是以秒作为TTL的单位。

每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。

若数据报在路由器消耗的时间小于1秒,就把TTL值减1。

当TTL值为0时,就丢弃这个数据报。

(9).协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10).首部检验和占16位。

这个字段只检验数据报的首部,但不包括数据部分。

这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。

不检验数据部分可减少计算的工作量。

(11).源地址占32位。

(12).目的地址占32位。

(2)实例解析是用sniffer pro进行监听时捕获的IPv4协议报头。

第一部分显示的是关于IP的版本信息,它的当前版本号为4;然后是头部的长度,其单位是32-bit的字,本例中值为20bytes。

第二部分是有关服务类型的信息。

第三部分为头部长度字段,本例中IP报头长为56字节。

第四部分是关于分段的内容。

第五部分是生存时间字段,一般为64或128,本例为128seconds/hops。

第六部分是协议部分,说明了上层使用的服务类型,本例中为UDP。

第七部分以下各字段分别为校验和、源地址、目的地址等。

2. 一个使用sniffer pro进行监听获取邮箱密码的例子通过对用监听工具捕获的数据帧进行分析,可以很容易的发现敏感信息和重要信息。

例如,对一些明码传输的邮箱用户名和口令可以直接显示出来。

weizhong为邮箱用户名,123456为邮箱密码,都以明码显示,由此也可以看到局域网监听技术如果用于不正当的目的会有多大的危害。

在以上各部分中还有更详细的信息,在此不作更多的分析。

通过这个例子想说明的是通过网络监听可以获得网络上实时传输的数据中的一些非常重要的信息,而这些信息对于网络入侵或入侵检测与追踪都会是很关键的。

四、网络嗅探造成的危害sniffing是作用在网络基础结构的底层。

通常情况下,用户并不直接和该层打交道,有些甚至不知道有这一层存在。

所以,应该说Sniffer的危害是相当之大的,通常,使用Sniffer是在网络中进行欺骗的开始。

它可能造成的危害:嗅探器能够捕获口令。

这大概是绝大多数非法使用Sniffer的理由,Sniffer可以记录到明文传送的用户名和口令。

能够捕获专用的或者机密的信息。

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

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

可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限窥探低级的协议信息。

这是很可怕的事,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口IP地址、IP路由信息和TCP连接的字节顺序号码等。

这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用Sniffer收集这些信息只有一个原因:他正要进行一次欺骗(通常的ip地址欺骗就要求你准确插入TCP连接的字节顺序号),如果某人很关心这个问题,那么Sniffer对他来说只是前奏,今后的问题要大得多。

事实上,如果在网络上存在非授权的嗅探器就意味着你的系统已经暴露在别人面前了。

一般Sniffer只嗅探每个报文的前200到300个字节。

用户名和口令都包含在这一部分中,这是我们关心的真正部分。

简单的放置一个嗅探器并将其放到随便什么地方将不会起到什么作用。

将嗅探器放置于被攻击机器或网络附近,这样将捕获到很多口令,还有一个比较好的方法就是放在网关上。

Sniffer通常运行在路由器,或有路由器功能的主机上。

这样就能对大量的数据进行监控。

Sniffer属第二层次的攻击。

通常是攻击者已经进入了目标系统,然后使用Sniffer这种攻击手段,以便得到更多的信息。

相关主题