markgate/DnsIncidentMonitor
GitHub: markgate/DnsIncidentMonitor
一款面向Windows应急响应场景的轻量级DNS监控工具,通过ETW和Raw Sockets双模式抓取DNS解析记录并关联到具体进程,帮助安全人员快速定位恶意域名请求的来源。
Stars: 1 | Forks: 0
# DNS 事件监控器
DNS Incident Monitor 是一款适用于应急响应的 Windows DNS 监控工具。
DNS事件监控器是一款适用于应急响应场景的Windows域名系统监控工具。用于解决应急响应中,通过持续监控恶意域名请求,定位恶意进程。
## 功能
- ETW DNS Client 模式,用于监控 Windows DNS Client 事件。
- 支持通过ETW DNS Client mode抓取windows DNS 客户端事件中的域名解析记录。
- Raw Sockets 抓包模式,无需安装数据包驱动。
- 支持通过Raw Sockets capture模式,直接选择网卡抓包
- Raw Sockets 模式下的抓包选择器,用于选择 Wi-Fi 或以太网 IPv4 适配器。
- DNS 记录表,包含进程名、PID、主机名、查询类型、响应 IP、源 IP、源端口、目标 IP、目标端口和 DNS 响应码。
- 通过 Windows TCP/UDP 拥有者 PID 表进行进程归属分析。
- 快速筛选器:
- `contains:malicious.com`
- `process:chrome.exe`
- `response:NXDOMAIN`
- 将选中的记录导出为 CSV/XML 证据。
## 运行
构建或发布应用程序,然后右键点击 `DnsIncidentMonitor.exe` 并选择**以管理员身份运行**。
使用 Raw Sockets 抓包以及启用 DNS Client 操作事件通道需要管理员权限。
## 构建
```
dotnet build .\DnsIncidentMonitor.csproj -c Release
```
输出:
```
bin\Release\net10.0-windows\DnsIncidentMonitor.exe
```
## 发布为独立文件夹
```
dotnet publish .\DnsIncidentMonitor.csproj -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true
```
发布的可执行文件依赖于框架,需要在目标主机上安装 .NET Desktop Runtime 10。
## 抓包说明
建议将 ETW DNS Client 模式用于常规的 Windows 应用程序监控,因为它会记录 DNS Client 事件,并且通常能捕获到 Raw Sockets 无法准确归因的查询请求。
Raw Sockets 模式主要针对 UDP/TCP 53 端口上的本地 IPv4 DNS 流量。它旨在作为一种无驱动的应急模式。它无法捕获 DoH/DoT 流量或 IPv6 DNS 流量;如果需要进行驱动级别的抓包,后续可以添加 Npcap 支持。
标签:AMSI绕过, DNS监控, ETW, PB级数据处理, Raw Sockets, 威胁检测, 安全运维, 库, 应急响应, 应急排查, 恶意域名, 数字取证, 网络安全, 自动化脚本, 进程分析, 隐私保护