Jhatchi/NexaCorp-DFIR-INC-2026-003

GitHub: Jhatchi/NexaCorp-DFIR-INC-2026-003

一个 DFIR 培训结业项目,对虚构企业三起关联事件进行跨事件攻击链取证分析,涵盖横向移动、权限提升与持久化机制。

Stars: 0 | Forks: 0

# NexaCorp DFIR: INC-2026-003 - 横向移动与持久化 对 NexaCorp 位于列日(Liege)文件服务器(`lge-files-01`)上的横向移动与持久化事件进行取证评估。2026年5月24日,已在布鲁塞尔应用服务器(`bru-app-01`,源自 INC-2026-002)上立足的攻击者在不使用新漏洞的情况下,转移到了 `lge-files-01`:他们使用一把窃取的 `svc_api` SSH 密钥(该密钥同时被授权用于 `svc_backup` 账户),以 `svc_backup` 身份登录,通过 Python 解释器上的 `sudo NOPASSWD` 规则提权至 root,并安装了两个持久化机制:一个后门管理员账户(`sysupdate`)和一个每五分钟向外部服务器发送信标的 cron 任务(在报告时仍处于活跃状态)。本项目作为 BeCode 布鲁塞尔蓝队与红队训练营(任务 03)的个人实践独立完成,是 [INC-2026-001](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-001) 和 [INC-2026-002](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-002) 的延续。本仓库还包含了整合后的**第一个月评估报告**(INC-2026-001 至 003)。 [![ci](https://static.pigsec.cn/wp-content/uploads/repos/cas/99/993938d8ce5e902ccfb9d6747725c320d855dea3235ed9a304cedf0d94c9321f.svg)](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-003/actions/workflows/ci.yml) [![Methodology](https://img.shields.io/badge/methodology-NIST%20SP%20800--61r2-blue.svg)](#方法论) [![Framework](https://img.shields.io/badge/framework-MITRE%20ATT%26CK-red.svg)](https://attack.mitre.org/) [![Scope](https://img.shields.io/badge/scope-forensic--only-orange.svg)](#项目背景) [![License](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Johan--Emmanuel%20Hatchi-0A66C2?logo=linkedin&logoColor=white)](https://www.linkedin.com/in/johan-emmanuel-hatchi/) 本仓库记录了作为 BeCode 网络安全训练营(2025-2026届)一部分的 SOC 分析师实践工作。这是一个评估实验室:包含取证调查与报告,但不提供检测规则(第二阶段)的交付物。这是 NexaCorp DFIR 系列中的第三个事件,也是第一个月的结业项目。 ## 目录 - [运维须知](#operational-notice) - [概览](#at-a-glance) - [项目背景](#engagement-context) - [执行摘要](#executive-summary) - [攻击链摘要](#kill-chain-summary) - [如何阅读本仓库](#how-to-read-this-repository) - [方法论](#methodology) - [检测工程](#detection-engineering) - [仓库布局](#repository-layout) - [可复现性](#reproducibility) - [已知限制](#known-limits) - [NexaCorp DFIR 系列](#nexacorp-dfir-series) - [致谢](#acknowledgments) - [关于](#about) - [许可证](#license) ## 运维须知 这是针对虚构基础设施进行的训练项目。NexaCorp Industries 是一个虚构的客户,用作 BeCode 布鲁塞尔训练营的演练场景。主机 `bru-app-01` 和 `lge-files-01` 是隔离的实验室虚拟机。没有任何真实的组织、网络或个人遭到攻击。 此处引用的所有 IP 地址、主机名、账户和密钥指纹(`34.251.89.142`、`185.220.101.62`、`lge-files-01`、`bru-app-01`、`svc_backup`、`svc_api`、`sysupdate` 等)均为本地实验环境产物,并非真实的威胁情报。请勿将其作为 IOC 输入到生产环境 SIEM 中。 经 BeCode 实验室教练 (Thomas B.) 于 2026-05-17 授权发布,用于个人作品集展示。完整的保密声明见调查报告。 ## 概览 | 字段 | 值 | |---|---| | 编号 | INC-2026-003 | | 受影响主机 | lge-files-01 (NexaCorp 列日文件服务器, 192.168.10.30) | | 跳板来源 | bru-app-01 (192.168.10.20, 在 INC-2026-002 中被攻陷) | | 根本原因 | 跨服务账户的 SSH 密钥重用 (同一把密钥同时授权给了 svc_api 和 svc_backup) | | 结果 | 获取第三台服务器的 root 权限,建立后门账户 + 激活 C2 cron (未确认发生数据泄露) | | 报告日期 | 2026-05-25 | | 交付日期 | 2026-05-29 | | 阶段 | 仅第一阶段评估 (取证调查,无检测工程阶段) | | 相关事件 | INC-2026-001, INC-2026-002 (同属一次攻击行动) | | 调查输出项 | 数值 | |---|---| | 发现数 | 3 (2 个严重, 1 个高危) | | 横向移动 | 重用的 svc_api 密钥被用于 svc_backup 身份验证 (指纹 SHA256:Cx3hNuyZ...) | | 提权 | /usr/bin/python3 上的 sudo NOPASSWD (GTFOBins) | | 持久化 | 后门账户 sysupdate + cron /etc/cron.d/system-update | | C2 | 34.251.89.142 (HTTP /update?h=lge-files-01), 捕获到 4 次信标 | | 证据来源 | auth.log, sshd_journal.log, sudo_journal.log, audit_filtered.log, audit.log, syslog, pcap | ## 项目背景 **场景(虚构)。** NexaCorp Industries 报告了三周内的第三起事件。在发生 INC-2026-001(列日服务器上的 FTP 后门)和 INC-2026-002(转移至布鲁塞尔应用服务器、SUID 提权、建立后门账户、窃取 SSH 密钥)之后,新证据表明攻击者已到达列日文件服务器 `lge-files-01` 并安装了持久化机制,其中一项机制在事件被报告时仍在运行。由 Marc Wauters(IT 基础设施经理)于 2026-05-25 报告;审查主管为 Sarah Chen,高级 SOC 分析师。 **范围。** 仅对证据包进行取证分析。这是一个评估实验室:没有第二阶段的实时检测验证阶段。调查的攻击窗口为欧洲中部夏令时间 (CEST) 2026年5月24日星期日 12:31 至 13:05。 **结业项目。** 本次实践还将本月的三起事件(INC-2026-001 至 003)整合到了[第一个月评估报告](reports/Month1_Assessment_Report.md)中,以供管理层审阅。 **教育背景。** 作为任务 03 在 BeCode 布鲁塞尔蓝队与红队训练营(2025年11月至2026年9月)期间交付。 ## 执行摘要 2026年5月24日,已在 `bru-app-01` 上立足(源自 INC-2026-002)的攻击者在不利用新漏洞的情况下,转移到了列日文件服务器 `lge-files-01`。攻击者使用一把窃取的 `svc_api` SSH 私钥(该密钥同时被授权用于 `svc_backup` 账户),以 `svc_backup` 身份登录,通过 Python 解释器上的 `sudo NOPASSWD` 规则提权至 root,并安装了两个持久化机制:一个后门管理员账户(`sysupdate`)和一个每五分钟向 `34.251.89.142` 发送信标的 cron 任务。在报告时,该信标仍处于活跃状态。 根本原因是跨服务账户的 SSH 密钥重用:一把私钥竟能在不同主机上打开不同的账户。这是第一个月攻击行动中的第三起事件;关于它如何作为一次连续操作与 INC-2026-001 和 INC-2026-002 衔接,请参阅第一个月评估报告。 ## 攻击链摘要 1. **准备(bru-app-01)。** `it_support` 后门(源自 INC-2026-002)定位到 `svc_api` 私钥,确认其被授权用于 `svc_backup`,并将其暂存以备后用 (12:35-12:38 CEST)。 2. **横向移动 (12:39:54)。** 重用的密钥从 `bru-app-01` 成功通过 `lge-files-01` 的身份验证并登录为 `svc_backup`;该密钥指纹与合法的 svc_backup 基线不符。 3. **提权 (12:40)。** 滥用 `/usr/bin/python3` 上的 `sudo NOPASSWD` 以 root 身份运行命令 (审计显示 auid=1000, euid=0)。 4. **持久化 (12:40-12:41)。** 添加后门账户 `sysupdate` (加入 sudo 组),并创建 cron `/etc/cron.d/system-update`,每五分钟向 `34.251.89.142` 发送信标;捕获到四次信标通信。 ## 如何阅读本仓库 | 如果您是... | 请从这里开始 | 时间 | |---|---|---| | **招聘人员或招聘经理** | 本 README + [报告](reports/INC-2026-003_Findings_Report.md)的执行摘要 | 5 分钟 | | **管理层 / 董事会** | [第一个月评估报告](reports/Month1_Assessment_Report.md) (非技术性,侧重业务影响,将三起事件串联讲述) | 10 分钟 | | **评估契合度的 SOC 分析师** | [报告](reports/INC-2026-003_Findings_Report.md)技术分析 + [`evidence-summary/ioc-summary.md`](evidence-summary/ioc-summary.md) | 20 分钟 | | **DFIR 从业者** | 完整[报告](reports/INC-2026-003_Findings_Report.md) + [`methodology/attack-timeline.md`](methodology/attack-timeline.md) + [`methodology/three-incident-kill-chain.md`](methodology/three-incident-kill-chain.md) + [`notes/journal.md`](notes/journal.md) | 30 分钟 | | **任何想要 grep、引用或对比差异的人** | [报告的 Markdown 源码](reports/INC-2026-003_Findings_Report.md) | 按需查阅 | ## 方法论 本项目遵循标准的事件响应框架: - **NIST SP 800-61r2** (事件处理) 和 **NIST SP 800-86** (取证技术)。 - **SANS PICERL** : 识别阶段是本次取证评估的核心。 - **MITRE ATT&CK Enterprise v15** : 每一项发现都进行了映射 (见 [`methodology/attck-mapping.md`](methodology/attck-mapping.md))。 - 弱点分类 : CWE-522 (密钥重用), CWE-250/269 (sudo 配置不当), CWE-732 (cron 文件投放)。 **证据与时间戳。** 主机日志为 CEST (UTC+02:00) ;数据包捕获 (PCAP) 时间为原生 UTC。在引用捕获内容处会同时标出两者。 ## 检测工程 **本项目不适用。** 这是一个没有第二阶段的评估实验室:未编写任何检测规则。尽管如此,该入侵行为依然可以通过行为分析被检测到,报告建议采取以下监控措施:监控来自意外源头或使用非基线密钥指纹的服务账户 SSH 登录;监控被添加到 `sudo` 组的新建本地账户;监控 `/etc/cron.d/` 中出现的新文件;以及监控从服务器连向未知外部主机的出站连接。 ## 仓库布局 ``` NexaCorp-DFIR-INC-2026-003/ ├── README.md This file ├── LICENSE ├── .gitignore ├── .markdownlint.json ├── .github/ │ └── workflows/ │ └── ci.yml markdownlint + typography validation ├── reports/ │ ├── INC-2026-003_Findings_Report.pdf Incident findings report │ ├── INC-2026-003_Findings_Report.md Markdown source of the report │ ├── Month1_Assessment_Report.pdf Month 1 capstone (INC-2026-001 to 003), board audience │ └── Month1_Assessment_Report.md Markdown source of the Month 1 report ├── evidence-summary/ │ └── ioc-summary.md Indicators of compromise ├── methodology/ │ ├── attack-timeline.md Incident timeline (CEST and UTC) │ ├── attck-mapping.md MITRE ATT&CK mapping table │ └── three-incident-kill-chain.md Cross-incident kill chain (INC-2026-001 to 003) └── notes/ └── journal.md Investigation journal ``` 这是一个评估实验室,因此没有 `detection/` 目录。 ## 可复现性 证据包属于 BeCode 实验室资产,不对外分发。如果您拥有自己的副本,核心发现可以从日志和捕获文件中复现(`sshd_journal.log` 中的跳板记录、`audit_filtered.log` 中的提权记录、`sudo_journal.log` 中的持久化记录,以及数据包捕获中发往 34.251.89.142 的四次 C2 信标)。 ## 已知限制 - **仅限取证。** 本次事件没有实时检测阶段;报告提出了行为检测建议,但未交付经过验证的规则。 - **范围限于捕获的窗口期。** 评估仅涵盖 5 月 24 日的证据;该窗口之外的活动不在范围内。 - **跨事件关联。** 与 INC-2026-001 和 002 的联系在第一个月评估报告中进行阐述;本调查报告的范围仅限于 lge-files-01 事件。 ## NexaCorp DFIR 系列 - [INC-2026-001](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-001): Linux 基础设施入侵 (vsftpd 后门, Caldera C2) - [INC-2026-002](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-002): 提权与持久化 (Tor SSH, SUID, 后门账户) - **INC-2026-003**: 本仓库 (横向移动与持久化;第一个月结业项目) - [INC-2026-004https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-004): SQL 注入 (Web 门户) - [INC-2026-005](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-005): OS 命令注入与 Web Shell (Web 门户) - [INC-2026-006](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-006): 存储型 XSS 与会话劫持 (NexaPortal) - [INC-2026-007](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-007): IDOR 与访问控制失效 (NexaPortal;第二个月结业项目) - [INC-2026-008](https://github.com/Jhatchi/NexaCorp-DFIR-INC-2026-008): AD 侦察与 Kerberoasting (第三个月的第一起事件) ## 致谢 - **Thomas B.** (BeCode 实验室教练): 设计场景并授权发布用于个人作品集。 - **MITRE** 提供的 ATT&CK 知识库,用于对每一项发现进行映射。 ## 关于 作为任务 03,在 [BeCode 布鲁塞尔](https://becode.org)蓝队与红队训练营(2025年11月至2026年9月)期间交付的个人 DFIR 实践项目。 作者: **[Johan-Emmanuel Hatchi](https://github.com/Jhatchi)** ([LinkedIn](https://www.linkedin.com/in/johan-emmanuel-hatchi/)). 本人对 2026 年 9 月起在比利时开始的网络安全实习机会持开放态度。正在寻找 SOC / DFIR / 检测工程相关的职位,期望工作范围能涵盖此类端到端任务(日志与流量取证、横向移动分析、正式的客户报告)。 ## 许可证 [MIT](LICENSE), 2026 Johan-Emmanuel Hatchi. 报告文本与方法论笔记在 MIT 许可证下发布:可自由复制、改编和重用,但需注明出处。证据包、实验室基础设施以及原始的实践任务简报仍属于 BeCode 布鲁塞尔的财产,且不予重新分发。
标签:防御加固