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, 企业安全, 低误报率, 全链路攻击, 威胁检测, 安全运营, 密码管理, 扫描框架, 攻击映射, 攻击模拟, 数据窃取, 欺骗技术, 网络资产管理, 虚假资产, 蜜罐, 证书利用, 请求拦截, 驱动签名利用