Wireshark TS | Packet Challenge 之 DNS 案例分析

news2025/6/27 0:13:47

前言

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


题目信息

本次案例为 Sharkfest 2015 Packet Challenge 中的第一个题目 PAY ME NOW,数据包跟踪文件为 dnsing.pcapng

主要描述如下:

  1. What IP address(es) are resolved for www.paypal.com?
  2. What is the largest DNS TTL value seen in the trace file?
  3. Which DNS response transaction ID contained the largest number of Answer RRs?
  4. What is the largest DNS response time seen in this trace file?
  5. What company distributes many of PayPal’s web pages?

数据包信息

数据包跟踪文件基本信息如下:

λ capinfos dnsing.pcapng
File name:           dnsing.pcapng
File type:           Wireshark/... - pcapng
File encapsulation:  Ethernet
File timestamp precision:  microseconds (6)
Packet size limit:   file hdr: (not set)
Number of packets:   141
File size:           20 kB
Data size:           15 kB
Capture duration:    272.440501 seconds
First packet time:   2015-06-12 02:59:06.996843
Last packet time:    2015-06-12 03:03:39.437344
Data byte rate:      56 bytes/s
Data bit rate:       449 bits/s
Average packet size: 108.52 bytes
Average packet rate: 0 packets/s
SHA256:              76da7e5f9b7b8bb1b12e1896b1f410a6726d8b18f726e496cd5e5a3ca637eb53
RIPEMD160:           3abd681195e97b8ead28eab62d49707392400a56
SHA1:                0cc7839258fc08dcc50ff30ba3a23b46a2fd2fee
Strict time order:   True
Capture oper-sys:    64-bit Windows 8, build 9200
Capture application: Dumpcap 1.10.5 (SVN Rev 54262 from /trunk-1.10)
Number of interfaces in file: 1
Interface #0 info:
                     Name = \Device\NPF_{F2C7F0C8-39E6-4933-8DAF-3ACFD62516E7}
                     Encapsulation = Ethernet (1 - ether)
                     Capture length = 65535
                     Time precision = microseconds (6)
                     Time ticks per second = 1000000
                     Time resolution = 0x06
                     Operating system = 64-bit Windows 8, build 9200
                     Number of stat entries = 1
                     Number of packets = 141

λ

Windows 8 系统上直接通过 Wireshark 捕获,无截断,捕获数据包数量 141 个,捕获持续时间为 272.4 秒,平均速率 449 bps。


数据包分析

展开数据包文件信息,如下,可以看出基本都是 DNS 协议数据包,或可通过显示过滤表达式 dns简单过滤出 dns 协议的数据包 125 个。

DNS-01


1. What IP address(es) are resolved for www.paypal.com?

需要找出 www.paypal.com 解析的 IP 地址。


分析步骤

因为一般在 DNS 响应包里会包含 QueriesAnswers,也就是查询的域名和响应域名的 IP 信息。

DNS-02

可以通过以下显示过滤表达式过滤。

(dns.qry.name == "www.paypal.com") && dns.a

显示过滤后的数据帧 Info 列信息:

DNS-03

当然 Tshark 也可以完成上述工作:

λ tshark -r dnsing.pcapng -Y '(dns.qry.name == "www.paypal.com") and dns.a' -T fields -e frame.number -e dns.qry.name -e dns.a
9       www.paypal.com  23.13.82.234
12      www.paypal.com  23.196.228.157
42      www.paypal.com  23.196.228.157
90      www.paypal.com  23.196.228.157
113     www.paypal.com  23.13.82.234
125     www.paypal.com  23.196.228.157

分析答案

www.paypal.com 解析IP为:23.13.82.234 和 23.196.228.157


2. What is the largest DNS TTL value seen in the trace file?

在数据包跟踪文件中找出最大 DNS TTL 值。


分析步骤

DNS TTL value 同样存在于 DNS 响应数据包 Answers 信息中,也由于 CNAME 的原因,同一个数据帧中会存在多个 TTL 值。

DNS-04

可以通过显示过滤表达式过滤,当然在 Wireshark 只是过滤出带有该值的数据包,如何判断最大呢?在这可能通过 Tshark 方式可能更加直观。

dns.resp.ttl

过滤出所有带有 DNS TTL value 的数据包。

λ tshark -r dnsing.pcapng -Y "dns.a" -T fields -e frame.number -e dns.resp.ttl
3       176,7196,16
6       737,119,119,119
9       15,16,276,16,533,18
12      58,1,124,1,58,1
15      3025,77,107,2
24      35,35,35,35,35,35,35,35,35,35
27      3106,208,18
34      396,396
35      3002,49,82,13
36      255,317,15
39      3596
42      51,24,117,24,51,14
45      60
48      567,7187,1
55      7182,42,42,42,42
56      268,1
57      233,233,233,233,233
60      171,171,171,171,171,171,171,171,171,171
63      1092,7180,1
66      6576,2726
69      92,175,175,175,175
73      608,56,56,56,56
76      311,1998,5
79      270,270,270,270,270,270
81      425,48
87      2243,23,17
90      1,2,61,2,1,1
95      6404,1786,158,100
98      291,291,291,291,291,291,291,291,291,291,291
100     897,4,26,1
103     219,55,55
106     865,865,865,865,865,865,865,865,865,865
109     1045,172,7
113     1,1,26,1,77,4
116     2186,27,21
123     2844,202,254,9
124     957,84,3
125     203,1,267,1,502,5

λ

处理,去重,排序等等

λ tshark -r dnsing.pcapng -Y "dns.a" -T fields -e dns.resp.ttl | awk 'BEGIN{ RS=","; } { print $0 }' | sort -rn | uniq
7196
7187
7182
7180
6576
6404
3596
3106
3025
3002
2844
2726
2243
2186
1998
1786
1092
1045
957
...

λ

分析答案

数据包跟踪文件中最大 DNS TTL 值 : 7196 。


3. Which DNS response transaction ID contained the largest number of Answer RRs?

找出包含最多数量 Answer RRs 的 DNS 响应事务 ID。


分析步骤

DNS 响应 Transaction IDAnswer RRs 字段值均可在以下信息中找到。

DNS-05

可在 Packet List视图中增加 Transaction IDAnswer RRs 两列,字段分别为 dns.iddns.count.answers 展示如下

DNS-06

重新排序 Answer RRs 列,从大到小

DNS-07

同样使用 Tshark 也可以完成上述工作:

λ  tshark -r dnsing.pcapng -Y "dns.a" -T fields -e dns.id -e dns.count.answers | sort -rn -k2
0x9ab9  11
0xc24b  10
0x9265  10
0x2208  10
0xc8c8  6
0xaf9f  6
0x8579  6
0x7964  6
0x5644  6
0x4fa0  6
0x0f39  6
0x86eb  5
0x5d50  5
0x50d6  5
0x2ba5  5
0xc9f2  4
0x869a  4
0x6d3f  4
0x67b9  4
0x3bec  4
0x2f0e  4
0xd655  3
0xbfa7  3
0xbe32  3
0xb7e4  3
0xafcf  3
0x9fbb  3
0x93bb  3
0x80ba  3
0x7224  3
0x26ca  3
0x03f8  3
0xa64a  2
0x833e  2
0x3a1e  2
0x16a5  2
0x9837  1
0x673d  1

λ

分析答案

包含最多数量 Answer RRs 的 DNS 响应事务 ID : 0x9ab9 。


4. What is the largest DNS response time seen in this trace file?

数据包跟踪文件中最大的 DNS 响应时间是多少。


分析步骤

DNS 响应时长是查询和响应之间的时间间隔,一般也是判断 DNS 性能指标的一种。该字段 dns.time 实际并不存在于数据包中,是通过 Wireshark 上下文解析标识出来,以 [ ] 表示。

DNS-08

可在 Packet List视图中增加 DNSTime 列,字段为 dns.time,同样从大到小展示如下

DNS-09

此数据包跟踪文件中 DNS 查询数据包存在重传现象,因此上述最大响应时间,是和第一个请求数据包关联得出的时间差。


分析答案

数据包跟踪文件中最大的 DNS 响应时间 : 3.044056000 秒。


5. What company distributes many of PayPal’s web pages?

哪家公司分发许多的 PayPal Web 页面?


分析步骤

从 DNS 响应上来看,包含有很多 CNAME 解析,使用了 CDN 相关技术。简单通过显示过滤表达式 (dns.qry.name contains "paypal" ) && (dns.flags.response == 1) 过滤出响应数据包中带有 paypal 相关字样的值,然后根据 dns.resp.name 字段值进行处理,主要如下:

λ  tshark -r dnsing.pcapng -Y '(dns.qry.name contains "paypal" ) && (dns.flags.response == 1)' -T fields -e dns.resp.name | awk 'BEGIN{ RS=","; } { print
$0 }' | sort | uniq

b.stats.paypal.com
c.paypal.com
c.paypal.com.edgekey.net
e4517.g.akamaiedge.net
e6166.a.akamaiedge.net
paypal.112.2o7.net
paypal.d1.sc.omtrdc.net
paypalmanager.paypal.com
ppdirect.paypal.com.akadns.net
slc.stats.paypal.com
t.paypal.com
t.paypal.com.edgekey.net
wlb.paypal.com.akadns.net
www.paypal.com
www.paypal.com.akadns.net
www.paypal.com.edgekey.net
www.paypalobjects.com
www.paypalobjects.com.akadns.net
www.paypalobjects.com.edgekey.net

λ

对国外的 CDN 并没有太多研究,结合上面的显示结果,百度搜索了下应该使用的是 Akamai 公司 CDN

对于这道题也没有太深的理解,不清楚是否还需要做进一步处理,或者有更好的方法。


分析答案

哪家公司分发许多的 PayPal Web 页面 : Akamai。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

艾美捷超氧化物歧化酶检测试剂盒参数说明

超氧化物歧化酶是催化超氧化物离子O2-的歧化反应2O2-+2H →O2+H2O2的酶.EC1.15.1.1.是金属酶,已知在金属酶中有真核生物细胞质的深绿色Cu-Zn酶(分子量约3万)、线粒体、细菌红紫色的M…

Debian系列-在新的GNOME下无法启动Qt

Debian系列-在新的GNOME下无法启动Qt 文章目录Debian系列-在新的GNOME下无法启动Qt摘要启动Qt 报错 No protocol specified解决方法1 打开一个新的终端2 echo $DISPLAY3 export DISPLAY更新一下关键字: Debian、 Qt、 xcb、 No protocol specified、 关键字5摘要 …

转行做程序员,哪种编程语言既高薪又适合你?

“你为什么学习这门编程语言”?大多人当初面对选择这个问题的时候,都只是单纯的“听朋友说”或是百度看到了表面,或者是一拍脑门决定的。其实并不了解这个编程语言的特性和市场现状以及这个语言是否适合自己。 这类的情况还是算是好的&#x…

并发编程学习(四):wait()、nitify()

1、wait、notify原理 Owner 线程发现条件不满足,调用wait()方法,即可进入WaitSet,变为WAITING 状态。BLOCKED和WAITING的线程都处于阻塞状态,不占用CPU时间片。BLOCKED线程会在Owner线程释放锁时唤醒。WAITING线程会在Owner线程调…

【数据库】简答题知识点

数据库系统的结构 数据库系统的逻辑结构可以分为用户级、概念级和物理级三个层次。每个层次的数据库都有自身对数据进行逻辑描述的模式,分另称为外模式、概念模式和内模式。 外模式:是与和具体的应用或者项目有关的逻辑表示,用户可以操作的…

【Proteus仿真】【51单片机】自动浇花灌溉系统设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、DS18B20、PCF8591 ADC、土壤湿度传感器、水位传感器、蜂鸣器模块等。 系统运行后,LCD1602显示传感器检测的温度、湿…

【Linux操作系统】多线程(一)

文章目录1. 线程概念2. 线程控制2.1 创建线程2.2 线程ID2.3 线程等待2.4 线程终止2.5 线程分离3. 线程同互斥与同步3.1 互斥量3.2 死锁3.3 同步-条件变量3.4 生产者消费者模型3.5 POSIX信号量3.6 基于环形队列的生产消费者模型1. 线程概念 线程:是在进程内部运行的…

解决资源消耗,top的运用记录

第一条命令uptime load average 后面的三个数字,分别代表1分钟、5分钟和15分钟内机器的平均负载 使用top命令解决负载问题 Cpu(s)这一行提供了CPU运行情况信息 这些缩写分别代表了不同含义 (1)us:用户CPU时间 运行非优雅的用户进程所占CPU时间的百…

离线下载NLTK依赖包([WinError 10061] 由于目标计算机积极拒绝,无法连接)的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…

房产管理系统CAD图形管理应用有哪些?

数图互通房产管理 数图互通房产管理系统建设涵盖学校所有房屋资源管理业务以及CAD图纸的管理,对不同类型的房屋实现相应的业务子系统,实现完善、高效、可溯的房屋资源业务管理,保证数据的完整性、一致性和精确性,及业务的。 通过…

向内而生 向远而行 | 希尔贝壳荣获“2022年度最具投资价值创新企业”奖

12月22日,以“向内而生 向远而行”为主题的2022年度猎云网创投奖项评选正式落下帷幕,各项榜单评选结果正式发布。希尔贝壳凭借先进的技术创新能力获评“2022年度最具投资价值创新企业”奖。 获奖理由 北京希尔贝壳科技有限公司成立于2017年,…

可视化 相机pose或者 pose视锥

可视化 相机pose或者 pose视锥 https://www.camcalib.io/post/visualizing-camera-calibration-results https://bitbucket.org/iviso/camcalib_multiview_pointcloud_example/src/master/ https://bitbucket.org/iviso/ 其他: https://towardsdatascience.com/c…

快速部署PHP Web环境(nginx php mysql redis)

先看最终效果,如下: 它是什么? 它是 docker 容器虚拟化技术。总共只有几KB大小的描述文件,文件里定义了要安装什么、配置什么,一执行就全自动处理好了。 它有什么用? 解决新来同事搭环境搭半天的问题解…

矽昌-- Station 模式支持

Station 模式支持 1. 修改配置 ​ 在/etc/config/wireless中增加一段即可,实例如下: config wifi-ifaceoption key 12345678option ifname sfi0option network wwanoption encryption psk2ccmpoption device radio0option mode staoption bssid A8:5A:…

玩以太坊链上项目的必备技能(修改器 [modifier]-Solidity之旅十五)

修改器(modifier) 在讲修改器(modifier)之前,我们使用前面几篇文章所学到的知识来实现一个简单的 token 类合约。 // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0;contract InheritanceModifierExampl…

Python获取与处理文件路径/目录路径

这里写目录标题文件目录结构说明一、路径获取1.1 获取当前文件的绝对路径1.2.1 获取当前文件的所在目录1.2.2 获取当前文件的所在目录的上一级目录1.3 获取当前文件名1.4 获取当前文件对于基准路径的相对路径二、路径判断2.1 判断路径是否存在2.2 判断路径是否为绝对路径2.3 判…

【Python】matplotlib.axes.Axes.pie()实例讲解

目录:matplotlib.axes.Axes.pie函数实力讲解一、前言二、matplotlib.axes.Axes.pie()函数三、代码示例四、get_cmap函数一、前言 本文章向大家介绍Python matplotlib.axes.Axes.pie()实例讲解,主要分析其语法、参数、返回值和注意事项,并结合…

WorkPlus助力中交四航局打造数字化管理新模式,释放企业生产力

企业简介 中交四航局正式创立于1951年,集团主要从事海内外港口、公路、桥梁、铁路、市政工程、水利工程等大型基础设施建设,以及相关的投资、勘察设计、科研、工业造船和房地产业务。始终致力于“让世界更畅通,让城市更宜居,让生…

logger记录在控制台显示,但是在日志输出文件中不显示问题排查

场景: 代码中存在使用logger.info输出数据到指定的文件中,然后用logstash去收集需要的数据插入到es中。 现象: logger.info输出的记录打断点在控制台上显示,但是在配置的日志输出文件中却找不到日志输出的内容。 log4j配置 如下…

ELK搜索学习笔记--Day1

ELK搜索学习笔记–Day1 1. 课程简介 1.1 课程内容 ELK是包含但不限于Elasticsearch(简称es)、Logstash、Kibana 三个开源软件的组成的一个整体。这三个软件合成ELK。是用于数据抽取(Logstash)、搜索分析&#xff08…