实验七 网络嗅探.docx
《实验七 网络嗅探.docx》由会员分享,可在线阅读,更多相关《实验七 网络嗅探.docx(15页珍藏版)》请在冰豆网上搜索。
实验七网络嗅探
实验七网络嗅探
【实验目的】
1.了解FTP、HTTP等协议明文传输的特性;
2.了解局域网内的监听手段;
3.掌握Ethereal嗅探器软件的使用方法;
4.掌握对嗅探到的数据包进行分析的基本方法,并能够对嗅探到的数据包进行网络状况的判断。
【实验环境】
两台以上装有Windows2000/XP/2003操作系统的计算机。
【实验原理】
(1)嗅探原理
网络监听是一种常用的被动式网络攻击方法,能帮助入侵者轻易获得用其他方法很难获得的信息,包括用户口令、账号、敏感数据、IP地址、路由信息、TCP套接字号等。
管理员使用网络监听工具可以监视网络的状态、数据流动情况以及网络上传输的信息。
嗅探器(Sniffer)是利用计算机的网络接口截获发往其他计算机的数据报文的一种技术。
它工作在网络的底层,将网络传输的全部数据记录下来。
嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能。
嗅探器可以分析网络的流量,以便找出所关心的网络中潜在的问题。
不同传输介质网络的可监听性是不同的。
一般来说,以太网(共享式网络)被监听的可能性比较高,因为以太网(共享式网络)是一个广播型的网络。
微波和无线网被监听的可能性同样比较高,因为无线电本身是一个广播型的传输媒介,弥散在空中的无线电信号可以被很轻易地截获。
在以太网中,嗅探器通过将以太网卡设置成混杂模式来捕获数据。
因为以太网协议工作方式是将要发送的数据包发往连接在一起的所有主机,包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的那台主机才能接收。
但是,当主机工作在监听模式下,无论数据包中的目标地址是什么,主机都将接收(当然自己只能监听经过自己网络接口的那些包)。
在Internet上有很多使用以太网协议的局域网,许多主机通过电缆、集线器连在一起,当同一网络中的两台主机通信的时候,源主机将写有目的主机地址的数据包直接发向目的主机。
但这种数据包不能在IP层直接发送,必须从TCP/IP协议的IP层交给网络接口,也就是数据链路层,而网络接口是不会识别IP地址的,因此在网络接口数据包又增加了一部分以太帧头的信息。
在帧头中有两个域,分别为只有网络接口才能识别的源主机和上的主机的物理地址,这是一个与IP地址相对应的48位的以太地址。
传输数据时,包含物理地址的帧从网络接口(网卡)发送到物理的线路上,如果局域网是由一条粗缆连接而成,则数字信号在电缆上传输,能够到达线路上的每一台主机。
当使用集线器时,由集线器再发向连接在集线器上的每一条线路,数字信号也能到达连接在集线器上的每一台主机。
当数字信号到达一台主机的网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的或者是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃,对于每一个到达网络接口的数据帧,都要进行这个过程。
然而,当主机工作在监听模式下,所有的数据帧都将交给上层协议软件处理。
而且当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的数据包。
也就是说,在同一条物理信道上传输的所有信息都可以被接收到。
另外,现在网络中使用的大部分网络协议都是很早设计的,许多协议的实现都是基于一种非常友好的、通信双方充分信任的基础之上,许多信息以明文发送。
因此,如果用户的账户名和口令等信息也以明文的方式在网络上传输,而此时一个黑客或网络攻击者正在进行网络监听,只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。
同理,正确地使用网络监听技术也可以发现入侵并对入侵者进行追踪定位,在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息,成为打击网络犯罪的有力手段。
目前常用的嗅探器工具主要有Ethereal、SnifferPro等。
两个软件功能相似,均具有捕获网络中传输的数据功能,除此之外,SnifferPro还具有捕获网络流量进行详细分析的功能,并能够利用专家分析系统诊断问题,可以实时监控网络活动,收集网络利用率和错误等信息。
说明:
网卡有四种接收模式,广播模式(broadcast),能够接收网络中的广播信息;组播模式(multicast),能够接收组播数据;直接(正常)模式(unicast),只能接收目的地址为该网卡地址的数据;混杂模式(promiscuous[prəmɪskju:
əs]),能够接收一切通过它的数据,无论数据的目的地址是否与该网卡的地址相符。
一般情况下,计算机的网卡工作在直接(正常)模式下;在进行网络嗅探时,我们需要将网卡设置为监听模式,也就是上面介绍的混杂模式。
(2)Ethereal软件
Ethereal封包监听器,是一套网管人员必备的超强软件。
使用于网路故障排除,监听异常封包,软件封包问题检测等等问题。
Ethereal自身只是一个协议分析器,并没有抓包功能,其抓包功能是由WinPcap来完成的,Ethereal捕获数据包以及显示数据包是通过两个过滤器来实现的,它们分别是:
捕获过滤器(CaptureFilter)和显示过滤器(DisplayFilter),分别在抓包开始时和抓包结束后用于显示数据包时设置。
在定义(设置)这两个过滤器时,分别有其各自对应的语法。
①CaptureFilter语法
Ethereal使用libpcap过滤语言进行捕获过滤,在tcpdump的man页里对它进行了解释,但是很难理解,因此在这里做一些进一步的解释。
一个过滤表达式是由几个简单的表达式通过and/or及not连接在一起形成的。
Ethereal的过滤规则可以有两种形式:
一个原语,一个原语即一条最基本的过滤规则;用“and”、“or”、“not”关系运算符,以及括号组合起来的原语。
其中“and”的含义是它所连接的两个原语必须都成立;“or”的含义是它所连接的两个原语只要有一个成立即可;“not”的含义是它后面跟的原语不成立;括号的作用是对关系运算顺序作出规定。
从上面的描述可以看出,我们只要掌握原语的写法,再用关系运算符把它们组合起来,就可以写出满足不同要求的过滤规则了。
Ethereal提供的原语非常多,这里只介绍最常用的四种(在下面的叙述中,“[]”表示可选项,“<>”表示必存在的项,“|”表示两者选择其中之一,其他字符串则是关键字,必须照写不误):
●ether[src|dst]host
这条原语用来根据以太网MAC层的信息来进行包过滤。
若无可选项src|dst,这条原语用于捕获源和目的MAC地址之一是”mac_addr”的以太网帧;如果加上“src”或“dst”的限制,则分别用于捕获源或目的MAC地址是”mac_addr”的以太网帧。
例如:
原语“etherhost08:
00:
1B:
D3:
D3:
61”的含义是捕获所有源或目的MAC地址是“08:
00:
1B:
D3:
D3:
61”的以太网帧。
原语“ethersrchost08:
00:
1B:
D3:
D3:
61”的含义是捕获所有源MAC地址是“08:
00:
1B:
D3:
D3:
61”的以太网帧。
●[src|dst]host
这条原语用来根据IP信息进行包过滤。
若无可选“src|dst”,这条原语用于捕获源或目的IP地址之一是“ip_addr”的包;如果加上“src”或“dst”的限制,则分别用于捕获源或目的IP地址是“ip_addr”的包。
例如:
原语“host210.30.97.53”的含义是捕获所有源或目的地址是“210.30.97.53”的包;原语“dsthost210.30.97.53”的含义是捕获所有目的地址是“210.30.97.53”的包。
●[tcp|udp][src|dst]port
这条原语是用来根据传输层进行包过滤。
它可以用于捕获传输层协议是TCP或UDP,源或目的端口号是number的包。
可选项“TCP”和“UDP”用于对传输层协议进行选择,可选项“src”和“dst”用来对端口号是源还是目的进行选择。
例如:
原语“tcpport80”的含义是捕获所有源或目的端口号是80的协议的包;原语
“udpdstport53”的含义是捕获所有目的端口号是53的UDP协议的包。
●arp|ip|icmp|udp|tcp等
这类原语用于捕获属于某种协议类型的包,协议的类型可以是“arp”、“ip”、“ICMP”、“UDP”或“TCP”等。
例如:
只含一个关键原语“ICMP”的含义是捕获所有ICMP协议的包。
以上是介绍4种最常用的原语写法,下面通过举例说明如何把这些原语组合起来,从而构造比较复杂的过滤规则。
[例A-1]:
捕获主机192.168.0.10发出或收到的Tcp网络包。
过滤规则为:
host192.168.0.10andtcpport80
(注:
HTTP协议通常使用TCP端口号80)
[例A-2]:
记主机192.168.0.10为A,捕获A与主机192.168.0.20或A与主机192.168.0.30之间的网络包。
过滤规则为:
host192.168.0.10and(host192.168.0.20orhost192.168.0.30)
2DisplayFilter语法
通常经过捕捉过滤器过滤后的数据还是很复杂。
此时您可以使用显示过滤器进行更加细致的查找。
它的功能比捕捉过滤器更为强大,而且在您想修改过滤器条件时,并不需要重新捕捉一次。
可以使用6种比较运算符和Logicalexpressions(逻辑运算符):
英文写法:
C语言写法:
含义:
eq
==
等于
ne
!
=
不等于
gt
>
大于
lt
<
小于
ge
>=
大于等于
le
<=
小于等于
英文写法:
C语言写法:
含义:
and
&&
逻辑与
or
||
逻辑或
xor
^^
逻辑异或
not
!
逻辑非
例如:
ip.src!
=10.1.2.3andip.dst!
=10.4.5.6。
显示来源不为10.1.2.3并且目的IP不为10.4.5.6的封包。
显示过滤语句与抓获过滤语句的表达式是不同的,如表7-1所示:
(3)TCP协议
①TCP报头结构
TCP(传输控制协议)是在两台或多台计算机之间建立一个面向连接的服务。
它的数据包格式如图7-1所示。
其中,有几个字段在TCP数据的传输过程中有很重要的作用,与数据传输连接的建立与释放以及数据的传输有很大的关系,这里给于简单的说明:
图7-1TCP数据包头结构
●源端口:
TCP源端口号长度为16位,用来表明发送方通信进程的端口;
●目的端口:
TCP目的端口号长度为16位,用来表明要接收方通信进程的端口;
●序号:
32位,用于标识TCP发送端向TCP接收端发送的数据流的序号;
●确认号:
32位,用来标识接收端所希望收到的下一个报文首字节的序号;
●ACK:
1位,确认号标志,置“1”时,确认号有效;
●RST:
1位,连接复位标志,表示由于主机崩溃或其他原因而出现错误的连接;
●SYN:
1位,同步序列号标志,它用来发起一个连接的建立(建立连接时握手操作标
志),也就是说只有在建立连接的过程中SYN才会被置1;
●FIN:
1位,连接终止标志,当一端发送FIN标志位置1的报文时,告诉另一端无数
据可传送,但它还可以继续接收数据。
②TCP连接建立与释放的过程
TCP是一个面向连接的协议,所以在进行数据传输前,通信的源端和目的端之间必须现建立一条连接,如图7-2所示,然后才能进行数据传输;在通信结束时要终止连接,如图7-3所示。
这是TCP保证数据可靠传输的主要措施之一。
图7-2TCP连接的建立
图7-3TCP连接的释放
【实验内容】
(1)Ethereal的安装
Ethereal是一个网络包的分析仪。
网络分析仪通常试着去捕获网络包,然后尽可能详细的显示出那个包所包含的数据。
Ethereal是今天最好的基于开放源代码的网络包分析仪之一。
在使用Ethereal之前,先要安装Ethereal工具(注意:
0.10.12以前的版本,还需要独立安装WinPcap软件才能够使用;之后的版本不需要再单独去下载安装WinPcap)。
步骤1:
双击ethereal软件安装图标,执行安装的第一个界面,如图7-4所示。
图7-4Ethereal的安装界面
步骤2:
点击“Next”按钮,进入后续安装过程,设置全部选择默认选项,直至安装完成。
(2)使用Ethereal抓包
步骤1:
双击启动桌面上ethereal图标,选择“Capture”菜单项中的“Option”,这时会弹出一个对话框,如下图7-5所示。
图7-5CaptureOption捕获窗口
步骤2:
选择正确的NIC(网卡),然后,在Link-layerheadertype中,选择”Capturepacketsinpromiscuousmode”(注:
设定为混杂模式)。
在“CaptureFilter”栏中,可以输入过滤规则,用于规定Ethereal捕获包的种类(注:
过滤规则的写法已在实验原理部分作专门介绍);如果不输入过滤规则,则Ethereal将捕获所有从网卡发送或收到的包。
另外,在”DisplayOptions”中,要选中“Updatelistofpacketsinrealtime”和“Automaticscrollinginlivecapture”选项,这样可以使Ethereal在捕获包的同时,
实时地把捕获的包显出来。
如图7-6所示。
图7-6捕获参数设置
步骤3:
在完成如上配置后,点击“Start”按钮,Ethereal便开始捕获包。
如图7-7所
示。
图7-7数据捕获窗口
步骤4:
当捕获到所需数据包后,点击“Stop”按钮,停止数据捕获。
如图7-8所示。
图7-8捕获到的数据
(3)利用Ethereal学习ping过程
步骤1:
按照要求设置本机的IP地址。
步骤2:
启动Ethereal。
步骤3:
对”CaptureOptions”选项进行设置。
步骤4:
点击“Start”按钮开始捕获,出现“CaptureFrom………”窗口。
步骤5:
在桌面上点击“开始“——”运行“,在”运行窗口中填写“cmd”命令打开命令提示符窗口,输入命令”ping192.168.1.X“(注:
局域网内合法IP)。
如图7-9所示。
图7-9运行Ping命令
步骤6:
点击“CaptureFrom………“窗口中的”Stop”命令,完成数据捕获。
如图7-10所示。
图7-10捕获的ping过程数据
(4)利用Ethereal学习WWW和FTP工作过程
在该部分实验中,要求利用Ethereal工具来抓取WWW服务以及FTP的数据包来分析TCP数据包格式及通信过程,所以首先要求大家来搭建这两种服务。
Windows操作系统中的www服务以及FTP服务都是依赖于IIS服务器的,所以要在Windows中假设这些服务,必须首先安装IIS组件。
www配置与FTP服务配置均在虚拟机Windows2003server中进行设置。
①www服务的配置
步骤1:
安装IIS组件。
依次点击“控制面板”→“添加/删除组件”→“Windows
组件向导”→选中“Asp.NET”,然后与“Internet信息服务(IIS)”的相关服务也装上。
如图7-11所示。
图7-11IIS组件安装
步骤2:
在选定需要安装的服务后安装向导会提示需要插入2003安装光盘(或对应的i386文件),这时您插入安装盘按照提示进行安装,IIS中的WEB很快便自动安装完成。
步骤3:
安装好IIS组件以后,依次点击“开始”→“程序”→“Internet信息服务管理器”,打开WWW服务配置页面,如图7-12所示。
图7-12IIS配置页面
步骤4:
开始添加站点,在“网站”上点击鼠标右键,在弹出的子菜单中选择“新建”→“网站”,弹出“网站创建向导”。
点击“下一步”。
步骤5:
输入站点描述,用来识别站点的,可以随意输入,例如:
“wwwtest”,点击“下一步”。
步骤6:
对网站地址进行设置,在网站IP地址中,输入预先设置好的IP地址(这里为:
192.168.1.X);在网站TCP端口中,输入80。
点击“下一步”。
步骤7:
设置网站主目录,选择网络文件存取路径。
点击“下一步”。
步骤8:
设置网站访问权限,选中“读取”和“运行脚本”两项。
点击“下一步”。
步骤9:
完成站点创建。
点击“下一步”。
步骤10:
配置网站,点击“Web服务扩展”,然后在ActiveServerPages选项上点击右键,选择允许,如图7-13所示。
图7-13Web配置
步骤11:
测试站点。
打开IE浏览器,在地址栏输入:
http:
//192.168.1.X。
②FTP服务的配置
步骤1:
在控制面板的“添加/删除程序”—“Windows组件向导”—“应用程序服务器”—“Internet信息服务(IIS)”中选中“文件传输协议(FTP)服务”。
如图7-14所示。
图7-14安装FTP组件
步骤2:
在选定需要安装的服务后安装向导会提示需要插入Windows2003安装光盘(或对应的i386文件),这时您插入安装盘按照提示进行安装,IIS中的FTP很快便自动安装完成。
步骤3:
打开“程序”—“管理工具”—“Internet信息服务(IIS)管理器”—“FTP站点”,如图7-15所示。
图7-15配置FTP站点
步骤4:
单击“默认FTP站点”,在右键快捷菜单选中“属性”。
在“FTP站点”选项卡中,修改“说明”为易于识别的标识,如:
MyTest,“IP地址”改为虚拟机中设置的IP地址(例如:
192.168.1.X),“TCP端口”:
默认为21,可以不进行修改。
如图7-16所示。
图7-16FTP站点属性
步骤6:
在“安全账号”中选中“允许匿名连接”,如果对于客户端登录时需要进行身份认证,则可以通过“浏览”来选择Windows中的用户。
步骤7:
在“主目录”选项卡中选择FTP服务向外提供服务的主目录,并进行权限设置,如图7-17所示。
图7-17主目录的设置
步骤8:
FTP的简单设置完成。
在IE中输入ftp:
//192.168.1.X测试。
3抓包学习TCP协议
步骤1:
双击“Ethreal快捷键”打开Ethreal抓包工具并进行设置,点击“开始”进行抓包;
步骤2:
在IE浏览器输入http:
//192.168.1.X/index.html进行网站访问;
步骤3:
在IE浏览器输入ftp:
//192.168.1.X,下载一个文件;
步骤4:
停止抓包。
根据以上过程中抓到的数据包,完成思考题。
【实验报告】
实验报告正文部分格式及内容如下:
实验目的:
给出本次实验所涉及并要求掌握的知识点。
实验内容:
给出实验的具体内容。
实验环境:
给出完成实验所需要的硬件环境、软件等。
实验步骤;给出完成实验所做的各种准备及实验时主要步骤。
实验数据及结果分析:
给出实验时所用数据,实验的结果,以及对结果的分析。
实验总结与心得:
总结实验过程,分析实验中出现的问题及解决方法,总结实验的心得体会,并提出实验的改进意见。
【思考题】
(1)进行WWW服务及FTP服务时,本机捕获得到的数据类型有哪些?
(2)通过捕获的数据说明WWW服务与FTP服务默认使用哪些端口来提供服务的?
(3)记录试验中访问FTP服务的一次连接建立与释放的过程,观察捕获的数据中的各个标志位值的变化,进而说明TCP三次握手连接过程以及四次释放连接断开过程?
(4)分析FTP数据包,查找用户访问FTP服务器时所使用的用户名和密码,并进行记
录。
(5)简述网络嗅探的危害及防范措施。