prasad1624/dns-exfiltration-threat-hunting-lab

GitHub: prasad1624/dns-exfiltration-threat-hunting-lab

一个展示如何通过假设驱动的威胁狩猎,利用Splunk和Zeek等工具检测隐蔽DNS隧道数据泄露的实战实验环境。

Stars: 1 | Forks: 0

# 针对隐蔽 C2 DNS 隧道和数据泄露的威胁狩猎 本项目展示了在受控实验环境中,通过假设驱动的威胁狩猎来检测利用 DNS 进行隐蔽数据泄露的过程。 调查揭示了攻击者如何入侵内部系统、访问结构化数据,并在未触发任何警报的情况下使用 DNS 隧道将其泄露。该狩猎过程依赖基线分析、日志关联和数据包级别的验证,揭示了传统检测机制未能识别的活动。 ## 概述 在确认 DNS 是监控中潜在的盲点后,对一台内部 Ubuntu 服务器进行了回顾性威胁狩猎。 在分析过程中,识别出了一系列事件:来自外部主机的成功 SSH 登录,随后是一个短暂的准备阶段(在此期间访问并提取了数据库记录),然后是 DNS 活动的激增。在 2 分钟内,**生成了 3,948 个 DNS 查询**,携带了源自数据库的编码数据。这比基线行为**增加了 316%**,在统计上属于异常现象。 在整个过程的任何阶段都没有触发警报。该活动仅通过结构化的威胁狩猎以及跨多个数据源的关联分析才被发现。 ## 实验环境 | 系统 | 角色 | 用途 | |------|------|---------| | Kali Linux | 攻击者 | 扫描、暴力破解和数据泄露 | | Ubuntu Server | 受害者 | 数据库主机和被入侵的系统 | | pfSense | 防火墙 / DNS | DNS 解析和流量控制 | | Zeek | 网络监控 | DNS 和网络遥测 | | Splunk | 日志分析 | 集中调查 | ## 攻击场景 攻击者发起了侦察,并识别出 Ubuntu 服务器上暴露的 SSH 服务。通过暴力破解攻击获得了有效凭据,从而成功访问了系统。 获取访问权限后,攻击者找到了一个包含明文数据库凭据的配置文件。这些凭据被用于连接到承载结构化患者记录的 MySQL 数据库。该数据库包含代表年度数据的多个表,在单一数据集中确认了总数为 **100 条患者记录**。 随后,攻击者准备好提取的数据,并使用 DNS 隧道建立了一个隐蔽的通信通道。该数据集被编码到 DNS 查询中,并传输到攻击者控制的服务器。由于 DNS 流量受信任且被防火墙允许,这些活动混杂在合法流量中而未被检测到。 ## 假设陈述 如果内部系统被入侵并且数据正在通过 DNS 隧道泄露,那么 DNS 流量将表现出查询量增加、异常长的查询字符串、重复模式以及与不常见域的通信等异常现象。 这些异常可以通过基线比较以及与身份验证活动的关联来识别。 ## 威胁狩猎流程 ``` Log Validation → Initial Access Detection → Session Establishment → DNS Spike Detection → Exfiltration Detection → Volume Analysis → C2 Identification → Firewall Correlation → Packet Validation ``` ## MITRE ATT&CK 映射 | 战术 | 技术 ID | 技术 | |------|---------------|----------| | 侦察 | T1595 | 主动扫描 | | 初始访问 | T1110.001 | 暴力破解 | | 执行 | T1059.004 | Unix Shell | | 凭据访问 | T1552.001 | 不安全的凭据 | | 收集 | T1005 | 来自本地系统的数据 | | 命令与控制 | T1572 | 协议隧道 | | 数据泄露 | T1041 | 通过 C2 通道泄露 | ## 使用的工具 | 工具 | 用途 | |------|--------| | Splunk | 日志分析和关联 | | Zeek | DNS 流量监控 | | pfSense | 防火墙和 DNS 控制 | | Wireshark | 数据包级别的验证 | | Nmap, Hydra, dnscat2 | 攻击模拟 | ## 截图 ### 1. 初始访问 ![Hydra Brute Force](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c58507d790222537.png) *用于获取有效 SSH 凭据的暴力破解攻击* ![SSH Login](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/03e4e942af222539.png) *成功登录确认系统已被入侵* ### 2. 数据访问 ![MySQL Access](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1c0829db7c222542.png) *访问包含患者记录(识别出 100 条记录)的结构化数据库* ### 3. 数据泄露机制 ![DNS Tunneling Raw Packets](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9a55b5a0e5222544.png) *大量具有长且编码子域名的 DNS 查询,表明存在基于隧道的数据泄露* ### 4. 威胁狩猎检测 ![DNS Spike Timeline](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d030b9dc05222546.png) *系统被入侵后 DNS 流量的显著激增* ![DNS Exfiltration Raw Detection](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/72d57e1c35222548.png) *用于识别带有编码模式的大量 DNS 请求的检测查询* ## 检测盲点分析 | 层 | 观察 | 盲点 | |------|-------------|-----| | 防火墙 | 允许 DNS 流量 | 无出站过滤 | | Zeek | 记录了 DNS 活动 | 无告警机制 | | Splunk | 接收了日志 | 无关联规则 | | 系统日志 | 记录了 SSH 访问 | 与网络异常无关联 | 该环境信任 DNS 流量且缺乏跨数据源的关联,导致攻击在未被发现的情况下进行。
标签:DNS隧道, HTTP工具, pfSense, Rootkit, SSH暴力破解, Zeek, 协议分析, 基线分析, 安全事件响应, 安全监测, 安全盲点, 安全运营, 实验室环境, 异常检测, 扫描框架, 数据泄露, 数据窃取, 日志关联, 权限提升, 紫队, 网络安全, 隐私保护, 隐蔽通信