cyberdome80/active-directory-kerberoasting-siem-lab
GitHub: cyberdome80/active-directory-kerberoasting-siem-lab
一个 Active Directory 安全攻防实验项目,通过模拟 Kerberoasting 攻击与横向移动并配合 Splunk SIEM 检测规则,完整展示了企业身份威胁的攻击链路与威胁狩猎方法。
Stars: 0 | Forks: 0
# Active Directory 身份利用:Kerberoasting、横向移动与 SIEM 威胁狩猎实验
## 📌 项目概述
欢迎来到我的企业安全模拟实验室!在这个项目中,我从零开始构建了一个企业网络沙盒,以模拟多阶段网络攻击。我扮演了两个角色:试图在网络中潜行的**红队(攻击者)**,以及使用中央安全仪表板将黑客当场抓包的**蓝队(防御者)**。
该项目的目标是理解企业网络内部的**身份盗用**,并设计高级安全监控机制,让隐藏的黑客无所遁形。
## 🏗️ 网络沙盒架构
为了使这个模拟能够真实反映企业环境,我使用相互隔离的虚拟机构建了一个 4 节点的网络实验室:
1. **Windows Server(域控制器 - `ADDC01`):** 公司的中央“大脑”。它管理所有的用户账户、密码和安全规则。
2. **Windows 10 工作站(`HR-DESKTOP`):** 一台标准的员工台式电脑,由我们的受害者角色——名叫 Mike Daniels 的开发人员使用。
3. **Kali Linux(攻击机):** 一台接入网络线路的恶意机器,用于启动扫描和漏洞利用工具。
4. **Linux Server(Splunk SIEM 仪表板):** 安全瞭望塔。它充当我们的数字录像机,从网络上的每台计算机收集安全日志,以便我们搜索恶意行为。
## 🗺️ 时间线故事:攻击是如何进行的
### 🧱 阶段 1:强化安全监控(防御基线)
默认情况下,为了节省计算机内存,Windows 关闭了其最高级的安全追踪功能。如果攻击者使用窃取的凭证潜入,他们将完全隐形。
* **我做了什么:** 我登录到域控制器并修改了**组策略** 以开启高级审核。我强制系统在每次发生网络登录或请求数字凭证票据时都进行记录。
* **结果:** 这布下了陷阱。在黑客试图触碰密码文件的精准毫秒级,Windows 被迫将其记录下来。
### 🧱 阶段 2:绘制建筑地图(攻击者侦察)
想象一下一个窃贼想要抢劫办公楼。他们不会盲目地破门而入;他们会先摸清整个设施的布局。
* **我做了什么:** 从 Kali Linux 攻击机中,我使用了一个名为 **NetExec** 的工具来扫描网络。
* **发现:** 该工具交给了我一份完整的网络蓝图,准确地向我展示了域控制器所在的位置、员工桌面(`HR-DESKTOP`)的名称,并暴露出这些工作站的数字安全签名已被关闭(`signing:false`)。
### 🧱 阶段 3:Kerberoasting 漏洞利用(权限提升)
在企业网络中,计算机不会在你每次点击文件时都向你索要密码;相反,它们会给你自动化的数字凭证(称为 Kerberos 票据)。
* **漏洞:** Active Directory 会向*任何*提出请求的员工发放服务票据。
* **我做了什么:** 我模拟了一个标准员工(Mike Daniels)的账户被攻破的场景。利用他的低权限访问,我运行了一个名为 **Impacket** 的攻击脚本,向域控制器请求属于高度敏感的 **SQL 数据库服务账户(`svc-sql`)** 的票据。
* **窃取:** 域控制器顺从地将加密票据发送回我的 Kali 机器。我复制了那个加密文本块,将其放入一个名为 **John the Ripper** 的离线密码破解工具中,并在不到一秒钟的时间内成功猜出了数据库密码,破解出了明文密码:`DbSecurePass2026!`。
### 🧱 阶段 4:横向移动(跨越网络桥梁)
现在攻击者已经窃取了数据库服务密码,他们想看看网络管理员是否犯了一个常见的错误:授予该服务账户登录普通员工桌面的管理权限。
* **我做了什么:** 我使用 NetExec 运行了一次“凭证喷射”,在每台机器上测试窃取的密码。它完美通过了。
* **突破:** 我从 Kali 启动了一个名为 **Evil-WinRM** 的工具。它通过网络管理端口进行连接,绕过了工作站防火墙,并直接在 `HR-DESKTOP` 内部打开了一个交互式的远程命令行终端。攻击者正式控制了该员工的电脑。
## 🕵️♂️ 威胁狩猎:我如何在暗处抓获黑客
攻击完成后,我转换角色,成为了**蓝队网络安全分析师**。我完全盲目地登录到 **Splunk**——假装不知道黑客的 IP 地址、被窃取的用户名或输入了什么命令。
我完全基于**行为异常**编写了高级搜索查询来捕获威胁:
### 🔬 狩猎 1:隔离加密降级
为了使密码易于离线破解,自动化黑客工具会强制域控制器使用一种来自 2000 年代初的古老、薄弱的加密方法(称为 **RC4,代码为 `0x17`**)来加密票据。现代 Windows 系统*绝不会*自然地使用这种加密;它们使用安全的 AES 加密。
* **Splunk 查询:** `index=endpoint host=ADDC01 EventCode=4769 "0x17"`
* **捕获:** 这立即剥去了黑客的匿名伪装。Splunk 弹出了一个高危警报,显示用户账户 `svc-sql` 成为使用脆弱的 `0x17` 协议进行攻击的目标,且源头来自攻击者的 IP:`192.168.10.250`。
### 🔬 狩猎 2:过滤企业噪音
当你查看网络登录时,计算机会每秒自动相互通信数十亿次。这就产生了一座背景噪音的大山。在 Windows 中,自动化的机器账户总是以美元符号结尾(如 `HR-DESKTOP$`)。
* **Splunk 查询:** `index=endpoint EventCode=4624 Logon_Type=3 NOT (Account_Name="*$")`
* **逻辑解析:** 我命令 Splunk 向我展示 **EventCode 4624**(成功登录)和 **Logon_Type 3**(通过网络线路连接,而不是坐在物理键盘前),但添加了 `NOT "*$"` 规则,以瞬间丢弃所有自动化的计算机噪音。
* **捕获:** 该搜索瞬间将超过 200 条垃圾日志缩减为少数几行干净的数据,立即暴露了被窃取的 `svc-sql` 账户已经从外部网络远程攻破了我们的工作站。
## 🎯 核心要点与获得的职业技能
通过从零开始构建并审计整个生命周期,我掌握了关键的企业网络安全概念:
* **身份威胁检测与响应 (ITDR):** 了解攻击者如何滥用合法的用户权限以绕过传统的防病毒拦截。
* **最小权限原则:** 为什么服务账户必须被限制在其专用的服务器上,并且永远不能被授予对标准用户终端的管理权限。
* **SIEM 数据工程:** 学习如何使用高级 Splunk Processing Language (SPL) 清洗、过滤和解析原始的 Windows Event 遥测数据,以构建生产级的检测逻辑。
标签:Active Directory, HTTP, Kerberoasting, PE 加载器, Plaso, Terraform 安全, 模拟器, 横向移动, 编程规范