如何在 Windows 7 (win7) 系统上追踪发起DNS请求的进程


前言

在前面一篇文章,我简单介绍了在 win8 及以上系统上使用 DNSLookupView 来监控系统 DNS 请求,本期就继续完成这个系列的 win7 部分,因为 xp 系统实在是太老了!

正文

工具

工欲善其事, 必先利其器

使用工具有如下两个软件

  • Microsoft Message Analyzer (MMA)
  • Process Monitor (v2.9.6版本)

这两个软件的下载地址在文末参考里自行下载,我也会放一份在我的 GitHub RedTeam_BlueTeam_HW 仓库里.

第一步 首先禁用 DNS Client 服务

可以通过任务栏再打开 services 或者通过在 win7 启动窗口来输入 services.msc 回车后即可快速打开服务窗口

thum-e3dd1720341004.png

找到 DNS Client ,选择右键,选择 属性(properties),在属性窗口中,首先停止服务,然后将 启动类型(Startup type)修改为禁用(Disable),防止被其他进程启动.

thum-6b791720341004.png

thum-3b6c1720341004.png

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

thum-02db1720341003.png

再设置 只监听 网络 的部分,也就是下图红框中的部分,它两边的部分都取消监听

thum-7f9e1720341003.png

然后就可以抓到发起DNS请求的进程了,如下图所示

打开 Microsoft Message Analyzer 后 选择 New Session

thum-9c421720341007.png

然后选择 Live Trace ,并在这里选择使用场景,我们当然选择 网络了(Network),一般选择 Local Network Interfaces 即可.

thum-09ec1720341006.png

thum-ce151720341006.png

选择好后,还可以配置使用那一张网卡(如果你有多张网卡),如下图所示,点击 Configure 后进入 Provider 即可设置网卡,且会显示网卡的详细信息,如名称,类型,IP地址等等.

thum-09ee1720341005.png

设置过滤规则,如下图所示,笔者设置为

DNS.QueryName contains "qq.com"

根据你的需求,自行修改,支持很多语法,和 Wireshark 差不多,且可通过tab 补全,提示很全.
如果你在抓包中途需要修改过滤规则,也可以通过上面的 Edit Session 来修改场景和过滤规则等等.

thum-f3f91720341005.png

当抓到符合你的过滤规则的数据后,会出现如下图所示的内容,图中三个地方均可展示信息信息,包括进程 PID 等信息

thum-ccb21720341008.png

其中 3 号标记的 PID 列字段,需要按下图所示设置,在列上右键选择 Add Column,然后选择 Unions 双击 PID 即可添加到列.

thum-8b431720341008.png

以上就是详细的完整内容,希望可以帮助到你!助你更快溯源定位到恶意进程.

最后,记得再定位到进程处理完后,记得把 DNS Client 服务启用,并启动.不然很多服务没法通信.

参考


手机扫码阅读

符合渗透测试爆破的11位手机号生成

使用 DNSLookupView 在Windows系统上监控DNS请求

评 论