Wireshark TS | Packet Challenge 之 DNS 案例分析

前言

来自于 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。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值