如何检测应用程序/进程是否发出特定的 DNS 请求?

如何检测应用程序/进程是否发出特定的 DNS 请求?

我们网络中有一台计算机不断向 8.8.8.8 dns 发送请求。我在 Fortigate 转发流量日志中看到此情况,该计算机的用户在使用谷歌搜索时每小时必须解决几次 reCAPTCHA。这台计算机是一台带有两张网卡的笔记本电脑,一张通常连接到以太网 LAN(fortigate),而 wi-fi 网卡通常同时连接到来自其他 SOHO 路由器的访客网络(通过 DHCP 8.8.8.8 作为主 DNS 发送)。

我的问题是如何找到该计算机上的应用程序/进程将此异常的 DNS 请求发送到 8.8.8.8?

编辑:

所以我做了一些检查。该案例肯定与已启用和连接的 Wi-Fi 网卡有关。当我更改 SOHO 路由器 DHCP 配置以在 Fortigate 转发流量日志中发送不同的 DNS 配置(不是 8.8.8.8 而是我本地互联网服务提供商的 DNS 服务器)时,现在有条目包含以太网 IP 地址(和 MAC)的来源和到我本地互联网服务提供商的 DNS 服务器的目标。

它看起来像某个进程/应用程序从 Wi-Fi 获取 DNS 配置并通过以太网发送请求。

Sysmon 没有显示任何异常的 DNS 查询。有什么想法吗?

答案1

如果应用程序/进程持续运行,您可以使用以下命令:

netstat -tapvln | grep 8.8.8.8

它需要以 root 身份运行,因为 -p 标志表示显示进程 ID。

如果它不是持续运行,您可以在它前面放置监视命令并监视,直到找到罪魁祸首。

watch netstat -tapvln | grep 8.8.8.8

答案2

Microsoft Sysmon 具有 DNS 日志记录。

https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon

可以使用配置文件来启用它。

Sysmon.xml:

<Sysmon schemaversion="4.21">
 <EventFiltering>
  <DnsQuery onmatch="exclude" />
 </EventFiltering>
</Sysmon>

安装:

sysmon.exe -accepteula -i sysmon.xml

相关内容