Wireshark TS | Packet Challenge 之 HTTP 案例分析

admin 2023年2月16日22:11:43评论10 views字数 4998阅读16分39秒阅读模式

天地皆空,唯有人在其中苦


前言

来自于 Sharkfest Packet Challenge 中的一个数据包案例,Sharkfest 是 Wireshark 官方组织的一年一度的大会,致力于在 Wireshark 开发人员和用户社区之间分享知识、经验和最佳实践。
印象中早期是一年一次,近几年发展成一年两次,一次貌似固定在美国,一次会在其他地区,像是欧洲或亚洲。Packet Challenge 是大会其中一个比较有意思的活动环节,通过一系列数据包案例设置关卡,参会人员进行分析挑战,测试综合分析能力。

题目信息
本次案例为 Sharkfest 2015 Packet Challenge 中的第二个题目 GO GO SPEED RACER,数据包跟踪文件为 http‐gogo.pcapng


主要描述如下:
1. What is the HTTP response time for the GET / request in packet 4?
2. How many packets have the SYN bit set on in this trace file?
3. What is the name of the largest HTTP object downloaded to this client?
4. How long did it take to download the browser tab icon, favicon.ico (include TCP connection setup/teardown)?
5. Frame 131 is a spurious retransmission. Which previous frame caused this to be marked “spurious”?

数据包信息
数据包跟踪文件基本信息如下:
λ capinfos http-gogo.pcapngFile name:           http-gogo.pcapngFile type:           Wireshark/... - pcapngFile encapsulation:  EthernetFile timestamp precision:  microseconds (6)Packet size limit:   file hdr: (not set)Number of packets:   904File size:           670 kBData size:           639 kBCapture duration:    25.295004 secondsFirst packet time:   2013-05-17 04:34:45.147106Last packet time:    2013-05-17 04:35:10.442110Data byte rate:      25 kBpsData bit rate:       202 kbpsAverage packet size: 707.62 bytesAverage packet rate: 35 packets/sSHA256:              d7206ad61a744fe27a62fc4ee1798f5a925e946dbd18fcf23e53790da23e384dRIPEMD160:           4a3c95a711886b96fcbdac63c5abbc917ced054eSHA1:                5888fedc0be380ec14be6e2b79eb1bda889edc35Strict time order:   TrueCapture oper-sys:    64-bit Windows 7 Service Pack 1, build 7601Capture application: Dumpcap 1.10.0pre1-49307 (SVN Rev 49307 from /trunk-1.10)Number of interfaces in file: 1Interface #0 info:                     Name = DeviceNPF_{6E79FEC0-FF79-4970-96E4-EEFF300A9B9F}                     Encapsulation = Ethernet (1 - ether)                     Capture length = 65535                     Time precision = microseconds (6)                     Time ticks per second = 1000000                     Time resolution = 0x06                     Operating system = 64-bit Windows 7 Service Pack 1, build 7601                     Number of stat entries = 1                     Number of packets = 904
λ

Winows 7 系统上直接通过 Wireshark 捕获,无截断,捕获数据包数量 904 个,捕获持续时间为 25.3 秒,平均速率 202 kbps,其中 IPv4 和 TCP 会话信息较多。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


家信息显示如下,其中告警级别中存在 TCP 零窗口、乱序、分段未捕获到等问题,相对数量不是那么多,需要实际进入数据包分析。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


数据包分析

因题目和问题和 HTTP 相关,简单筛选辨别下数据包信息,通过 tcp.port 过滤出 HTTP 或 HTTPS 相关的数据包数量为 904 ,和此数据包跟踪文件数据包总量一样,另 TCP 流数量经排序去重统计后得知为 51

λ tshark -r http-gogo.pcapng -Y "tcp.port in {80,443}" | wc -l904
λ tshark -r http-gogo.pcapng -Y "tcp.port in {80,443}" -T fields -e tcp.stream | sort -n | uniq | wc -l51

考虑到所涉及数据包信息较多,故直接进入各题目实际分析。


1. What is the HTTP response time for the GET / request in packet 4?

数据包 4 中的 GET / request 的 HTTP 响应时间是多少?


分析步骤

No.4 数据包为一个 HTTP GET / request ,在 Packet Details 视图中可以看到 Wireshark 提示 [Response in frame:7] ,说明 HTTP Response 数据包在 No.7,同时在 [Packet List] 视图中最左竖边也有两个横向的小箭头标识,一个指向 No.4,另一个指向 No.7 ,同样说明是一对 HTTP 的请求和响应数据包。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


因为要分析的是 HTTP 响应时间的值,所以转向 No.7 数据包细节中,可以看到 [Time since request: 0.204365000 seconds] ,这个就是 Wireshark 根据上下文所关联 HTTP Request 数据包时间所得出的时间间隔。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


分析答案

数据包 4 中的 GET / request 的 HTTP 响应时间是:0.204365000 秒。


2. How many packets have the SYN bit set on in this trace file?

数据包跟踪文件中有多少个数据包包含 SYN 标志位设置。


分析步骤

这个题目比较简单,通过 TCP Flags 过滤即可,但在此想说一点的是在 Wireshark 显示过滤中,tcp.flags.syntcp.flags.syn == 1 这两者是有明显区别的,前者指的是该字段存在与否(包含 0 和 1),而后者才是 SYN 置 1(也就是过滤出 TCP 三次握手中的 SYN 和 SYN/ACK) 。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


通过
tcp.flags.syn == 1 过滤得出所有的 SYN 和 SYN/ACK 数据包共有 101 个,占比 11.2%。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


使用 Tshark 方式过滤如下

λ tshark -r http-gogo.pcapng -Y "tcp.flags.syn==1" | wc -l101
λ


分析答案

数据包跟踪文件中有多少个数据包包含 SYN 标志位设置:101 个。

英语不好,也不会做题,权当题目问的是 SYN 置 1 的数量,理解分析方法就好~ 😂


3. What is the name of the largest HTTP object downloaded to this client?

下载到此客户端的最大 HTTP object 的名称是什么?


分析步骤

HTTP object 可以直接通过 Wireshark File -> Export Objects-> HTTP... 得到以下信息。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


之后通过
Size 从大到小排序即可,因为同一个文件可能存在于多个数据包,所以再下拉遍历下数据包文件名和大小,可以看到实际最大一个文件是 OpenSans-Semibold.ttf

Wireshark TS | Packet Challenge 之 HTTP 案例分析


Wireshark TS | Packet Challenge 之 HTTP 案例分析


文件 OpenSans-Semibold.ttf 大小为 221328 字节

Wireshark TS | Packet Challenge 之 HTTP 案例分析


个人来说,本道题用 Tshark 来操作分析可能更加简单,通过
--export-objects 参数导出 HTTP Object 到 test 文件夹中。

tshark -r http-gogo.pcapng -q --export-objects http,test


test 文件夹中所有的 HTTP Object 如下

Wireshark TS | Packet Challenge 之 HTTP 案例分析

Wireshark TS | Packet Challenge 之 HTTP 案例分析


分析答案

下载到此客户端的最大 HTTP object 的名称是:OpenSans-Semibold.ttf 。


4. How long did it take to download the browser tab icon, favicon.ico (include TCP connection setup/teardown)?

下载浏览器标签图标 favicon.ico (包括 TCP 连接设置/拆除)需要多长时间?


分析步骤

因为需要找到包含下载 favicon.ico的 TCP 连接,所以可以先通过 http 过滤 uri 的方式找到该连接

http.request.uri contains "favicon.ico"


Wireshark TS | Packet Challenge 之 HTTP 案例分析


TCP Stream 为 47

Wireshark TS | Packet Challenge 之 HTTP 案例分析


展开该流后,可得相关数据包,共 13 个。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


而此流的时间,可以直接点选 No.846 详细信息,[Timestamps] 中可以得到最后一个数据包和第一个数据包的时间差值。

Wireshark TS | Packet Challenge 之 HTTP 案例分析

同样在会话视图中也可以看到该流的统计时间,0.1462 秒。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


分析答案

下载浏览器标签图标 favicon.ico (包括 TCP 连接设置/拆除)需要:0.146238000 秒。


5. Frame 131 is a spurious retransmission. Which previous frame caused this to be marked “spurious”?

数据帧 131 为一个虚假重传,是哪一个前帧导致这个帧被标记为“虚假”?


分析步骤

虚假重传,简单来说就是在数据包跟踪文件中针对某个 Seq Num 的数据包已经 ACK 确认过,之后却又收到一次同样 Seq Num 的数据包。

根据 No.131 数据帧所在 TCP 流分析,可以看出 No.121、No.126 和 No.127 已经完成了一次 TCP 四次挥手,但服务器却由于某种问题又发送了一次 No.130 ACK,以及 No.131 重传的 FIN/ACK,疑似服务器并没有收到 No.127 而产生的超时重传。

Wireshark TS | Packet Challenge 之 HTTP 案例分析


参考 Wireshark 官网文档对于 TCP Spurious Retransmission 的定义:

Checks for a retransmission based on analysis data in the reverse direction. Set when all of the following are true:

  • The SYN or FIN flag is set.

  • This is not a keepalive packet.

  • The segment length is greater than zero.

  • Data for this flow has been acknowledged. That is, the last-seen acknowledgement number has been set.

  • The next sequence number is less than or equal to the last-seen acknowledgement number.

Supersedes “Fast Retransmission”, “Out-Of-Order”, and “Retransmission”.


分析答案

数据帧 131 为一个虚假重传,是哪一个前帧导致这个帧被标记为“虚假”:No.127 。



Wireshark TS | Packet Challenge 之 HTTP 案例分析


往期推荐


1. Wireshark 提示和技巧 | 捕获点之 TCP 三次握手

2. Wireshark 提示和技巧 | a == ${a} 显示过滤宏

3. Wireshark TS | Slow Slow Slow Web

4. Wireshark TS | 消失的 TCP DUP ACK

5. 网络设备 MTU MSS Jumboframe 全解



后台回复「TT」获取 Wireshark 提示和技巧系列 合集
后台回复「TS」获取 Wireshark Troubleshooting系列 合集
如需交流,可后台直接留言,我会在第一时间回复,谢谢!
Wireshark TS | Packet Challenge 之 HTTP 案例分析

原文始发于微信公众号(Echo Reply):Wireshark TS | Packet Challenge 之 HTTP 案例分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日22:11:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Wireshark TS | Packet Challenge 之 HTTP 案例分析https://cn-sec.com/archives/1280335.html

发表评论

匿名网友 填写信息