Jhatchi/NexaCorp-DFIR-INC-2026-001
GitHub: Jhatchi/NexaCorp-DFIR-INC-2026-001
这是一个针对模拟入侵事件的DFIR调查与检测工程案例,通过分析PCAP和SIEM数据来识别威胁并编写验证过的Suricata规则。
Stars: 0 | Forks: 0
# NexaCorp DFIR 参与任务 (INC-2026-001)
针对 NexaCorp 基础设施模拟入侵的 DFIR 调查与检测工程。作为为期 4 天的独立参与(BeCode 布鲁塞尔蓝队与红队训练营,任务 01)进行。交付物是一份 54 页的调查结果报告(PDF)以及 7 条经过验证的 Suricata 规则,这些规则能在 PCAP 重放中捕获到所记录的事件。
[](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-001/actions/workflows/checks.yml)
[](#方法论)
[](https://attack.mitre.org/)
[](detection/lab.rules)
[](LICENSE)
[](https://www.linkedin.com/in/johan-emmanuel-hatchi/)
## ⚠ 操作声明
**这是针对虚构基础设施的实验环境任务。** NexaCorp 是一个虚构的客户,作为 BeCode 布鲁塞尔任务 01 的情景设定。受感染的主机是一台为安全培训而故意设置漏洞的 Metasploitable 2 虚拟机,Caldera Sandcat 植入程序是实验的一部分,用于向分析师展示真实入侵者的信标流量是什么样子。没有攻击任何真实的组织、网络或人员。
本报告中发布的所有 IP 地址、主机名和入侵指标(`172.16.50.10`、`192.168.10.10`、`10.40.0.200`、`blue11`、`mesdec` 等)都是**实验环境内的产物**,并非真实世界的威胁情报。请勿将它们作为 IOC 输入 SIEM。
**发布授权**:经 BeCode 实验室教练(Thomas B.)于 2026-05-17 授权。完整的保密声明见调查结果报告(“分发与密级”章节)。
## 概览
| 参与任务元数据 | 值 |
|---|---|
| 参考编号 | `BCC-2026 / INC-2026-001` |
| 持续时间 | 4 天(独立) |
| 阶段 | DFIR(取证) + 检测工程 |
| 交付日期 | 2026-05-15 |
| 状态 | 完成(阶段 1 + 阶段 2) |
| 调查产出 | 值 |
|---|---|
| 调查结果 | **10** 项(3 项危急,3 项高危,2 项中危,2 项低危) |
| 映射的 MITRE ATT&CK 技术 | 14 种 |
| 分析的网络捕获 | 5 小时 31 分内 5,194 个数据包(943 KB PCAP) |
| 关联的 Wazuh 事件 | 来自代理 `020` 的 397 条 |
| 编写的 Suricata 规则 | **7** 条(SID 9000001-9000007) |
| 通过 PCAP 重放验证的规则 | **7/7** 条(40 条 fast.log 警报,314 条 eve.json 记录) |
## 任务背景
**情景(虚构)。** NexaCorp,一家中型公司客户,在内部监控发现**一台内部 Linux 服务器出现异常的出站流量**后,联系了 BeCode Corp 的蓝队。他们的防火墙记录了该流量但未生成可操作的警报。董事会需要在决定是否进行披露和监管通知前做出判断。
**授权。** 调查可疑事件窗口,描述攻击者的入侵路径和利用后活动,评估现有检测栈捕获(以及遗漏)的内容,并提供一份按优先级排序的补救计划。第二阶段增加了检测工程:生产可立即部署的网络 IDS 规则,以实时捕获复发情况。
**从客户收到的证据包。**
| 证据 | 覆盖范围 | 备注 |
|---|---|---|
| 网络捕获 (PCAP) | 2026-05-09 20:08 至 2026-05-10 01:39 UTC(5 小时 31 分,5,194 个数据包) | 在事件中期开始:植入程序在第 1 帧已在发送信标 |
| 主机认证日志 | 2026-05-10 06:47 UTC 起 | 仅为事件后数据(PCAP 结束后约有 5 小时间隔) |
| 主机系统日志 | 2026-05-10 06:37 UTC 起 | 第一条记录为 `syslogd restart`,表明虚拟机重启 |
| SIEM 警报导出 (Wazuh) | 不适用 | 文件是 HTTP 404 响应,并非数据。后通过直接查询仪表盘恢复了 397 条事件 |
**教育背景。** 本次任务在 **BeCode 布鲁塞尔蓝队与红队训练营(2025 年 11 月至 2026 年 9 月)** 期间作为任务 01 交付:这是一次模拟真实 DFIR 咨询任务的独立、限时调查。实验基础设施、NexaCorp 身份标识和 IOC 值都是故意虚构的。方法论、工具和报告格式遵循真实世界标准(NIST SP 800-61r2, SANS PICERL, MITRE ATT&CK)。
## 执行摘要
在 **2026-05-09 22:53 UTC** 的傍晚,一名外部攻击者(`172.16.50.10`)通过利用 **CVE-2011-2523**(`vsftpd` 2.3.4 中的后门,这是一个自 2011 年 7 月起已被公开记录为受污染的版本)入侵了一台 NexaCorp 内部服务器(`192.168.10.10`)。一个以 `:)` 结尾的 FTP `USER` 请求触发了 TCP/6200 上未授权的 root 绑定 shell。攻击者在一个 20 秒的会话中运行了 **8 条侦察命令**(未建立持久化,未窃取数据,未通过此访问路径横向移动),然后断开连接。
同时发现,同一主机运行着一个**预先存在的 MITRE Caldera “Sandcat” 代理**(位于 `/opt/caldera/sandcat`,root 权限,守护进程化),在整个捕获窗口期间,它以明文 HTTP 每 40-50 秒向 `10.40.0.200:8888` 发送信标。这正是客户端最初标记的“异常出站连接”,并表明存在**一次未在证据包中体现的先前入侵**(植入程序在第一个 PCAP 帧中已处于活跃状态)。
现有的 **Wazuh SIEM 从目标主机摄入了 397 条事件**,但仅生成了 **4 条高严重性警报(占总数的 1.0%)**,且全部归类为通用暴力破解(MITRE T1110)。没有一条识别出 CVE-2011-2523 漏洞利用载荷、TCP/6200 上的绑定 shell 或 Caldera C2 通道:漏洞利用字节(`USER baduser:)`)**从未被 vsftpd 本身记录**,而 SIEM 没有网络遥测数据来查看其余部分。阶段 2 交付的 7 条 Suricata 规则填补了所有三个缺口。
**主要 IOC(仅限实验环境,请勿用于真实 SIEM):**
| 类型 | 值 | 背景 |
|---|---|---|
| 源 IP(攻击者) | `172.16.50.10` | vsftpd 漏洞利用,多协议侦察,SSH 暴力破解 |
| 目标 IP | `192.168.10.10` | 被入侵的内部服务器(Metasploitable 2) |
| C2 IP | `10.40.0.200:8888` | Caldera Sandcat 命令与控制 |
| 后门端口 | `6200/tcp` | CVE-2011-2523 root 绑定 shell |
| 漏洞利用载荷 | 以 `:)` 结尾的 FTP `USER` 命令 | 后门触发模式 |
## 如何阅读本报告
仓库的组织结构便于您根据自身角色深入适当层次:
| 如果您是... | 从这里开始 | 耗时 |
|---|---|---|
| **招聘人员或招聘经理** | 本 README + 浏览 [PDF](reports/INC-2026-001_Findings_Report.pdf) 执行摘要 | 5 分钟 |
| **评估适合度的 SOC 分析师** | [PDF 第 5 节(检测缺口)和第 8 节(检测工程)](reports/INC-2026-001_Findings_Report.pdf) + [`detection/lab.rules`](detection/lab.rules) | 20 分钟 |
| **DFIR 从业者** | 完整 [PDF](reports/INC-2026-001_Findings_Report.pdf) + [`notes/journal.md`](notes/journal.md) 了解调查轨迹 | 60 分钟 |
| **检测工程师** | [`detection/lab.rules`](detection/lab.rules) + [`detection/workflow.md`](detection/workflow.md) 了解部署和重放验证 | 30 分钟 |
| **任何希望搜索、引用或对比的人** | [报告的 Markdown 源文件](reports/INC-2026-001_Findings_Report.md) | 根据需要 |
**规范交付物:** `reports/` 目录中的 PDF。Markdown 源文件内容完全相同,保存在仓库中以便搜索和版本控制。
**调查轨迹:** `notes/journal.md` 是分析师的工作笔记(测试并证伪的假设、证据清单、计划状态)。它通过展示**如何**得出结论(而不仅仅是结论本身)来补充正式报告。
**检测规则集:** `detection/lab.rules` 包含 7 条 Suricata 规则,并在内联注释中为每个关键字提供了完整的理由说明。`detection/workflow.md` 记录了用于确认每条规则在捕获事件上触发的部署和重放验证工作流程。
## 方法论
本次任务遵循三个叠加在一起的行业标准框架。
### NIST SP 800-61r2:计算机安全事件处理指南
NIST 的四阶段模型(准备、检测与分析、遏制/根除/恢复、事后活动)提供了高级结构。在本次任务中,**交付物的阶段 1 对应于 NIST 的“检测与分析”**(PCAP 取证、SIEM 关联、攻击者时间线重建)。**阶段 2 对应于 NIST 的“经验教训”**,转化为预防性控制(7 条 Suricata 规则和报告第 7 节中按优先级排序的建议列表)。
### SANS PICERL:战术调查流程
PICERL(准备、识别、遏制、根除、恢复、经验教训)是 SANS 事件响应流程。在本次任务中的应用:
| PICERL 阶段 | 本次任务 |
|---|---|
| **准备** | 教练验证的实验环境、签署的证据包、定义的范围(取证 + 检测工程)、4 天时间限制 |
| **识别** | PCAP 分诊 + Wazuh 事件关联 + 基于假设的分析(7 个假设,1 个被证伪,5 个被确认,1 个不确定) |
| **遏制/根除/恢复** | 记录为 P0 建议(主机隔离、vsftpd 移除、Caldera 植入程序清理),但未执行(超出范围:仅进行取证分析,非主动响应) |
| **经验教训** | 阶段 2 检测工程:7 条 Suricata 规则 + 调优说明 + 误报分析(报告第 8 节) |
### MITRE ATT&CK:技术映射
每个发现都映射到一个或多个 MITRE ATT&CK 技术,以便客户将本次事件与其现有威胁模型相关联。在 10 个发现中引用了 **14 种不同技术**:
- **侦察:** T1595.002, T1592.002, T1589
- **初始访问:** T1190(通过 CVE-2011-2523 利用面向公众的应用程序)
- **执行:** T1059.004(Unix Shell)
- **发现:** T1033, T1082, T1087.001, T1083, T1016, T1049, T1046
- **凭据访问:** T1110(暴力破解)
- **命令与控制:** T1071.001, T1102(Caldera Sandcat 信标)
- **权限提升:** T1078.003, T1548.003(可疑的 sudo 活动)
每个发现的完整技术表格见[报告第 4 节(IOC)](reports/INC-2026-001_Findings_Report.md),深入分析见第 3 和第 5 节。
### 可重现性
报告中的每一项主张都可以追溯到证据包中的某个证据,并提供了重现它所需的确切 `tshark` 过滤器、Wazuh 查询或 Suricata 重放命令。报告中的**附录 A(可重现性命令)**和下方的**[可重现性](#reproducibility)章节**提供了快速入门指南。
## 使用的工具
**网络取证**
- [`tshark`](https://www.wireshark.org/docs/man-pages/tshark.html):命令行版 Wireshark,用于 PCAP 分诊、TCP 流重建(`-z follow,tcp,ascii`)、协议过滤和字段提取
- [`tcpreplay`](https://tcpreplay.appneta.com/) 和 `tcprewrite`:将 PCAP 重放到活动监控接口以进行 Suricata 规则验证,调整 MTU 以适应实验室 `ens19`(1500 字节)
- Base64 解码器:重建 Caldera Sandcat C2 载荷(信标正文和操作员响应)
**网络 IDS / 检测工程**
- [Suricata 6.0.4](https://suricata.io/)(`afpacket` 模式,单线程,实验室禁用 Hyperscan):编写、验证并调优了本次交付物中的 7 条规则
- `suricata -T`(配置 + 规则验证,用于 [`checks.yml`](.github/workflows/checks.yml) CI 工作流)
- `kill -USR2 $(pgrep suricata)`:迭代调优期间的实时规则重载
**SIEM 和主机遥测**
- [Wazuh](https://wazuh.com/)(管理器 + 仪表盘):事件关联、严重性分布分析、规则查找(`rule.id 11452`, `5551` 等)、397 条事件的 CSV 导出
- 标准 Linux 文本工具(`grep`, `awk`, `jq`):日志挖掘和 JSON 解析
**对手模拟环境上下文**(引用,未操作)
- [MITRE Caldera](https://caldera.mitre.org/)(Sandcat 代理):作为正在被表征的模拟预先存在的 C2 植入程序存在于目标主机上
**参考框架**
- [NIST SP 800-61r2](https://csrc.nist.gov/publications/detail/sp/800-61/rev-2/final):计算机安全事件处理指南
- [SANS PICERL](https://www.sans.org/blog/incident-handlers-handbook/):战术调查流程
- [MITRE ATT&CK](https://attack.mitre.org/):技术归因
- [CVE-2011-2523 公告](https://nvd.nist.gov/vuln/detail/CVE-2011-2523):vsftpd 2.3.4 后门参考
## 发现索引
10 项发现(`I1` 到 `I10`)在[调查结果报告](reports/INC-2026-001_Findings_Report.md)中有详细记录。每项都包含证据、可重现性命令、MITRE ATT&CK 映射和补救指导。
| ID | 严重性 | 标题 | 主要 MITRE 技术 |
|---|---|---|---|
| **I1** | 🔴 危急 | 内部网络上暴露了易受攻击的 vsftpd 2.3.4 服务 | T1190 |
| **I2** | 🟡 中危 | 漏洞利用前的长时间低速侦察阶段 | T1595.002, T1589 |
| **I3** | 🟠 高危 | 通过 `USER` 微笑符号后门触发器进行 CVE-2011-2523 漏洞利用 | T1190 |
| **I4** | 🔴 危急 | TCP/6200 上未授权的 root 绑定 shell,执行了 8 条枚举命令 | T1059.004, T1082 |
| **I5** | 🔴 危急 | 预先存在的 MITRE Caldera Sandcat C2 植入程序(独立于 FTP 攻击) | T1071.001, T1102 |
| **I6** | 🟢 低危 | 多协议服务枚举(HTTP, SSH, SMTP, Telnet, MySQL) | T1046 |
| **I7** | 🟡 中危 | SSH 暴力破解尝试在 Wazuh 中可见,但不在 PCAP 捕获窗口内 | T1110 |
| **I8** | 🟠 高危 | 异常的 sudo 活动,包括 2 次首次 sudo 事件 | T1548.003 |
| **I9** | 🟠 高危 | Wazuh SIEM 对此类攻击的检测覆盖不足 | (防御缺口) |
| **I10** | 🟢 低危 | 主机审计日志未覆盖事件窗口 | (证据缺口) |
**严重性分布:** 3 项危急 / 3 项高危 / 2 项中危 / 2 项低危
**阅读顺序建议:** 从 I1(易受攻击的服务)开始,然后是 I3 和 I4(实际的漏洞利用链),然后是 I5(并行的、无关的 C2 植入程序)。I2 和 I6 提供了侦察背景。I7 到 I10 是关于防御姿态的发现(监控看到了什么,错过了什么)。
## 检测工程
任务的阶段 2 产生了 7 条 Suricata 规则(SID `9000001` 到 `9000007`),从三个角度覆盖了捕获的事件:**漏洞利用签名**、**利用后 shell** 和**并行的 C2 通道**。每条规则都通过在 SOC 工作站上的 Suricata 6.0.4 实例进行离线 PCAP 重放进行了验证。
### 7 条规则
| SID | 检测目标 | 层级 | MITRE 技术 | 重放触发 |
|---|---|---|---|---|
| **9000001** | vsftpd 2.3.4 后门触发器:`USER` 参数以 `:)` 结尾 | TCP/21 载荷 | T1190 | ✅ 1/1 |
| **9000002** | vsftpd 2.3.4 广播的易受攻击横幅(`220 (vsFTPd 2.3.4)`) | TCP/21 载荷 | T1190 | ✅ 30(每个 FTP 会话重复出现的横幅) |
| **9000003** | 对后门端口 6200 的入站 TCP 连接(仅 SYN) | TCP/6200 | T1059.004 | ✅ 1/1(绑定 shell 连接) |
| **9000004** | MITRE Caldera Sandcat 代理信标(`POST /beacon` + UA `Go-http-client/1.1`) | TCP+内容(端口无关) | T1071.001, T1102 | ✅ 1(限速:每源每 60 秒 1 条) |
| **9000005** | Caldera C2 服务器响应(HTTP `Server: Python/3.10 aiohttp/3.13.4`) | TCP+内容(端口无关) | T1071.001 | ✅ 1(限速:每源每 300 秒 1 条) |
| **9000006** | 来自 curl/Wget 的 HTTP 管理路径枚举(`/admin`, `/login`, `/phpmyadmin`) | TCP/80 载荷 | T1595.002, T1592.002 | ✅ 3 |
| **9000007** | 慢速 FTP `USER` 枚举(同一来源 30 分钟内 5+ 次尝试) | TCP/21 + 阈值 | T1589, T1078.003 | ✅ 3 |
### 验证摘要
| 指标 | 值 |
|---|---|
| 编写的规则 | **7** 条 |
| 在 PCAP 重放中正确触发的规则 | **7/7** ✅ |
| `fast.log` 中的警报(去重后,SOC 视图) | **40** 条 |
| `eve.json` 中的记录(原始,限速前) | **314** 条 |
| Suricata 版本 | 6.0.4 (afpacket, 单线程) |
| 重放命令 | `tcpreplay --intf1=ens19 --topspeed attack_mtu.pcap` |
| CI 验证 | [每次推送时 `suricata -T`](.github/workflows/checks.yml) |
40 条与 314 条之间的差异反映了规则 9000003、9000004、9000005、9000006 故意进行了限速,以便为 SOC 分析师提供清晰的操作视图,同时在 `eve.json` 中保留原始警报流供取证深入调查。
### 值得注意的设计决策
部署过程中的四次迭代修复记录在 [`detection/workflow.md`](detection/workflow.md)。主要经验:
1. **端口无关的 HTTP 检测。** 规则 9000004 和 9000005(Caldera)最初使用 `alert http` 和 `http.uri` 关键字编写,这仅在端口 80 上激活 Suricata 的 HTTP 解析器。Caldera C2 运行在端口 8888,因此解析器被绕过,规则从未触发。修复:以 TCP+content 模式重写(`alert tcp ... content:"POST /beacon"; content:"Go-http-client/1.1";`),无论端口如何都能匹配原始 HTTP 字节。
2. **PCAP 重放期间 `flow:established` 不可靠。** 重放窗口外捕获的 TCP 握手使流状态机处于不确定状态。从 Caldera 规则中移除 `flow:established` 使其在实时和重放模式下均能匹配。
3. **仅 SYN 规则的显式流方向。** 规则 9000003(端口 6200)生成了 `SC_WARN_POOR_RULE: SYN-only ... w/o direction specified`。通过添加 `flow:to_server,not_established` 修复。
4. **仅 RFC1918 实验室中的 `HOME_NET` 与 `EXTERNAL_NET`。** 当攻击者、目标和 C2 都位于私有地址空间时,`EXTERNAL_NET = !$HOME_NET` 变为空,形如 `$EXTERNAL_NET any -> $HOME_NET 21` 的规则永远不会匹配。实验室修复:两者都使用 `any`。生产修复:将 `HOME_NET` 收窄到受保护网段(例如 `192.168.10.0/24`)。
### 误报考虑
每条规则的误报分析记录在[报告第 8.5 节](reports/INC-2026-001_Findings_Report.md)。在范围明确的环境中,大多数规则风险可忽略;规则 9000005(aiohttp Server 头)和 9000006(curl/Wget 访问管理路径)如果存在良性的内部 Python 服务或管理脚本,则需要调优。
## 仓库布局
```
NexaCorp-DFIR-INC-2026-001/
├── README.md (this file)
├── LICENSE (MIT)
├── .gitignore
├── .github/
│ └── workflows/
│ └── checks.yml markdownlint + suricata -T validation
├── reports/
│ ├── INC-2026-001_Findings_Report.pdf canonical 54-page deliverable
│ └── INC-2026-001_Findings_Report.md same content, Markdown source
├── detection/
│ ├── lab.rules 7 Suricata rules (SID 9000001-9000007)
│ └── workflow.md deploy + replay validation workflow
└── notes/
└── journal.md analyst investigation journal (hypotheses, plan, IOCs, timeline)
```
**文件分类:**
| 路径 | 用途 | 受众 |
|---|---|---|
| `reports/*.pdf` | 规范交付物,正式报告 | 客户,招聘人员,审计员 |
| `reports/*.md` | 相同内容,便于搜索的源文件 | 任何需要引用或对比的人 |
| `detection/lab.rules` | 生产就绪的 Suricata 规则集 | SOC / 检测工程师 |
| `detection/workflow.md` | 部署 + 重放验证指南 | 检测工程师入职 |
| `notes/journal.md` | 调查工作笔记 | 研究方法的 DFIR 从业者 |
| `.github/workflows/checks.yml` | 每次推送时的自动化规则 + markdown 验证 | CI |
## 可重现性
调查结果报告中的每一项主张都可以追溯到证据包中的某个证据。PCAP 本身不重新分发(BeCode 实验室资产),但命令和查询均有文档记录,任何拥有副本的人都可以重现分析。
### 重现关键发现(PCAP 分析)
需要 `tshark`(Wireshark CLI)和原始的 `attack.pcap`:
```
# 1. PCAP 概览
tshark -r attack.pcap -q -z io,stat,0
# 2. TCP 会话(揭示攻击者、目标、C2)
tshark -r attack.pcap -q -z conv,tcp | head -30
# 3. 确认 vsftpd 2.3.4 标语暴露(发现 I1)
tshark -r attack.pcap -Y "ftp && ip.src == 192.168.10.10" \
-T fields -e frame.time -e ftp.response.code -e ftp.response.arg | head -5
# 4. 查找 CVE-2011-2523 漏洞利用载荷(发现 I3)
tshark -r attack.pcap -Y 'ftp.request.command == "USER"' \
-T fields -e frame.time -e ftp.request.arg
# 5. 重建 TCP/6200 上的 root shell 会话(发现 I4)
tshark -r attack.pcap -q -z follow,tcp,ascii,70
# 6. 重建 Caldera C2 信标(发现 I5)
tshark -r attack.pcap -q -z follow,tcp,ascii,6 | head -50
```
### 重现规则验证(Suricata 重放)
需要 Suricata 6.0.x、`tcpreplay` 和一个受监控的接口(实验室为 `ens19`;请替换为您自己的):
```
# 1. 安装规则集
sudo cp detection/lab.rules /etc/suricata/rules/learner/lab.rules
# 2. 热重载 Suricata 无需重启
sudo kill -USR2 $(pgrep -f suricata)
sleep 5
# 3. 清除告警日志以获得干净基线
sudo truncate -s 0 /var/log/suricata/fast.log
# 4. 以最快速度重放 PCAP
sudo tcpreplay --intf1=ens19 --topspeed attack_mtu.pcap
# 5. 按规则统计告警(预期 7 个不同 SID)
sudo grep -oE '\[1:[0-9]+:' /var/log/suricata/fast.log | sort | uniq -c | sort -rn
```
预期输出(一次完整重放后):
```
30 [1:9000002: (vsftpd banner repeated per session)
3 [1:9000007: (FTP USER enumeration threshold)
3 [1:9000006: (HTTP admin path enumeration)
1 [1:9000005: (Caldera C2 response)
1 [1:9000004: (Caldera Sandcat beacon, throttled)
1 [1:9000003: (Backdoor port 6200 SYN)
1 [1:9000001: (vsftpd USER smiley exploit)
```
**7/7 条规则正确触发。** 完整的证据包(`fast.log`、`eve.json`、限速配置、Suricata 版本快照)在**[调查结果报告](reports/INC-2026-001_Findings_Report.md)的附录 E** 中已列出。
## 已知局限
- **证据包在事件中途开始。** PCAP 从 2026-05-09 20:08 UTC 开始,但 Caldera Sandcat 代理在第 1 帧已活跃发送信标。安装植入程序的初始入侵发生在更早,且未在数据中体现。关于植入前活动的结论是从 Wazuh 的 `full_log` 字段推断的,而非直接观察。
- **主机审计日志与攻击窗口不重叠。** 本地 `auth.log` 和 `syslog` 在 PCAP 结束后约 5 小时才开始,第一条记录是 `syslogd restart`(可能是虚拟机重启)。未提供轮转的日志文件。这被记录为发现 I10。
- **范围是取证 + 检测工程,非实时响应。** 遏制、根除、取证获取(内存映像、磁盘映像)和持久化枚举在报告中记录为 **P0 建议**,但未执行:本次任务没有主机实时访问权限。需要后续任务来完成这些工作。
- **7 条 Suricata 规则检测此特定事件签名。** 老练的攻击者可以通过更改漏洞利用字节模式(`USER` 参数的替代空字节终止符)、使用不同 User-Agent 重新编译 Caldera 或将 C2 移至加密 HTTPS(JA3/JA4 等 TLS 元数据分析将作为后备)来规避。这些规则适用于捕获的威胁场景;长期检测策略应增加基于行为和元数据的检测。
- **调查期间 Wazuh 摄入中断。** SIEM 日志摄入管道在 2026-05-11 11:39 UTC(调查中期,由实验室教练恢复)之前暂时不可用。因此,4 条高严重性警报在仪表盘中显示的是**摄入时间戳**(5 月 11 日 13:17-13:28),而非实际事件时间戳(5 月 9 日 21:00-22:53),这扭曲了关联事件的明显时间。
- **`HOME_NET` 在实验室内设置为 `any`。** 在真实的 NexaCorp 部署中,`HOME_NET` 必须收窄到受保护网段(例如 `192.168.10.0/24`),以便 `EXTERNAL_NET = !$HOME_NET` 能正确覆盖攻击者空间。交付的规则是针对实验室调优的,生产使用前需要更改配置。
- **4 天时间限制:仍有 2 项待办。** 拉取所有 80 条 sudo 事件的 `full_log` 以识别触发它们的用户账户(以及相对于 FTP 漏洞利用的时间戳),并审查 12 次 SSH 认证成功事件以区分合法的管理员会话和攻击者控制的会话。这两项均记录在报告的“未决问题”附录中。
## 许可证
[MIT](LICENSE),2026 Johan-Emmanuel Hatchi。
`detection/lab.rules` 中的 Suricata 规则和报告文本均根据相同的 MIT 许可证发布:可自由复制、改编和重新部署,但需注明出处。PCAP、实验基础设施和任务简报仍是 BeCode 布鲁塞尔的资产,不重新分发。
## 致谢
- **Thomas B.**(BeCode 实验室教练):情景设计、调查中期 Wazuh 摄入修复、授权将作品集用于投资组合。
- **MITRE** 提供了驱动模拟 C2 植入程序的 Caldera 框架,以及用于映射每个发现的 ATT&CK 知识库。
- **Suricata 项目** 提供了引擎,使 7 条规则在 30 分钟内即可部署。
## 关于
在 [BeCode 布鲁塞尔](https://becode.org)蓝队与红队训练营(2025 年 11 月至 2026 年 9 月)期间,于 2026-05-15 交付的独立 DFIR 任务,任务 01。
作者:**[Johan-Emmanuel Hatchi](https://github.com/Jhatchi)** ([LinkedIn](https://www.linkedin.com/in/johan-emmanuel-hatchi/))。
对 2026 年 9 月起在比利时开始的网络安全实习机会持开放态度。正在寻找 SOC / DFIR / 检测工程岗位,其中此类端到端调查工作(PCAP 取证、SIEM 关联、IDS 规则编写、正式客户报告)在职责范围内。
标签:AMSI绕过, C2通信, Caldera C2, Cloudflare, CVE-2011-2523, ESC漏洞, FTP漏洞, Metaprompt, Metasploitable 2, MITRE ATT&CK, NIST SP 800-61r2, PCAP分析, Suricata, 事件调查, 分析报告, 威胁检测, 安全报告, 安全训练, 实验室环境, 数字取证, 数据展示, 模拟入侵, 漏洞分析, 现代安全运营, 红队, 网络安全, 网络流量分析, 自动化脚本, 规则编写, 证据收集, 路径探测, 隐私保护