Innatus

本心自昭

使用 Sysmon 监控 DNS 查询定位恶意域名访问进程

发布于 # 笔记

背景

有电脑频繁外联恶意域名,需要定位是哪个进程发起的 DNS 查询。Sysmon 的 DNS 查询日志(事件 ID 22)可以记录每次 DNS 查询对应的进程,是解决此类问题的标准工具。

Sysmon 安装

Sysmon 是微软 Sysinternals 套件中的系统监控工具,下载地址:

https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysmon

下载后解压,以管理员身份打开 PowerShell,进入解压目录执行安装:

.\Sysmon64.exe -i -n

参数说明:

-n 表示不安装事件清单(已通过 -i 安装),可减少安装步骤。

配置 DNS 查询监控

在 Sysmon 同目录下创建配置文件 sysmon_dns.xml

<?xml version="1.0" encoding="UTF-8"?>
<Sysmon schemaversion="4.90">
  <HashAlgorithms>md5,sha256,IMPHASH</HashAlgorithms>
  <CheckRevocation/>
  <EventFiltering>
    <ProcessCreate onmatch="exclude">
      <Image condition="is">C:\Windows\System32\backgroundTaskHost.exe</Image>
    </ProcessCreate>
    <NetworkConnect onmatch="include">
      <Image condition="end with">.exe</Image>
    </NetworkConnect>
    <!-- 开启 DNS 查询日志,排除系统常见进程 -->
    <DnsQuery onmatch="exclude">
      <Image condition="is">C:\Windows\System32\svchost.exe</Image>
      <Image condition="is">C:\Windows\System32\SearchProtocolHost.exe</Image>
    </DnsQuery>
  </EventFiltering>
</Sysmon>

配置逻辑:

应用配置:

.\Sysmon64.exe -c sysmon_dns.xml

查看日志

打开事件查看器(Win + Reventvwr.msc),路径:

应用程序和服务日志 → Microsoft → Windows → Sysmon → Operational

过滤事件 ID 22(DNS 查询),可以看到每次 DNS 查询的:

Sysmon 事件 ID 速查

以下是 Sysmon 所有事件类型的简要说明:

ID事件类型说明
1ProcessCreate进程创建,含完整命令行、哈希、ProcessGUID
2FileCreateTime进程修改文件创建时间
3NetworkConnectTCP/UDP 网络连接(默认禁用)
4ServiceStateChangeSysmon 服务状态变更(启动/停止)
5ProcessTerminate进程终止
6DriverLoad驱动程序加载
7ImageLoad模块加载(默认禁用,日志量大)
8CreateRemoteThread跨进程创建线程(代码注入检测)
9RawAccessRead原始驱动器读取(绕过文件审计)
10ProcessAccess进程访问其他进程(凭据窃取检测)
11FileCreate文件创建或覆盖
12RegistryEvent (Key/Value Create/Delete)注册表键/值的创建和删除
13RegistryEvent (Value Set)注册表值修改
14RegistryEvent (Key/Value Rename)注册表键/值重命名
15FileCreateStreamHash命名文件流创建(Zone.Identifier 检测)
16ServiceConfigurationChangeSysmon 配置变更
17PipeEvent (Pipe Created)命名管道创建
18PipeEvent (Pipe Connected)命名管道连接
19WmiEvent (Filter)WMI 事件筛选器注册
20WmiEvent (Consumer)WMI 消费者注册
21WmiEvent (ConsumerToFilter)WMI 消费者绑定到筛选器
22DNSEventDNS 查询(Windows 8.1+)
23FileDelete (Archived)文件删除并归档到 C:\Sysmon
24ClipboardChange剪贴板内容变化
25ProcessTampering进程篡改检测(hollow/herpaderp)
26FileDeleteDetected文件删除检测(不保存文件)
27FileBlockExecutable阻止创建可执行文件(PE 格式)
28FileBlockShredding阻止文件粉碎操作
29FileExecutableDetected检测到新建可执行文件
255ErrorSysmon 错误

卸载

如需卸载 Sysmon:

.\Sysmon64.exe -u