基于Wireshark的网络数据包内容解析_第1页
基于Wireshark的网络数据包内容解析_第2页
基于Wireshark的网络数据包内容解析_第3页
基于Wireshark的网络数据包内容解析_第4页
基于Wireshark的网络数据包内容解析_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Wireshark网络数据包内容解析摘

本课程设计是利用抓包软件Wireshark,对网络服务器与客户端进行网络数据收发过程中产生的包进行抓取,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的计过程中对各种包进行抓取分析种包之间比较,了解每种包的传输过程与结构,通过本次课程设计,能很好的运用Wireshark对数据包分析和Wireshark各种运用,达到课程设计的目的。关键词IP议;TCP议;UDP协议;ARP议;Wireshark;计算机网络;1

言本课程设计主要是设计一个基于的网络数据包内容解析,抓取数据包,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的1.1课设目Wireshark是一个网络封包分析软件可以对网络中各种网络数据包进行抓取并尽可能显示出最为详细的网络封包资料计算机网络课程设计是在学习了计算机网络相关理论后,进行综合训练课程,其目的是:了解并会初步使用,能在所用电脑上进行抓包;了解IP据包格式,能应用该软件分析数据包格式。1.2课设要按要求编写课程设计报告书,能正确阐述设计结果。通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。(3)学会文献检索的基本方法和综合运用文献的能力。(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。1.3课设背一Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。网络封包分析软件的功能可想像成"电工技师使用电表来量测电流、电压、电"的工作-只是将场景移植到网络上,并将电线替换成网络线。

在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。的出现改变了这一切。在GNUGPL通用许可证的保障范围底下使用者可以以免费的代价取得软件与其源代码拥有针对其源代码修改及客制化的权利。Wireshark目前全世界最广泛的网络封包分析软件之一。二、网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。网络嗅探是网络监控系统的实现基础。网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的。网络嗅探的基础是数据捕获网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同,因此被称为网络嗅探。网络嗅探是网络监控系统的实现基础,首先就来详细地介绍一下网络嗅探技术,接下来就其在网络监控系统的运用进行阐述。2网络协议础知识2.1IP协议(1)IP协议介绍IP是英文InternetProtocol网络互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。(2)IP协议的网络互连实现各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。IP议实际上是一套由软件程序组成的协议软件,它把各种不同“帧”统一转换成“IP

数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。3IP数据报TCP/IP协议定义了一个在因特网上传输的包,称IP数据报(IPDatagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成,其格式如图2.1示:数据报首部

数据报的数据区图IP数报一般格式IP数据报的详细格式如图2.2所示:0371531版本

首部长度服务类型

总长度标识

标志

片偏移生存时间

协议源IP址目的IP址选项数据部分图IP数报的详细格

头校验和填充域IP数据报固定部分各字段含义:(1)版本

占4指IP协议的版本信双方使用的IP议版本必须一致。目前广泛使用的IP议版本号为(即IPv4于IPv6,目前还处于草案阶段。(2)部长度

占位,可表示的最大十进制数值是。请注意,这个字段所表示数的单位是32字长1个位字长是4字节因此,当IP首部长度为1111时(即十进制的部长度就达到60节。当IP组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是节(即首部长度为0101时不使用任何选项。(3)分服务

占位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(DifferentiatedServices)。只有在使用区分服务时,这个字段才起作用。(4)长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。在IP下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(MaximumTransferUnit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。(5)(identification)

占16位IP软件在存储器中持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。(6)(flag)

占位,但目前只有2位有意义。标志字段中的最低位记为MF(MoreFragment)MF=1即表示后面“还有分片”的数据报。表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don’tFragment),意思是“不能分片”。只有当时才允许分片。(7)偏移

占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节64)的整数倍。(8)存时间

占位,生存时间字段常用的的英文缩写是TTL(TimeToLive)表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当值为0时,就丢弃这个数据报。(9)议

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

占16。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。(11)源地址(12)目的地址

占32位。占32。IP数据报可选部分字段含义:IP部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取于所选择的项目。某些选项项目只需要1个字节,它只包括1字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4节的整数倍。

协(一)ARP协议简介:ARP协议是“AddressResolutionProtocol址解析协议)的缩写。在局域网中,网络中实际传输的是“帧帧里面是有目标主机的地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的地址。是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标地址转换成目标MAC地址的过程议的基本功能就是通过目标设备的地址目标设备的地址,以保证通信的顺利进行。硬件类型,ar_hrd(ARPHRD_ETHER)协议类型,ar_pro(ETHERTYPE_IP)硬件地址长度,协议地址长度,ether_dhostar_oparp_shaarp_spaarp_tpa以太网目的地址

以太网源地址

帧类型

发送者硬件地址

发送者地

目标硬件

目标地址226464以太网首部

ARP部ether_header()arphdr)

以太网字)图ARP请回答格(二)ARP协议的利用和相关原理介绍:一、交换网络的嗅探ARP协议并不只在发送了请求才接收ARP应答。当计算机接收到应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,在上面的假设网络中,B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是(的IP地址地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC这里被伪造了当A接收到B伪造的ARP应答,就会更新本地的缓存,将本地的对应表更换为接收到的数据格式,由于这一切都是A的系统内核自动完成的,A可不知道被伪造了。ARP欺骗的主要用途就是进行在交换网络中的嗅探。有关交换网络的嗅探不是本文的讨论内容。二、IP地址冲突在网络连接的时候,如果网络中存在相IP地址的主机的时候,就会报告出IP地址冲突的警告。假设某主机B规定地址为,如果它处于开机状态,那么其他机A更改IP地址为会造成IP地址冲突。其原理就是:主A在连接网络(或更改IP地址的时候就会向网络发送ARP广播自己的IP地址也就是。如果网络中存在相同IP地址的主机B那么B就会通过ARP来reply该地址当A接到这个reply后,A就会跳出IP地址冲突的警告,当然也会有警告。因此用ARP欺骗可以来伪造这个,从而使目标一直遭受地址冲突警告的困扰。三、阻止目标的数据包通过网关在一个局域网内通过网关上网那么连接外部的计算机上的缓存中就存在网关IP-MAC对应记录如果该记录被更改那么该计算机向外发送的数据包总是发送到了错误的网关硬件地址上,这样,该计算机就不能够上网了。这里也主要是通过欺骗进行的。以下两种办法达到这样的目的:向目标发送伪造的ARP应答数据包中发送方的IP地址为网关的地址地址则为一个伪造的地址。当目标接收到该包,那么就更新自身的缓存。如果该欺骗一直持续下去,那么目标的网关缓存一直是一个被伪造的错误记录。当然,如果有些了解的人查看ARP-a,就知道问题所在了。欺骗网关。向网关发送伪造ARP应答数据包,其中发送方的IP地址为目标的IP地址而MAC地址则为一个伪造的地址这样网关上的目标记录就是一个错误的,网关发送给目标的数据报都是使用了错误的地址。这种情况下,目标能够发送数据到网关,却不能接收到网关的任何数据。同时,目标自己查看ARP-a却看不出任问题来。四、通过ARP检测混杂模式节点在混杂模式中,网卡进行包过滤不同于普通模式。本来在普通模式下,只有本地地址的数据包或者广播(多播等)才会被网卡提交给系统核心,否则的话,这些数据包就直接被网卡抛弃。现在,混合模式让所有经过的数据包都传递给系统核心,然后被sniffer等程序利用。通过特殊设计的请求可以用来在一定程度上检测处于混杂模式的节点比如对网络中的每个节点都发送MAC地址为FF-FF-FF-FF-FF-FEARP请求对于网卡来说这不是一个广播地址FF-FF-FF-FF-FF-FF以处于普通模式的节点就会直接抛弃该数据包,但是多数操作系统核心都认为这是一个广播地址,如果有一般sniffer程序存在,并设置网卡为混杂模式,那么系统核心就会作出应答,这样就可以判断这些节点是否存在嗅探器了。可以查看,很多基于的攻击都是通过ARP欺骗实现的。至于欺骗的防范,还是尽可能使用静态的ARP。对于WIN,使用来进行静态ARP的设置。当然,如果能够完全使用静态的IP+MAC对应,就更好了,因为静态的ARP缓存只是相对的。可以有一些方法来实现欺骗的检测。设置一ARP的嗅探器,其中维护着一个本地网络的IP-MAC地址的静态对应表看所有经过的数据查其中的对应关系,如果捕获的IP-MAC对应关系和维护的静态对应关系对应不上,那么就表明是一个欺骗的ARP数据包了。3

网络嗅探工作原理与析3.1

基获据机运用以太网数据捕获的原理使得信息捕获系统能够拦截到我们所要的信息这是捕获数据包的物理基础。在网络数据包的捕获过程中,首先,数据包捕获系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包,这就要求一部分程序要运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖的,WinPcap的解决方案里它是由内核级的数据包监听设备驱动程序NPF实现的。WinPcap开发小组针对不同版本的indows操作系统提供了不同的驱动。这些驱动不仅提供了基本的特性,例如抓包injection;还有更高级的特性,例如可编程的过滤器系统和监视引擎等。其次,数据包捕获系统必须有用户级的程序接口,通过这些接口,用户程序可以利用内核驱动提供的高级特性。WinPcap的解决方案中是由两个不同的库Packet.dll和Wpcap.dll库来实现的。WinPcap的优势在于提供了一套标准的抓包接口与ibpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于PF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。前者提供了一个底层PI,伴随着一个独立于Windows操作系统的编程接口,这些API可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap一致的高层抓包函数库(captureprimitives。这些函数使得WinPcap在数据包的捕获过程中可以以一种与网络硬件和操作系统无关的方式进行。3.2

基据捕的程在利用WinPcap捕获分析网络数据时,主要是调用Packet.dll和Wpcap.dll中提供的API函数进行操作。以下是基于WinPcap的网络数据包捕获流程及相应的WinPcap库函数。(1)获取网络适配器信息利用WinPcap捕获数据包的第一步是要获得本地的网络适配器(网卡)列表。WinPcap提供Pcap_findalldevs()和Pcap_findalldev_ex()两个函数来实现些功能,这两个API函数都返回一个pcap_if结构列表,列表的每项内容都含有全面的网卡信息,尤其是字段名字和含有名字的描述以及有关驱动器的易读信息。(2)设置并编译过滤器WinPcap使用的过滤规则兼容cpdump的过滤规则,它提供一种高效的方法来捕获网络数据包的某些数据,且常和系统的捕获机制相集成。函数Pcap_compile()Pcap_setfilter()用来实现过滤数据的功能Pcap_compile()来编译一个过滤设备,它通过一个高层的boolean型变量和字串产生一系列的能够被底层驱动所解释的二进制编码boolean表示语法能够在这个文件的过滤表示语法中找到pcap_setfilter()用来联系一个在内核驱动上过滤的过滤器,这时所有网络数据包都将流经过滤器,并拷贝到应用程序中。(3)打开网络设备使用函数Pcap_open()或者Pcap_open_line()。函数有三个参snaplen、promisc、to_ms。snaplen用于指定要捕获数据包的长度,最大为65535,如果设定一个值,则捕获到大于这个设定值的数据时,后面的数据会被截断掉Promisc表示是否把网卡设置为混杂模式,如果1表示设为混杂模式,在通常情况下网卡只接受发往它的数据包而忽略发往其他主机的数据包。但网卡处于混杂模式时它将接收所有的流经它的数据包,这就意味着在共享介质的情况下我们可以捕获到其它主机的数据包大部分的数据包捕获程序都将混杂模式设为默认。to_ms参数指定读数据的超时控制,超时以毫秒计算,当在超时时间内网卡上没有数据到来时对网卡的读操作将返回。(4)捕获数据包一旦网卡被打开,就可以调用Pcap_next()Pacp_next_ex()或Pcap_loop()进行数据包的捕获。Pcap_next()和Pacp_next_ex()示捕获一个可用数据包就返回;而Pcap_loop()表示捕获多个数据包,可以循环捕获数据包,直到出现错误为止。这三个函数都有返回一个指向Pcap_pkthdr结构的指针,Pcap_next()与Pcap_next_ex()功能相似,不过后者只在win32环境下运行。(5)读取离线数据包pcap_dump_open()被用来打开一个savefile供写入数据包。pcap_open_offlin()被用来打开savefile,并用pcap_next()来逐条读取数据包。4

基于Wireshark的络数据包内解析4.1捕数包运行Wireshark软件,点击

,点击开始如图:图对数据进行捕获一段时间后,捕获到网络数据包,如图:图捕获到数据4.2数包析运用Wireshark捕获的数据包,如图图4-3

捕获数包如上图所示,可看到很多捕获的数据。第一列是捕获数据的编号;第二列是捕获数据的相对时间,从开始捕获算为0.000;第三列是源地址,第四列是目的地址;第五列是数据包的信息。选中其中7数据包,双击,得到整体Wireshark的窗口,主要被分成三部分,如图:图数据帧体图上面部分是所有数据帧的列表;中间部分是数据帧的描述信息;下面部分是帧里面的数据。各层数据包解析帧号时间

源地址

目的地址

高层协议包内信息概况No.TimeSourceDestinationProtocolInfo1252TCP2764http[SYN]Seq=0MSS=1460端口[请求建立TCP链接]

源端口>目的(一)、物理层的数据帧:Frame1(62onwire,62bytes//帧,线路62字节,实际捕获62节Time:Jan21,//捕获日期和时间[Timedeltafrompreviouspacket:0.00000seconds]//此包与前一包的时间间隔[Timefirstframe://此包与第1帧的间隔时间Frame//62bytes//

帧序号帧长度CaptureLength:62bytes//捕获长度[Frame//此帧是否做了标记:否[Protocolsframe:eth:ip:tcp]//

帧内封装的协议层次结构[ColoringRule//

用不同颜色染色标记的协议名称:HTTP[ColoringRule||tcp.port==80]//染色显示规则的字符串:(二)数据链路层以太网帧头部信息:EthernetII,AcerTech_5b:d4:61(00:00:e2:5b:d4:61),(00:d0:2b:e5:1d:0a)//以太网协议版本II,源地址:厂名序号(网卡地址的:厂名_序号(网卡地址)Jetcell_e5:1d:0a目的:厂名_序号(网卡地址)AcerTech_5b:d4:61(00:00:e2:5b:d4:61)//源:厂名_号(网卡地址)Type:IP(0x0800)//帧内封装的上层协议类型为IP(十六进制码0800)(三)互联网层IP包头部信息:Protocol,25(25),Dst://互联网协议,源址,目的地址Version:4互联网协议IPv4据报字段结构图图IP字报结Headerlength:20bytes//IP包头部长度DifferentiatedServices//差分服务字段(四)传输层数据段头部信息:ControlSrcPort:DstSeq:0,0//传输控制协议的内容2764(2764)源端口名口号)http//目的端口名端口号)0sequencenumber)//序列号(相对序列号)Headerlength:28bytes//头部长度0x02(SYN)//标记字段(本字段是,是请求建立TCP连)Window65535//

流量控制的窗口大小Checksum:0xf73b[correct]//据段的校验和Options://

可选项4.3数帧容析在下图中Filter的编辑框中输入ARP选中其中一个ARP的数据帧内容解析如图:图filter选出来的ARP数据帧选择第一个帧进行内容分析:这个帧分为三部分,先展开第一部分,如图:图4-7帧的基信息在上图中我们看到这个帧的一些基本信息:帧的编号:1(捕获时的编号)帧的大小60节再加上四个字节的计算在里面就刚好满足最小64字节的要求。帧被捕获的日期和时间:„„因为是第一个帧,所以捕获前一个帧跟第一个帧的时间都为;帧装载的协议:展开帧的第二部分,如图:图帧的网信息目的地址(ff:ff:ff:ff:ff:ff(这是个MAC地,这个MAC地址是一个广播地址,就是局域网中的所有计算机都会接收这个数据帧)源地址(SourceCompalin_20::70:5ab6:20:49:)帧中封装的协议类型:0x0806,这个是协议的类型编号:是协议中填充的数据,为了保证帧最少有64节展开帧的第三部分,如图:硬件类型:以太网协议类型:IP硬件大小:6协议大小:4发送方MAC址发送方IP址目的MAC址目的IP址

图帧的地信息()4Broadcast(ff:ff:ff:ff:ff:ff)544.4议用析如图3-6,ARP帧的本机发出的信息:Whohas54//本主机向同一个网段内各个主机询问Tell4//请求回复本主机,地址为4Broadcast(ff:ff:ff:ff:ff:ff)//目标MAC地址是“FF.FF.FF.FF.FF.FF表示向同一网段内的所有主机发出这样的询问:“54的MAC地址是什么Compalin_20:49:b6(70

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论