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, 威胁检测, 安全运维, 库, 应急响应, 应急排查, 恶意域名, 数字取证, 网络安全, 自动化脚本, 进程分析, 隐私保护