实验十五 网络嗅探与Tcp协议分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络嗅探与协议分析(1)(Sniffer软件应用)
一、实验目的和意义
网络嗅探器sniffer可以监听到所有流经同一以太网网段的数据包,不管它的接收者或发送者是不是运行sniffer的主机。通过在网络上拦截(接收)数据包并做出分析,来确定该数据包使用了什么协议,是TCP/IP协议,还是UDP协议等,并同时分析出不同数据包的结构,再从中得到具体的内容,如帧的源MAC和目的MAC地址、IP地址、TCP序号等,这些数据内容还可以是用户的帐号和密码,以及一些商用机密数据等。sniffer几乎能得到以太网上传送的任何数据包,黑客也就会使用各种方法
Sniffer是NAI公司推出的协议分析软件,它支持丰富的协议,在网络特殊应用尤其是在网络管理过程中,可以通过计算机的网络接口,从网络上截获目的地为其他计算机的数据报文,利用专家分析系统,对捕获到的数据帧进行快速解码分析,诊断收集到的数据,实时监控网络活动,网络运行状态和错误信息等,是网络管理的有力工具。
本实验通过sniffer软件的应用,监视并分析TCP/UDP应用层程序在客户端和服务器间的交互(如Telnet、HTTP、FTP、DNS等的应用),加强对TCP连接中的三次握手过程及相关网络原理、协议及相关技术的掌握,同时熟练掌握涉及网络管理、网络安全方面的技术技能,为今后的网络管理、网络开发应用打下良好基础。
二、实验原理
1、网络嗅探
网络中处于同一个网段上的所有网络接口都有一个不同的硬件地址,每个网络还有一个广播地址。在正常工作情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的报文则不予响应,因为此网络接口应该只响应: 1)帧的目标地址和本机网络接口的硬件地址相匹配;2)帧的目标区域具有"广播地址",这样的两种数据帧。在接收到上面两种情况的数据包时,nc通过cpu产生一个硬件中断,由操作系统将帧中所包含的数据传送给系统进一步处理。
也就是说,一个连到以太网上的网络设备接口,在任何时间里都在接收数据,但只将传给自己的数据传给本计算机上的应用程序,但如果将网络接口设置为promiscuous(混杂)工作模式,那么接收的并不仅仅是自己的数据,而是对网络线路上传送的所有数据都可以进行接收即侦听。利用这一点,可以将一台计算机的网卡设置为promiscuous(混杂)工作模式以接收所有以太网线上的数据,从而达到实现sniffer的目的。
而sniffer就是一种能将本地nc接口设成(promiscuous)状态的软件,当sniffer软件将nc设为这种“混杂”方式时,该nc具备“广播地址”,它对所有流经网络线路上的每一个帧都产生一个硬件中断,以使操作系统接收处理每一个报文包。可见,sniffer工作在网络环境中的底层,它会拦截所有正在网络上传送的数据,并且通过软件处理,实时分析这些
数据的内容,从安全性上来说,它是一种消极的安全攻击。
通常通过sniffer分析的内容有以下几类:
(1)数据的来源和去处:主机网络接口地址、远程网络接口ip地址,以太网帧的其他部分存放实际的用户数据、TCP/IP的报文头或IPX报文头等;
(2)信息协议分析,MAC帧、IP、TCP、ICMP包等,还有ip路由信息和tcp连接的字节顺序号码等;
(3)分析网络的流量,以便找出网络中潜在的问题;
(4)口令:sniffer可以记录到明文传送的userid和passwd;
(5)金融帐号:sniffer可以很轻松截获在网上传送的用户姓名、口令、信用卡号码和pin;(6)偷窥机密或敏感的信息数据:通过拦截数据包,可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的会话过程。(一般我们只嗅探每个报文的前200到300个字节,用户名和口令都包含在这一部分中,也可以嗅探给定接口上的所有报文。)
2、TCP/IP通信协议
因特网在传输层有两种主要的协议:一种是面向连接的协议,一种是无连接的协议。传输控制协议TCP是(transmission control protocol)专门用于在不可靠的因特网上提供可靠的、面向连接的端对端的字节流通信协议。通过在发送方和接收方分别创建一个称为套接字的通信端口就可以获得TCP服务,所有的TCP 均是全双工的和点到点的连接。
发送和接收方TCP实体以数据报的形式交换数据。一个数据报包含一个固定的20字节的头、一个可选部分以及0或多字节的数据。对数据报的大小有两个限制条件:一是每个数据报(包括TCP头在内)必须适合IP的载荷能力,不能超过65535字节;其次,每个网络都存在最大传输单元MTU(maximum transfer unit)的限制,故要求每个数据报必须适合MTU。如果一个数据报进入了一个MTU小于该数据报长度的网络,那么网络边界上的路由器会把该数据报分解为多个小的数据报。
TCP实体所采用的基本协议是滑动窗口协议。当发送方传送一个数据报时,它将启动计时器,当该数据报到达目的地后,接收方的TCP实体回送一个数据报,其中包含有一个它希望收到的下一个数据报的确认顺序号。如果发送方的定时器在确认信息到达之前超时,那么发送方会重发该数据报。
TCP数据被封装在一个IP数据报中,其报头格式如下:
源端口、目的端口:16位长。标识出远端和本地的端口号。
顺序号:32位长。表明了发送的数据报的顺序。
确认号:32位长。希望收到的下一个数据报的序列号。
TCP头长:4位长。表明TCP头中包含多少个32位字。
接下来的6位未用。
URG:紧急比特;标识紧急数据要优先发送。
ACK:确认比特;ACK位置1表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。
PSH:推送比特;表示是带有PUSH标志的数据;接收方所请求数据报一到,不等缓冲便可送往应用程序。
RST:复位比特;用于复位,由于主机崩溃或其它原因而出现的错误连接。还可以用于拒绝非法的数据报或拒绝连接请求。
SYN:同步比特;用于建立连接;
FIN:终止比特;用于释放连接;
窗口大小:16位长;窗口大小字段表示在确认了字节之后还可以发送多少个字节。
校验和:16位长;是为了确保高可靠性而设置的。它校验头部、数据和伪TCP头部之和。可选项:0个或多个32位字;包括最大TCP载荷,窗口比例、选择重发数据报等选项。
最大TCP载荷:允许每台主机设定其能够接受的最大的TCP载荷能力;在建立连接期间,双方均声明其最大载荷能力,并选取其中较小的作为标准。如果一台主机未使用该选项,那么其载荷能力缺省设置为536字节。
窗口比例:允许发送方和接收方商定一个合适的窗口比例因子;这一因子使滑动窗口最大能够达到232字节。
选择重发数据报:这个选项允许接收方请求发送指定的一个或多个数据报。
另一方面,Sniffer也成为了一种对安全造成威胁的工具,因为它可以捕获口令,可以截获机密的或专有的信息,以获取更高级别的访问权限,它也可以被用来攻击其他的网络,故应用中也要增加对其防范,提高安全的防范意识。
三、实验设备器材:
计算机一台,交换机或HUB一台,Internet接入
四、实验方法步骤
1、实例一、利用Sniffer Pro截取ICMP通信协议包:
首先设定过滤器(Define Filter ),這是为了避免截取過多的包导致数据量太大,同時也会增加分析的难度。设定所要截取主机的IP(Address)、过滤规则(Data Pattern)、选择通信协议(Advanced)、以及数据缓冲的大小(Buffer);在Advanced中,若选择了IP通信协议设定,其携带的几个通信协议的也会被监听,如果想要使监听仔细,可以继续选择下层級的通信协议。
做好设定之后,开始截取,进入Command,輸入ping 命令,按下sniffer的停止并查看所捕获的內容,选择Decode的Tab解码,其截取画面如下:(注意ICMP的号码顺序关系)