LerinOG/ad-siem-detection-lab

GitHub: LerinOG/ad-siem-detection-lab

一个基于 Windows 活动目录和 Wazuh SIEM 的家庭实验室项目,通过模拟密码喷洒攻击并自动化分诊告警来练习端到端的 SOC 检测工程工作流。

Stars: 0 | Forks: 0

# AD + SIEM 检测实验室 — 密码喷洒模拟与自动化分诊 ## 概述 一个家庭实验室检测工程项目,旨在练习端到端的 SOC 分析师工作流:部署 SIEM、模拟真实世界的攻击技术、调查产生的告警并进行自动化分诊。 ## 环境 - **Active Directory** — Windows 域控制器 (`OGLAB.LOCAL`) - **Wazuh SIEM** — 部署在 Ubuntu Server 上,包含启用了 Sysmon 的 Windows 终端日志记录 - **攻击模拟主机** — Ubuntu Linux,运行自定义的 Python 密码喷洒脚本 ## 我所构建的内容 1. **检测基础设施** — 配置了 Wazuh 以从加入域的 Windows server 摄取 Windows 安全日志和 Sysmon 事件(进程创建、注册表更改、文件事件),从而为终端和身份验证活动提供实时可见性。 2. **攻击模拟** — 编写了一个 Python 脚本 (`password_spray.py`),模拟针对 Active Directory 的密码喷洒攻击:涉及多个账户,轮换使用一组常见密码,对每个账户的尝试次数保持在较低水平,以模拟真实的攻击者节奏(而不是嘈杂的单账户暴力破解)。 3. **检测与调查** — Wazuh 的关联引擎自动检测到了攻击模式,触发了映射到 **MITRE ATT&CK T1110(暴力破解 / 凭据访问)** 的 level-10 告警。调查了完整的时间线:跨越 3 个账户的 6 次失败的 NTLM 身份验证尝试,随后是 3 次成功登录 — 证实了模拟的入侵。 4. **误报分诊** — 在演练期间,还调查了两个不相关的 Sysmon 告警(一个高危的“可疑文件投放”和一个中危的“PrintNightmare 模式”告警),并正确识别出这两者均为良性 —— 分别是 PowerShell 脚本策略产物和合法的 RDP 打印机重定向活动。 5. **自动化分诊** — 构建了一个 Python 脚本 (`wazuh_triage.py`),它直接查询 Wazuh Indexer REST API,从可配置的时间窗口中提取身份验证事件(事件 ID 4624/4625),并自动标记任何表现出先失败后成功模式的账户 — 将手动审查日志的任务转化为了一键生成的报告。 ## 检测时间线 | 时间 | 事件 | |---|---| | T+0:00 – T+1:23 | 跨越 3 个账户的 6 次失败 NTLM 登录(事件 ID 4625),单一源 IP | | T+1:24 | Wazuh 触发关联告警 — “多次 Windows 登录失败”(规则 60204,等级 10,MITRE T1110) | | T+1:36 – T+1:40 | 3 次成功的 NTLM 登录(事件 ID 4624) — 证实模拟入侵成功 | ## 文件 - `password_spray.py` — 攻击模拟脚本 - `wazuh_triage.py` — 通过 Wazuh Indexer API 进行自动化告警分诊 - `sysmon_config_snippet.xml` — 启用 Sysmon 日志摄取的 Wazuh agent 配置附加项 ## 展示的技能 SIEM 部署与管理、Windows/AD 安全日志记录、攻击模拟、日志关联与分诊、误报分析、MITRE ATT&CK 映射、检测自动化、Python + REST API 集成 ## 设置说明 分诊脚本使用环境变量进行身份验证,而不是硬编码凭据: ``` export WAZUH_INDEXER_PASSWORD='your-password-here' python3 wazuh_triage.py ```
标签:Active Directory, Plaso, Wazuh, 安全运营, 密码喷洒, 扫描框架, 自动化分诊, 逆向工具