ReginaldBell/Phishing-Lab
GitHub: ReginaldBell/Phishing-Lab
一个端到端的钓鱼检测工程实验室,通过 GoPhish、邮件服务器和 Wazuh SIEM 验证从钓鱼邮件投递到关联告警的完整检测路径。
Stars: 0 | Forks: 0
# 钓鱼实验室

企业 AD 实验室钓鱼模拟扩展的 Windows 端工作区。截至 2026 年 3 月 14 日,全部六个项目阶段均已完成。
## 项目摘要
一次受控的钓鱼活动通过本地邮件中继投递到实验室工作站。工作站打开了邮件并点击了嵌入的钓鱼链接。我们设计了自定义 Wazuh 检测规则,用于针对邮件发送、邮箱投递、IMAP 访问和链接点击生成原始告警,以及一个关联的多事件事件告警。实时验证于 2026 年 3 月 14 日确认了完整的检测路径。
## 从这里开始
- 项目状态:[docs/PROJECT_STATUS.md](docs/PROJECT_STATUS.md)
- 分阶段概览:[docs/PROJECT_PHASE_OVERVIEW.md](docs/PROJECT_PHASE_OVERVIEW.md)
- Sprint 进度审查:[docs/SPRINT_PROGRESS_INTERNAL_REVIEW.md](docs/SPRINT_PROGRESS_INTERNAL_REVIEW.md)
## Sprint 交付物
| Sprint | 文档 |
|--------|----------|
| Sprint 1 — 基线验证 | [docs/SPRINT1_VALIDATION.md](docs/SPRINT1_VALIDATION.md) |
| Sprint 2 — 证据与时间线 | [docs/SPRINT2_EVIDENCE_AND_TIMELINE.md](docs/SPRINT2_EVIDENCE_AND_TIMELINE.md) |
| Sprint 3 — 检测工程 | [docs/SPRINT3_DETECTION_ENGINEERING.md](docs/SPRINT3_DETECTION_ENGINEERING.md) |
| Sprint 4 — 关联与实时验证 | [docs/PROJECT_PHASE_OVERVIEW.md](docs/PROJECT_PHASE_OVERVIEW.md)(第 4 阶段部分) |
| Sprint 5 — 事件响应 | [docs/SPRINT5_INCIDENT_RESPONSE.md](docs/SPRINT5_INCIDENT_RESPONSE.md) |
| Sprint 6 — 项目结项 | [docs/SPRINT6_PROJECT_CLOSEOUT.md](docs/SPRINT6_PROJECT_CLOSEOUT.md) |
## 仓库布局
```
wazuh/
rules/phishing_lab_rules.xml ← custom detection rules
decoders/phishing_lab_decoders.xml ← custom decoders
agents/gophish01-ossec.conf ← agent log collection config
agents/mail01-ossec.conf
docs/
SPRINT1_VALIDATION.md
SPRINT2_EVIDENCE_AND_TIMELINE.md
SPRINT3_DETECTION_ENGINEERING.md
SPRINT5_INCIDENT_RESPONSE.md
SPRINT6_PROJECT_CLOSEOUT.md
PROJECT_STATUS.md
PROJECT_PHASE_OVERVIEW.md
SPRINT_PROGRESS_INTERNAL_REVIEW.md
assets/screenshots/
scripts/
linux/deploy-wazuh-phishing-rules.sh ← deploys wazuh content to lab VMs
linux/run-wazuh-logtest.sh ← runs logtest samples against rules
linux/fix-postfix.sh
windows/start-vms.ps1
windows/configure-vm.ps1
ansible/
playbook-staging.yml
```
## 核心检测工件
| 文件 | 用途 |
|------|---------|
| [wazuh/rules/phishing_lab_rules.xml](wazuh/rules/phishing_lab_rules.xml) | 规则 100100–100104 — 完整的钓鱼检测集 |
| [wazuh/decoders/phishing_lab_decoders.xml](wazuh/decoders/phishing_lab_decoders.xml) | 与规则配合使用的自定义 decoder 定义 |
| [wazuh/agents/gophish01-ossec.conf](wazuh/agents/gophish01-ossec.conf) | GoPhish 主机的 Agent 日志收集配置 |
| [wazuh/agents/mail01-ossec.conf](wazuh/agents/mail01-ossec.conf) | 邮件主机的 Agent 日志收集配置 |
| [scripts/linux/deploy-wazuh-phishing-rules.sh](scripts/linux/deploy-wazuh-phishing-rules.sh) | 将规则、decoder 和 Agent 配置部署到运行中的实验室 VM |
| [scripts/linux/run-wazuh-logtest.sh](scripts/linux/run-wazuh-logtest.sh) | 通过 `wazuh-logtest` 针对指定日志样本验证规则 |
## 检测规则

| 规则 ID | 描述 |
|---------|-------------|
| 100100 | GoPhish 邮件已发送至目标 |
| 100101 | 检测到 GoPhish RID 点击 |
| 100102 | Dovecot 邮箱投递已确认 |
| 100103 | 来自工作站的 Dovecot IMAP 登录 |
| 100104 | 关联事件 — 邮箱投递后发生 RID 点击 |
规则 `100104` 是高置信度事件指标。它要求在跨 Agent 的 30 分钟时间窗口内,既有先前的投递事件,又有真实的 RID 点击。
**实时证明 — 规则 100104 于 2026-03-14 在 Wazuh 中触发:**

## 认可的范围限制
这些是项目所能证明内容的实际约束,而非待修复的开放 Bug:
- 规则 `100100` 依赖于 Wazuh 当前分配给 GoPhish 日志行的 `aws-eks-authenticator` decoder — 专用 decoder 可以消除这种脆弱性
- 无凭证窃取步骤 — 落地页仅为信息展示;不存在凭证提交规则
- 工作站上无基于主机的遥测数据 — SIEM 无法看到点击后的进程和网络活动
- 仅限实验室规模 — 四 VM 封闭网络;未针对真实流量规模或规避技术进行验证
有关完整的限制和建议的未来改进,请参阅 [docs/SPRINT6_PROJECT_CLOSEOUT.md](docs/SPRINT6_PROJECT_CLOSEOUT.md)。
标签:AI合规, AMSI绕过, Dovecot, GoPhish, Postfix, SIEM关联分析, Wazuh, Windows工作站, 企业AD域, 威胁检测, 安全基线, 安全运营, 应用安全, 扫描框架, 教学环境, 漏洞利用验证, 管理员页面发现, 系统提示词, 网络安全实验环境, 邮件安全, 钓鱼攻击模拟, 钓鱼检测