前言
在前面一篇文章,我简单介绍了在 win8 及以上系统上使用 DNSLookupView 来监控系统 DNS 请求,本期就继续完成这个系列的 win7 部分,因为 xp 系统实在是太老了!
正文
工具
工欲善其事, 必先利其器
使用工具有如下两个软件
- Microsoft Message Analyzer (MMA)
- Process Monitor (v2.9.6版本)
这两个软件的下载地址在文末参考里自行下载,我也会放一份在我的 GitHub RedTeam_BlueTeam_HW 仓库里.
第一步 首先禁用 DNS Client 服务
可以通过任务栏再打开 services 或者通过在 win7 启动窗口来输入 services.msc 回车后即可快速打开服务窗口
找到 DNS Client ,选择右键,选择 属性(properties),在属性窗口中,首先停止服务,然后将 启动类型(Startup type)修改为禁用(Disable),防止被其他进程启动.
DNS Client 的执行命令如下,这也是很多软件抓包的进程信息显示是如下
C:\windows\system32\svchost.exe -k NetworkService
一直抓不到真正发起DNS请求的进程原因是在 windows 系统中,大多数 DNS 查询都是由 svchost.exe 中的 DNS 客户端服务进行的.
第二步 使用 PM + MMA 抓包
对于 Process Monitor 在 win7 系统上需要使用老板本才可以使用.笔者这里采用的是 2.9.6 版本,而Microsoft Message Analyzer目前官网已经不能下载了,但是 GitHub 上有存档,笔者测试下载下来后在 win7 上是可以正常使用的.
⚠️注意⚠️
下面的操作都是以管理员权限运行的软件
打开 Process Monitor 后,设置一下 filter 规则,将 Operation 设置为 UDP Send
再设置 只监听 网络 的部分,也就是下图红框中的部分,它两边的部分都取消监听
然后就可以抓到发起DNS请求的进程了,如下图所示

打开 Microsoft Message Analyzer 后 选择 New Session
然后选择 Live Trace ,并在这里选择使用场景,我们当然选择 网络了(Network),一般选择 Local Network Interfaces 即可.
选择好后,还可以配置使用那一张网卡(如果你有多张网卡),如下图所示,点击 Configure 后进入 Provider 即可设置网卡,且会显示网卡的详细信息,如名称,类型,IP地址等等.
设置过滤规则,如下图所示,笔者设置为
DNS.QueryName contains "qq.com"
根据你的需求,自行修改,支持很多语法,和 Wireshark 差不多,且可通过tab 补全,提示很全.
如果你在抓包中途需要修改过滤规则,也可以通过上面的 Edit Session 来修改场景和过滤规则等等.
当抓到符合你的过滤规则的数据后,会出现如下图所示的内容,图中三个地方均可展示信息信息,包括进程 PID 等信息
其中 3 号标记的 PID 列字段,需要按下图所示设置,在列上右键选择 Add Column,然后选择 Unions 双击 PID 即可添加到列.
以上就是详细的完整内容,希望可以帮助到你!助你更快溯源定位到恶意进程.
最后,记得再定位到进程处理完后,记得把 DNS Client 服务启用,并启动.不然很多服务没法通信.


















