资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
Wireshark 的数据包截获与协议分析1 引言在数据包的截获方面,Winpcap 是一个可在 Windows 环境下运行的包俘获结构,它由三部分组成:一个 数据包截获驱动程序、一个底层动态链接库(Packet.dll)和一个高层静态链接库(wpcap.lib)。它的核心部分是 数据包俘获驱动程序,在 Windows NT/2000 系统中,它实现为一个内核驱动程序(packet.sys),在 Windows 95/98 系 统 中 是 一 个 虚 拟 设 备 驱 动 程 序 (packet.vxd), 包 俘 获 驱 动 程 序 通 过 NDIS(Network Driver Interface Specification)同网络适配器的驱动程序进行通信,NDIS 是网络代码的一部分,它负责管理各种网络适配器以 及在适配器和网络协议软件之间的通信。在库的高层是一个动态链接库(packet.dll)和一个静态链接库 (wpcap.lib),这两个库的作用是将俘获应用程序同包俘获驱动程序相隔离,屏蔽低层的实现细节,避免在 程序中直接使用系统调用或 IOCTL 命令,为应用程序提供系统独立的高层接口(API 函数) ,从而在 Windows9x、Windows2000/XP 系统下,对驱动程序的系统调用都是相同的。使用 Winpcap,我们可以编写出用于网络协议实验分析、故障诊断、网络安全和监视等各种应用程序, 这方面的一个典型例子就是可在 Windows 系统下运行的 Wireshark,Wireshark 和 Winpcap 都可从网上下载, 通过 Wireshark 我们可以从网上拦截数据包并对数据包进行网络协议分析,下面介绍一个分析实例。2 数据包的截获与链路层协议分析 Wireshark 安装完成后,单击它的 CaptureStart 菜单,打开俘获选项对话框,在这些选项中比较重要的 是设置混杂模式(Promiscuous mode)选项,选中这个选项使得网卡并不检验数据帧的目的地址,从而它 可以截获网上的任何帧,其他选项可用默认设置,再单击 OK 按钮即可进行数据包截获,截获的数据帧分别在 Wireshark 的 包 列 表 (Packet List)、包细节(Packet Details)和包字节(Packet Bytes) 三个窗口中显示。 依次显示了这三个窗口的部 分内容,最上面的包列表窗口按俘获的顺序显示出 帧的一般信息,如被俘获的时间、包的协议类型等。 当应用层的数据通过网络协议栈(如 TCP/IP 协议 栈)到达物理层传输时,各层协议都要在数据包上 封装一个报头,而中间的包细节窗口就从低层到高 层显示出数据包的各层协议信息,在下面的包字节 窗口上,则以十六进制和 ASCII 码显示了被截获数 据包的详细内容。1. 数据链路层的分析数据链路层一般采用以太网的 IEEE802.3 标准。其中数据部分包括了 更高层的协议内容,由于前导码被网络硬件用于接 收信号的同步,因此 Wireshark 已从数据帧中去掉了 前导码,在 的包细节窗口中,显示出帧的头部 信息,可以读出这个帧的目的物理地址为 00:90:1a:40:2a:d0,源物理地址为 00:e0:4c:82:22:6b。 帧类型是 0x8864,它表示 PPPOE 会话,在 ADSL 宽带网接入中,数据链路层通常要包括这种在以太 网上的点到点协议(PPPOE) 。包字节窗口中紧跟 着高亮显示的帧头部就是帧的数据区和 CRC 校验 码,并未显示帧数据区的全部。3 网络层协议的分析 网络层协议在 TCP/IP 中包括网间互联协议 (IP) 消息控制协议 、 (ICMP) 路由信息协议 、 (RIP) 等, 它要实现地址解析及路由管理等功能, IP 协 由 议中的数据报格式可以分析出版本号为 4,即这个 数据报为 IPv4,报头长度 20 字节,服务类型 00 表 示是普通数据包,数据报总长度 886 字节,标识为 0x3e06,当数据报需要分片传送时,这个域用来指 出接收到的数据片属于哪一个数据报, 标志 04 表示 该报文不分片,片偏移为 0,生存时间 128,协议域 06 表示上层协议是 TCP,头部校验和 0xcce3 表示 正确,源 IP 地址是 220.166.24.211,目的 IP 地址为 202.108.44.178, 包字节窗口中的数据区显示了上层 协议的 TCP 段内容。4 传输层协议的分析 TCP/IP 的传输层协议包括用户数据报协议 (UDP) 、传输控制协议(TCP)等,TCP 要在 IP 服务上提供可靠的、面向连接的字节流传输,它是 以数据段(segment)的形式交换数据,忽略选项后 的数据段格式 从包细节窗口可看出,TCP 源端口号 1140,目 的端口号 80, 其中 80 是 HTTP 协议的保留端口号, 在包字节窗口中显示出序列号的实际值是 0x000af00b,但它等于本次连接的初始序号加上报 文第一个字节在整个数据流中的序号,因此包细节 窗口显示了相对于建立连接的初始握手序列号的相 对值 1,图中的下一序列号 847 就意味着数据区长 度是 846 字节。同理确认号的相对值也为 1,头部 长度 20 字节,标志位 0x0018 指示 ACK 标志为 1, 表明确认号有效,PSH 为 1 表示接收方将数据不做 缓存,将接收到的数据立即传输给应用层。窗口字 段指示发送方想要接收的最大字节数为 8484, 这个 域用于进行流量控制, 校验和 0x1168 表明正确。 协 议头部以后显示了本层协议的数据区。5 应用层协议的分析 TCP/IP 的应用层协议通常包括文件传输协议 (FTP)、简单邮件传输协议(SMTP) 、超文本传输 协议(HTTP)等等,使用 Wireshark 也可方便地对它 们进行分析,例如对于 HTTP 协议,可查看客户端 的 GET、POST 等请求方法、请求头内容、请求数 据,服务器端应答的状态行、响应头、响应数据等, 具体分析方法与上面类似,这里不再重复。ASSIC 第 032 号及第 127 号(共 34 个)是控制字符或通讯专用字符,如控制符:LF(换行) 、 CR(回车) 、FF(换页) 、DEL(删除) 、BEL(振铃)等;通讯专用字符:SOH(文头) 、EOT(文尾) 、ACK(确认)等; 第 33126 号(共 94 个)是字符,其中第 4857 号为 09 十个阿拉伯数字;6590 号为 26 个大写英文字母,97122 号为 26 个小写英文字母,其余为一些标点符号、运 算符号等。 三次握手抓包过程分析三次握手抓包过程分析 首先来一张三次握手经典图解 下面使用下面使用 wireshark 实际分析三次握手过程实际分析三次握手过程 1.打开 wireshark,打开浏览器输入网址 blog.csdn.net/hello_yz 并访问; 2.停止捕获 ,红方块。不停止的话后面一直抓一直抓.; 3.在封包列表中可以找到下图数据: 在图中可以看到,访问 blog.csdn.net/hello_yz 网站过程中,wireshark 截获到了三次握手的三个数据包,第四个包才是 http 的。这也说明 http 确实是使用 TCP 建立连接的。 下面进行三个数据包的详细分析。 首先对 封包详细信息分析说明封包详细信息分析说明 选中一条 TCP 协议数据包,它的封包详细信息如下图: 第一次握手数据包,可以看到客户端发送一个 TCP,标志位为 SYN,序列号为 0, 代表客户端请求建立连接。如下图:第二次握手数据包,可以看到服务器发回确认包, 标志位为 SYN,ACK. 将确认序号 ACK 设置为 1.如下图: 第三次握手数据包,可以看到客户端再次发送确认包(ACK) ,标志位为 ACK,将 sequence+1.如下图:
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号