实验二网络嗅探.docx
《实验二网络嗅探.docx》由会员分享,可在线阅读,更多相关《实验二网络嗅探.docx(11页珍藏版)》请在冰豆网上搜索。
![实验二网络嗅探.docx](https://file1.bdocx.com/fileroot1/2023-1/1/a3717d9c-468a-46f1-9065-ef677264665d/a3717d9c-468a-46f1-9065-ef677264665d1.gif)
实验二网络嗅探
实验二网络嗅探
【实验目的】
1.了解ARP、ICMP等协议明文传输的特性;
2.了解局域网内的监听手段;
3.掌握Wireshark嗅探器软件的使用方法;
4.掌握对嗅探到的数据包进行分析的基本方法,并能够对嗅探到的数据包进行网络状况的判断。
【实验环境】
两台以上装有WindowsXP以上操作系统的计算机。
【实验原理】
(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)Wireshark软件
Wireshark(前称Ethereal)是一个网络封包分析软件。
网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
网络封包分析软件的功能可想像成"电工技师使用电表来量测电流、电压、电阻"的工作,只是将场景移植到网络上,并将电线替换成网络线。
在过去,网络封包分析软件是非常昂贵的,或是专门属于营利用的软件。
Ethereal的出现改变了这一切。
在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。
Ethereal是目前全世界最广泛的网络封包分析软件之一。
网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。
当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……
Wireshark不是入侵侦测系统(IntrusionDetectionSystem,IDS)。
对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。
然而,仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。
Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。
Wireshark本身也不会送出封包至网络上。
wireshark有两种过滤器:
捕捉过滤器(CaptureFilters):
用于决定将什么样的信息记录在捕捉结果中。
显示过滤器(DisplayFilters):
用于在捕捉结果中进行详细查找。
捕捉过滤器在抓包前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。
捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。
两种过滤器它们支持的过滤语法并不一样。
1CaptureFilter语法
捕捉过滤器语法:
ProtocolDirectionHost(s)ValueLogicalOperationsOtherexpression
例子:
tcpdst10.1.1.180andtcpdst10.2.2.23128
示例:
(host10.4.1.12orsrcnet10.6.0.0/16)andtcpdstportrange200-10000anddstnet10.0.0.0/8
捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的TCP端口号在200至10000之间,并且目的IP位于网络10.0.0.0/8内的所有封包。
字段详解:
Protocol(协议):
可能值:
ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcpandudp.
如果没指明协议类型,则默认为捕捉所有支持的协议。
注:
在wireshark的HELP-ManualPages-WiresharkFilter中查到其支持的协议。
Direction(方向):
可能值:
src,dst,srcanddst,srcordst
如果没指明方向,则默认使用“srcordst”作为关键字。
“host10.2.2.2”与“srcordsthost10.2.2.2”等价。
Host(s):
可能值:
net,port,host,portrange.
默认使用”host”关键字,”src10.1.1.1″与”srchost10.1.1.1″等价。
LogicalOperations(逻辑运算):
可能值:
not,and,or.
否(“not”)具有最高的优先级。
或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。
“nottcpport3128andtcpport23″与”(nottcpport3128)andtcpport23″等价。
“nottcpport3128andtcpport23″与”not(tcpport3128andtcpport23)”不等价。
2DisplayFilter语法
1.协议过滤语法
语法Protocol.StringComparisonoperatorValueLogicalOperationsOtherexpression
通常经过捕捉过滤器过滤后的数据还是很复杂。
此时您可以使用显示过滤器进行更加细致的查找。
它的功能比捕捉过滤器更为强大,而且在您想修改过滤器条件时,并不需要重新捕捉一次。
可以使用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的封包。
显示过滤语句与抓获过滤语句的表达式是不同的,如表2-1所示:
2.内容过滤语法
2.1深度字符串匹配
contains:
Doestheprotocol,fieldorslicecontainavalue
示例
tcpcontains"http"显示payload中包含"http"字符串的tcp封包。
http.request.uricontains"online"显示请求的uri包含"online"的http封包。
2.2特定偏移处值的过滤
tcp[20:
3]==47:
45:
54/*16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤*/
http.host[0:
4]=="trac"
过滤中函数的使用(upper、lower)
upper(string-field)-convertsastringfieldtouppercase
lower(string-field)-convertsastringfieldtolowercase
示例
upper(http.request.uri)contains"ONLINE"
wireshark过滤支持比较运算符、逻辑运算符,内容过滤时还能使用位运算。
如果过滤器的语法是正确的,表达式的背景呈绿色。
如果呈红色,说明表达式有误。
参考:
wireshark的HELP-ManualPages-WiresharkFilter
(3)Wireshark各窗口介绍
a.PACKETLISTPANE(封包列表)
图2-1
封包列表中显示所有已经捕获的封包。
在这里您可以看到发送或接收方的MAC/IP地址,TCP/UDP端口号,协议或者封包的内容。
如果捕获的是一个OSIlayer2的封包,您在Source(来源)和Destination(目的地)列中看到的将是MAC地址,当然,此时Port(端口)列将会为空。
如果捕获的是一个OSIlayer3或者更高层的封包,您在Source(来源)和Destination(目的地)列中看到的将是IP地址。
Port(端口)列仅会在这个封包属于第4或者更高层时才会显示。
b.PACKETDETAILSPANE(封包详细信息)
图2-2
这里显示的是在封包列表中被选中项目的详细信息。
信息按照不同的OSIlayer进行了分组,您可以展开每个项目查看。
下面截图中展开的是HTTP信息。
图2-3
c.DISSECTORPANE(解析器)
图2-4
“解析器”在Wireshark中也被叫做“16进制数据查看面板”。
这里显示的内容与“封包详细信息”中相同,只是改为以16进制的格式表述。
在上面的例子里,我们在“封包详细信息”中选择查看TCP端口(80),其对应的16进制数据将自动显示在下面的面板左半部分中(0050),而右半部分显示的是16进制翻译成的ASCII码。
【实验内容】
1.ARP\ICMP协议分析
(1)查看本机IP地址与MAC地址
在命令行中输入命令:
ipconfig/all后显示的结果如图2-5所示:
图2-5
(2)操作本机高速缓存中的ARP表
a.查看高速缓存中的ARP表
查看命令:
arp-a
运行arp–a命令,查看运行结果如图2-6所示:
图2-6
因为ARP表项在没有进行手工配置前,通常都是动态ARP表项,所以不同时间运行arp–a命令,运行结果也不大相同。
(3)运行WireShark软件,选择capture---options,在capturefilter文本框中输入过滤条件,使得只监听进出本机(如IP为172.31.62.36)的arp数据包。
输入的过滤条件应该怎样编写?
点击start开始监听。
用ping命令去ping局域网中的其它主机B(172.31.62.35),且主机B的IP地址不在本机的ARP高速缓存中(如果想ping的机器的IP地址在缓存内,也可现将该条记录删除在进行实验。
删除ARP静态表项的命令:
arp –d IP地址 例如:
arp –d 172.31.62.35;或清空表项:
arp–d*)。
WireShark中开始监听到数据包,当没有数据包到来后,停止监听并保存监听记录为2-1.pcap-ng。
示例监听结果如图2-7所示:
图2-7
(4)对监听到的数据进行分析:
结合arp协议工作原理对监听记录进行分析;选择第一条监听记录,分析ARP报文格式。
ARP报文格式如下:
硬件类型;协议类型;硬件地址长度;协议长度;opcode:
request;发送方硬件地址;发送方ip地址;目标硬件地址;目标ip地址
再次用命令arp-a查看ARP表项的变化情况,可以发现多了B的表项。
如图2-8所示:
图2-8
(5)此时,在WireShark中设置capturefilter使得只监听进出本机(如IP为172.31.62.36)的ICMP数据包。
点击start按钮进行监听。
用ping命令再去ping主机B,保存监听记录为2-2.pcap-ng。
结果如图2-9所示:
图2-9
结合ICMP协议的工作原理对监听记录进行分析:
●选择一条“Echo(ping)request”记录,查看其组成,分析IP报文和ICMP询问报文的格式,并找出ICMP询问报文数据部分的内容;
●分析ICMP应答报文的格式。
2.ICMP的应用——tracert
(1)监听准备
运行WireShark软件,选择capture---options,在capturefilter文本框中输入icmp,点击start开始监听。
(2)运行命令tracert
打开命令行程序,输入命令:
tracert。
观察返回信息(截图保存)。
并且可以发现WireShark中收集了一连串记录。
保存监听记录为2-3.pcap-ng。
(3)分析监听结果
利用监听结果,分析ICMP超时差错报告报文:
●选择一条“Timetoliveexceeded”记录,分析ICMP超时差错报告报文的格式;
●选择一条“Timetoliveexceeded”记录,其中的两个IP首部是一样的吗?
为什么?
●针对“Echo(ping)request”记录,观察每个ICMP报文的初始TTL值并记录源主机到目的主机所经过的路径。
【实验报告】
实验报告正文部分格式及内容如下:
实验目的:
给出本次实验所涉及并要求掌握的知识点。
实验内容:
给出实验的具体内容。
实验环境:
给出完成实验所需要的硬件环境、软件等。
实验步骤;给出完成实验所做的各种准备及实验时主要步骤并附上各个过程的截图。
实验数据及结果分析:
给出实验时所用数据,实验的结果,以及对结果的分析。
实验总结与心得:
总结实验过程,分析实验中出现的问题及解决方法,总结实验的心得体会,并提出实验的改进意见。