当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Wireshark DNS 过滤器监听 DNS 查询

作者:精品下载站 日期:2024-12-14 12:43:08 浏览:13 分类:玩电脑

使用 Wireshark DNS 过滤器监听 DNS 查询


如果您遇到 DNS 问题,Wireshark DNS 过滤器可能是您最好的朋友。为什么?继续阅读!

在我的客户处,他们有一个 Active Directory 域,其中包含一些域控制器,这些域控制器也是 DNS 服务器。它们都运行 Windows Server 2008 R2。所有这些 DNS 服务器/域控制器都启用了转发器,使用典型的 8.8.8.8、4.2.2.2 和 4.2.2.3。

突然出现一个问题,未知的 DNS 流量从 DNS 服务器发起到互联网。网络管理员仅锁定了到转发器的传出 DNS 流量,并且发现 ACL 上有大量命中,该 ACL 拒绝到其他公共 IP 的其他 DNS 流量。他需要我弄清楚这个流量是否有必要进一步开放 DNS。我不这么认为,但我想我应该调查一下。

相关:了解 Microsoft DNS 调试日志

构建 Wireshark DNS 过滤器

现在 Wireshark 安装在该 DNS 服务器上,我将其打开并很快创建了一个 Wireshark DNS 过滤器,以使用此捕获过滤器尽可能缩小感兴趣的 DNS 活动范围:udp 端口 53,而不是主机 8.8.8.8,而不是主机 4.2 .2.2 而不是主机 4.2.2.3。此捕获过滤器缩小了 UDP/53 上的捕获范围。然后我排除我的转发器,因为我知道 DNS 流量将流向这些转发器。

我开始捕获,然后创建一个显示过滤器。此显示过滤器删除了我看到的所有内部 IP。我不关心任何内部 DNS 活动;只是到外部 DNS 服务器。 (!ip.dst==192.168.0.0/16) 和 (!ip.dst==172.0.0.0/8) 和 (!ip.dst==10.0.0.0/8) 始终如此使用 Wireshark 创建捕获过滤器而不是显示过滤器是一个好主意,事后看来,我可能应该向捕获过滤器添加一些额外的子网规则。

我注意到大量 DNS 流量通过 Wireshark DNS 过滤器发送到外部 DNS 服务器。根据递归和迭代查询一文,我知道当使用转发器时,查询始终是递归的。这意味着除了转发器 IP 之外,不应从该服务器向任何其他服务器发送任何查询。然而,我从 Wireshark 数据包捕获中看到了大量对其他服务器的迭代查询。

“如果没有可用的转发器,请使用根提示”

环顾四周后,我注意到如果没有可用的转发器,则使用根提示选项。我想也许转发器由于某种原因没有工作,并决定将转发器 IP 列表与数据包捕获中显示的服务器列表进行比较。使用 PowerShell,我能够轻松获得根提示列表。

(Get-DnsServerRootHint -ComputerName dc).IPAddress.RecordData.IPV4Address.IPAddressToString

然后,我获取此 IP 列表,并将其与我从 Wireshark 的端点摘要字段中复制的 IP 进行比较。我发现正在查询的 DNS 服务器都不是任何根提示 IP。该死!

由于我的咨询公司是 Microsoft 合作伙伴,因此我能够在合作伙伴论坛上启动一个线程,而这些人提到的第一件事就是取消选中该复选框。出于怀疑它是否会起作用,我还是这么做了,你瞧,查询停止了!我仍然不明白为什么没有流量直接到达根提示 IP,但一旦我取消选中“使用根提示”框,查询就消失了。

网络管理员很高兴,我也终于明白了这一点。事后看来,只需先打开一个 Microsoft 线程,而不是费力地深入到数据包捕获级别并构建 Wireshark DNS 过滤器。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯