Windows DNS 服务器日志在事件查看器中记录到三个位置,加上一个可选的文本文件:
- Microsoft → Windows → DNS-Server → Audit:区域和记录的更改。在当前的 Windows Server上默认开启。
- Microsoft → Windows → DNS-Server → Analytical:每个查询和响应。默认关闭并隐藏,直到您显示分析日志。
- DNS 服务器,在应用程序和服务日志下:例如启动、停止和区域加载错误的服务级事件。
- The 调试日志,启用DNS管理器中的文本文件,通常是C:WindowsSystem32dnsdns.log。
核心导出是从提升的命令提示符执行的一行命令:
wevtutil epl "Microsoft-Windows-DNSServer/Audit" C:logsdns_audit.evtx
网络上的几乎所有东西都会发起 DNS 查询,包括恶意软件。查询日志揭示 DNS 隧道、域生成算法和对已知恶意域的调用。审核日志揭示有人悄悄更改记录。Prime Core 有 {N} 条针对 DNS 数据的检测规则,映射到 {M} 项 MITRE ATT&CK 技术。其中包括:通过 DNS 的指挥与控制(T1071.004)和域生成算法(T1568.002)。
在您开始之前
查询日志记录可能没有开启。 分析通道默认关闭。如果您正在调查已经发生的事件,服务器可能没有查询日志。您的选项是客户端(Sysmon 事件 22,或 DNS 客户端日志)、防火墙或代理日志,或网络传感器。现在开启将有助于以后的工作。
开启查询日志 (为未来)。在事件查看器中,选择 查看 → 显示分析与调试日志,然后右击 分析 下的 DNS-Server 并选择 启用日志。或者从命令行:
wevtutil sl "Microsoft-Windows-DNSServer/Analytical" /e:true
微软描述的负载较小,但在一个非常繁忙的解析器上,启用前请测试。
您需要在 DNS 服务器上或运行 DNS 的域控制器上使用提升的命令提示符。
导出日志
:: 记录和区域更改
wevtutil epl "Microsoft-Windows-DNSServer/Audit" C:logsdns_audit.evtx
:: 服务级事件
wevtutil epl "DNS Server" C:logsdns_server.evtx
:: 查询和响应(仅当启用了分析时)
wevtutil epl "Microsoft-Windows-DNSServer/Analytical" C:logsdns_analytical.evtx
分析通道与普通日志行为不同。事件查看器可能要求您禁用日志以便显示事件。PowerShell 的 Get-WinEvent 仅使用 -Oldest 读取它们。
调试日志 是纯文本,在 DNS 管理器 → 服务器属性 → 调试日志记录中配置的。它详细记录数据包,并在到达大小限制时滚动重写旧条目。如原样复制:复制 C:WindowsSystem32dnsdns.log C:logs。
需要注意的内容
| 信号 | 可能的含义 |
|---|---|
| 查询中的非常长且看似随机的子域 | DNS 隧道,通过查询名秘密传输数据 |
| 一个客户端生成许多失败的查询(NXDOMAIN) | 恶意软件循环生成域 |
| 来自一个主机的大量 TXT 查询 | 隧道或指挥与控制 |
| 创建、删除或在变更窗口外更改的记录的审核事件 | 记录被劫持,例如一个新的 wpad 记录 |
| DNS 服务器服务加载的插件 DLL | 滥用 DnsAdmins 组,以 SYSTEM 身份运行代码 |
上传并在 LogTotal 上查看
LogTotal 能够本地读取 EVTX。首先需要了解的事项: LogTotal 尚未能清理 EVTX 文件。 DNS 日志包含内部主机名和客户端 IP。将上传视为直接提供原始文件:适用于测试服务器;对于生产环境,首先获得数据处理负责人同意。
如果您今天需要清理,请先转换为 JSON:evtx_dump -o jsonl dns_audit.evtx > dns_audit.jsonl。
- 上传。 打开 logtotal.com 并拖入文件。
- 查看。
当出现问题时
| 症状 | 可能原因 | Fix |
|---|---|---|
| 事件查看器中没有分析通道 | 分析日志默认隐藏 | 查看 → 显示分析与调试日志 |
| 分析通道为空 | 从未启用过 | 启用它;在此之前没有历史记录 |
| Get-WinEvent 在分析日志上出错 | 分析日志需要使用 -Oldest | 加入 -Oldest |
| 丢失审核通道 | 旧版本 Windows Server 未安装此更新 | 检查操作系统版本;使用调试日志 |
| 调试日志只覆盖短时间 | 在达到尺寸限制时自我覆盖 | 提高限制,或将日志转发到其他地方 |
FAQ
服务器日志还是客户端日志?
DNS 服务器告诉您哪个客户端 IP 发起了请求。只有客户端告诉您哪个进程发起了请求。这就是为什么 Sysmon 事件 22 在终端设备上很好地补充了服务器日志。
调试日志比分析通道好吗?
调试日志包含更多的数据包细节,但成本更高且会自我覆盖。对于大多数调查,分析通道是更好的默认选择。