KareemCrafts/deception-grid-lab

GitHub: KareemCrafts/deception-grid-lab

该项目构建了一个多层主动防御实验室,通过T-Pot蜜罐、Canary文件令牌和AD蜜账户配合Wazuh SIEM,实现对网络边界到内网身份层面的全攻击链检测与MITRE ATT&CK映射。

Stars: 1 | Forks: 0

# 企业诱骗网格 — 主动防御实验室 ## 项目概述 本项目演示了组织如何部署**诱骗技术**,以检测绕过传统安全控制的攻击者。与依赖已知模式的基于特征的检测不同,诱骗技术创建合法用户绝不应接触的虚假资产 —— 使得任何交互都成为几乎零误报的已确信入侵指标。 该实验室实现了三个由集中式 SIEM 监控的企业诱骗层,模拟了从初始侦察到凭证泄露和数据窃取的真实攻击场景。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ INTERNET │ │ (Real Attackers) │ └──────────────────────────┬──────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ T-POT HONEYPOT SERVER │ │ (Ubuntu - External Deception) │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │Honeytrap │ │ Cowrie │ │ Dionaea │ │ ConPot │ │ │ │ 11,000+ │ │ 8,000+ │ │ 95+ │ │ 87+ │ │ │ │ attacks │ │ attacks │ │ attacks │ │ attacks │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ Layer 1: External Perimeter Deception │ │ 19,000+ real attack attempts captured │ └──────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────┐ │ INTERNAL NETWORK │ │ 192.168.254.0/24 │ │ │ │ ┌────────────────────────────────────────────────────────┐ │ │ │ WINDOWS SERVER 2019 — DOMAIN CONTROLLER │ │ │ │ WIN-J9RNKECAEDA (192.168.254.142) │ │ │ │ Domain: kareem.local │ │ │ │ │ │ │ │ Layer 2: Endpoint Deception │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ │ │ Honey Files (Canary Token-Embedded) │ │ │ │ │ │ • aws_credentials.txt (AWS Keys Token) │ │ │ │ │ │ • IT_Passwords_2025.docx (Word Token) │ │ │ │ │ │ • HR_Salary_Report_Q4.pdf (PDF Token) │ │ │ │ │ │ • Internal_Portal.txt (Web Bug Token) │ │ │ │ │ │ • system_backup_tool.exe (EXE Token) │ │ │ │ │ │ Shared via: \\server\IT_Department │ │ │ │ │ └─────────────────────────────────────────┘ │ │ │ │ │ │ │ │ Layer 3: Active Directory Deception │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ │ │ Honey Accounts: │ │ │ │ │ │ • Domain_Admin_Old (HTTP SPN) │ │ │ │ │ │ • Backup_Admin (MSSQL SPN) │ │ │ │ │ │ • svc_sql_prod (MSSQL SPN) │ │ │ │ │ │ • sarah.jones, j.smith, lily.smith │ │ │ │ │ │ │ │ │ │ │ │ Honey SPNs (Kerberoasting Bait): │ │ │ │ │ │ • MSSQLSvc/sql-server:1433 │ │ │ │ │ │ • HTTP/webportal.kareem.local │ │ │ │ │ │ • MSSQLSvc/backup-db:1433 │ │ │ │ │ └─────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────┐ ┌──────────────────────┐ │ │ │ WAZUH SIEM │ │ KALI LINUX │ │ │ │ (Ubuntu) │◄───│ (Attack Simulation)│ │ │ │ │ │ │ │ │ │ Central Detection │ │ Tools Used: │ │ │ │ • Custom Rules │ │ • nmap │ │ │ │ • MITRE ATT&CK Map │ │ • crackmapexec │ │ │ │ • Event Correlation │ │ • kerbrute │ │ │ │ • Alert Dashboard │ │ • impacket │ │ │ │ │ │ • smbclient │ │ │ └──────────────────────┘ └──────────────────────┘ │ │ │ │ ┌──────────────────────┐ │ │ │ CANARYTOKENS.ORG │ │ │ │ (External Alerting) │ │ │ │ • Email alerts on │ │ │ │ file access │ │ │ │ • IP geolocation │ │ │ │ • User-agent capture│ │ │ └──────────────────────┘ │ └──────────────────────────────────────────────────────────────────┘ ``` ## 攻击模拟与检测结果 ### 阶段 1 — 网络侦察 | 步骤 | 工具 | 技术 | MITRE ATT&CK | Wazuh 检测 | |------|------|-----------|--------------|-----------------| | 网络扫描 | nmap | 端口扫描 (88, 135, 139, 445) | T1046 | 网络扫描告警 | | 域枚举 | crackmapexec | SMB banner 抓取 — 发现 `kareem.local` | T1018 | SMB 连接日志 | ### 阶段 2 — 用户名收集 | 步骤 | 工具 | 技术 | MITRE ATT&CK | Wazuh 检测 | |------|------|-----------|--------------|-----------------| | Kerberos 用户枚举 | kerbrute | 预认证枚举 — 发现 5 个有效账户 | T1087.002 | 事件 ID 4768 | **发现的账户:** `j.smith`、`sarah.jones`、`backup_admin`、`domain_admin_old`、`svc_sql_prod` ### 阶段 3 — 凭证攻击 | 步骤 | 工具 | 技术 | MITRE ATT&CK | Wazuh 检测 | |------|------|-----------|--------------|-----------------| | 密码喷射 | crackmapexec | 针对 5 个账户的 45 次登录尝试 | T1110.003 | 事件 ID 4625 (x43 次失败) | | 凭证泄露 | crackmapexec | 破解 `domain_admin_old` 和 `sarah.jones` | T1078.002 | 事件 ID 4624 + 规则 92657 | ### 阶段 4 — 横向移动与数据窃取 | 步骤 | 工具 | 技术 | MITRE ATT&CK | Wazuh 检测 | |------|------|-----------|--------------|-----------------| | 共享枚举 | smbclient | 发现 `IT_Department` 共享 | T1135 | 事件 ID 5140 | | 文件窃取 | smbclient | 下载 5 个蜜罐文件 | T1039 | 事件 ID 5145 | | Canary Token 触发 | curl | Web bug token 从 Kali 触发 | T1071.001 | Canary 告警 (邮箱 + IP) | | EXE Token 触发 | execution | 通过 DNS 触发自定义 EXE canary | T1071.004 | Canary 告警 (DNS 回调) | ### 阶段 5 — Kerberoasting | 步骤 | 工具 | 技术 | MITRE ATT&CK | Wazuh 检测 | |------|------|-----------|--------------|-----------------| | SPN 枚举 | impacket-GetUserSPNs | 在 3 个蜜罐账户上发现 7 个 SPN | T1558.003 | 事件 ID 4769 | | 哈希提取 | impacket-GetUserSPNs | 提取 krb5tgs 哈希以供离线破解 | T1558.003 | 加密类型 0x17 (RC4) | ## 自定义 Wazuh 检测规则 专门编写用于检测与诱骗资产交互的自定义规则。位于 `wazuh-rules/honey_account_rules.xml`。 | 规则 ID | 级别 | 描述 | 触发条件 | |---------|-------|-------------|---------| | 100100 | 12 | 针对蜜罐账户的任何身份验证尝试 | 登录诱骗账户 | | 100101 | 13 | 蜜罐账户登录失败 | 暴力破解 / 喷射攻击 | | 100102 | 15 | 蜜罐账户登录成功 | 凭证泄露 | | 100110 | 14 | 请求蜜罐 SPN 的 Kerberos 票据 | Kerberoasting | | 100111 | 12 | 蜜罐账户的 Kerberos TGT | AD 枚举 | | 100120 | 12 | 访问蜜罐文件共享 | 共享浏览 | | 100121 | 13 | 蜜罐文件被访问 | 文件窃取 | | 100130 | 14 | 密码喷射模式 (2 分钟内 5 次以上) | 喷射检测 | | 100140 | 11 | 对蜜罐对象的目录服务访问 | BloodHound / LDAP 枚举 | ## MITRE ATT&CK 覆盖范围 由诱骗网格检测到的技术: | 战术 | 技术 | ID | 诱骗层 | |--------|-----------|-----|-----------------| | 侦察 | 网络扫描 | T1046 | T-Pot | | 初始访问 | 有效账户:域 | T1078.002 | AD 蜜罐账户 | | 凭证访问 | 密码喷射 | T1110.003 | AD 蜜罐账户 | | 凭证访问 | Kerberoasting | T1558.003 | 蜜罐 SPN | | 发现 | 账户发现:域 | T1087.002 | AD 蜜罐账户 | | 发现 | 网络共享发现 | T1135 | 蜜罐文件共享 | | 横向移动 | SMB/Windows 管理共享 | T1021.002 | 蜜罐文件共享 | | 收集 | 来自网络共享驱动器的数据 | T1039 | 蜜罐文件 | | 防御规避 | 使用备用身份验证材料 | T1550.002 | AD 蜜罐账户 | ## 工具与技术 | 类别 | 工具 | 用途 | |----------|------|---------| | 蜜罐平台 | T-Pot (Honeytrap, Cowrie, Dionaea, ConPot) | 外部攻击捕获 | | SIEM | Wazuh 4.7.5 | 集中式检测与告警 | | Canary Tokens | canarytokens.org | 带有邮件告警的文件级诱骗 | | 域控制器 | Windows Server 2019 | Active Directory 蜜罐账户和 SPN | | 攻击模拟 | Kali Linux (nmap, crackmapexec, kerbrute, impacket) | 红队验证 | ## 仓库结构 ``` deception-grid-lab/ ├── README.md ├── wazuh-rules/ │ └── honey_account_rules.xml # Custom detection rules ├── phase1-tpot/ │ ├── setup-guide.md │ └── screenshots/ # T-Pot dashboards, attack maps ├── phase2-endpoint-deception/ │ ├── canary-tokens-setup.md │ └── alert-examples/ # Canary token trigger evidence ├── phase3-ad-deception/ │ ├── ad-honey-accounts.md │ ├── spn-setup.md │ └── kerberoasting-detection.md ├── phase4-siem/ │ ├── wazuh-setup.md │ └── detection-screenshots/ # Wazuh alert evidence ├── phase5-threat-intel/ │ └── threat-intelligence-report.pdf # CISO-ready report └── lessons-learned.md ``` ## 经验总结 **效果良好的部分:** - 具有吸引人名称的蜜罐账户 (Domain_Admin_Old, svc_sql_prod) 在模拟期间立即吸引了攻击工具 - Canary tokens 提供了外部告警,包含攻击者 IP、User-Agent 和地理位置 —— 这是 Wazuh 单独无法提供的数据 - 分层诱骗(网络 + 端点 + AD)确保了无论攻击路径如何都有多次检测机会 - Wazuh 中的 MITRE ATT&CK 映射无需手动规则调整即可自动关联攻击技术 **在企业规模下我会改进的部分:** - 自动化蜜罐账户轮换 — 静态诱骗资产会被持久攻击者知晓 - 将 T-Pot 日志集成到 Wazuh 中,以便在所有诱骗层获得单一视图 - 在工作站而不仅仅是服务器上部署蜜罐 tokens — 横向移动通常始于受攻陷的端点 - 添加嵌入了凭证的蜜罐 GPO 以检测组策略枚举 - 当诱骗告警触发时实施自动化事件响应 (SOAR 集成) — 阻断攻击者 IP,隔离受攻陷主机,通知 SOC - 使用商业诱骗平台 以获得更广泛的覆盖范围和自动化诱饵部署 ## 作者 **Kareem Tamer Yousef** - GitHub: [KareemCrafts](https://github.com/KareemCrafts) - LinkedIn: [kareem-alshaer-b540a8297](https://linkedin.com/in/kareem-alshaer-b540a8297)
标签:AMSI绕过, Cloudflare, MITRE ATT&CK, StruQ, Terraform 安全, Wazuh, 企业安全, 低误报率, 全链路攻击, 威胁检测, 安全运营, 密码管理, 扫描框架, 攻击映射, 攻击模拟, 数据窃取, 欺骗技术, 网络资产管理, 虚假资产, 蜜罐, 证书利用, 请求拦截, 驱动签名利用