dns查询和响应抓包

使用Wireshark监听UDP 53端口,过滤”dns”协议,捕获域名查询与响应数据包,分析IP地址及

DNS查询与响应抓包详解

DNS基础原理

1 DNS系统架构

DNS(Domain Name System)采用分层分布式架构,核心组件包括:

  • 根DNS服务器:全球13个逻辑分组(如A~M)
  • 顶级域名服务器(TLD):.com/.net/.org等
  • 权威DNS服务器:存储具体域名解析记录
  • 本地DNS服务器:运营商或企业部署的缓存服务器

2 DNS查询流程

步骤 动作主体 行为描述
1 客户端 向本地DNS发起递归查询请求
2 本地DNS 逐级向上查询(根→TLD→权威)
3 权威DNS 返回最终解析结果
4 本地DNS 缓存结果并返回客户端

3 DNS报文结构

+++
| Header(12bytes)| Query Section    |
+++
| Name(变长)     | Type(2bytes)     |
| Class(2bytes)  | TTL(4bytes)      |
| Data Length    | RDATA            |
+++

抓包工具选择与配置

1 主流抓包工具对比

工具 平台支持 协议解析 实时分析 适合场景
Wireshark Win/Mac/Linux 深度协议分析
tcpdump Unix系 命令行快速抓包
Fiddler Windows HTTP专精 Web调试
Microsoft Network Monitor Windows 企业环境

2 Wireshark配置要点

  1. 安装WinPcap/Npcap驱动
  2. 设置显示过滤器dnsudp.port == 53
  3. 启用TCP流跟踪:右键→Follow→UDP Stream
  4. 解码设置Edit→Preferences→Name Resolution开启地址转译

DNS查询抓包实战

1 基础查询流程抓包

实验环境

  • 客户端:Windows 10 (192.168.1.100)
  • DNS服务器:ISP提供的本地DNS (192.168.1.1)

抓包结果分析

No.     Time        Source          Destination     Protocol Length Info
1       0.0000      192.168.1.100   192.168.1.1     UDP      70    DNS Request www.baidu.com
2       0.2000      192.168.1.1     192.168.1.100   UDP      102   DNS Response

报文详情

  • 请求报文

    dns查询和响应抓包

    • Transaction ID: 0x1a2b
    • Flags: 0x0100 (标准查询)
    • Question: www.baidu.com A记录查询
    • 附加字段:无
  • 响应报文

    • Transaction ID: 0x1a2b (匹配请求)
    • Flags: 0x8180 (响应+AA标志)
    • Answer:
      • Name: www.baidu.com
      • Type: A (1)
      • Class: IN (1)
      • TTL: 300秒
      • Address: 180.101.49.11

2 递归查询过程追踪

多跳查询示例(假设本地DNS无缓存):

No.     Time        Source          Destination     Protocol Length Info
1       0.0000      Client          LocalDNS        UDP      70    Query example.com
2       0.1000      LocalDNS        RootServer      UDP      70    Query .com NS
3       0.3000      RootServer      LocalDNS        UDP      120  Response (NS列表)
4       0.5000      LocalDNS        TLDServer       UDP      70    Query example.com NS
5       0.7000      TLDServer       LocalDNS        UDP      120  Response (A记录)
6       1.0000      LocalDNS        Client          UDP      120  Final Response

异常场景分析

1 DNS欺骗攻击特征

异常指标 正常情况 攻击特征
响应时间 <50ms(本地缓存) >200ms(异常路径)
TTL值 >=60s(权威服务器) <30s(伪造记录)
源IP可信度 已知DNS服务器IP 未知/矛盾IP
记录一致性 多次查询结果一致 间歇性变化

真实案例
某次抓包发现针对pay.example.com的DNS响应中,同一事务ID出现两个不同IP的应答:

No.7    1.2000      192.168.1.100   192.168.1.1     UDP      120    Query pay.example.com
No.8    1.4000      172.217.24.37   192.168.1.100   UDP      120    Response (IP=192.168.2.5) [伪造]
No.9    1.4500      205.251.242.153 192.168.1.100   UDP      120    Response (IP=172.67.34.44) [真实]

2 放大攻击识别

特征

dns查询和响应抓包

  • UDP目标端口53的异常流量激增
  • 请求报文多为小尺寸(<60字节)
  • 源IP地址随机且分散
  • 响应报文体积放大(平均放大倍数约28倍)

防护建议

  1. 启用DNS查询速率限制
  2. 过滤非可信前缀的递归查询
  3. 部署Anycast DNS服务分散压力

高级分析技巧

1 事务ID关联分析

通过Transaction ID建立请求响应映射关系,可识别:

  • 中间人篡改(ID匹配但内容不符)
  • 重放攻击(旧ID重复出现)
  • 跨线程处理异常(ID跳跃不连续)

2 DNSSEC验证流程

  1. 抓取带RRSIG记录的响应报文
  2. 提取DS记录与本地ZSK/KSK公钥比对
  3. 验证签名覆盖范围(Type/Class/Name/TTL)
  4. 确认签名有效期(Signed Time/Expire Time)

验证失败示例

Signature Expired: Signed=20230801, Current=20230901
Algorithm Mismatch: RRSIG uses RSASHA256, Key uses RSASHA1

常见问题与解答

Q1:如何区分正常DNS响应和中间人攻击?

A:需综合验证以下要素:

dns查询和响应抓包

  1. 事务ID一致性:响应必须携带原始请求的ID
  2. 源IP可信度:响应应来自预期DNS服务器IP
  3. 记录签名验证:检查DNSSEC数字签名有效性
  4. TTL合理性:权威记录TTL通常>=60s,过小值可疑
  5. 网络路径验证:通过traceroute确认响应路径合规性

Q2:在移动网络环境下抓包需要注意什么?

A:特殊注意事项包括:

  1. 动态IP问题:运营商可能使用NAT导致源IP不固定
  2. 加密协议干扰:HTTPSDNS/QUIC等新型协议需专用解码器
  3. 省电模式影响:设备可能限制后台抓包时长
  4. 基站切换中断:需注意SCTP/TCP连接状态突变
  5. 运营商劫持特征:可能出现非请求域的推送

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/223892.html

Like (0)
小编小编
Previous 2025年7月7日 03:48
Next 2025年7月7日 03:58

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注