astrocombat1607/elk-breach-analysis

GitHub: astrocombat1607/elk-breach-analysis

该项目是一次基于 ELK Stack 和 KQL 的 SIEM 事后事件复盘,演示了如何从 Windows 事件日志中还原多阶段内部威胁攻击链并给出取证级分析。

Stars: 0 | Forks: 0

# 多阶段内部威胁调查 — ELK Stack 事后复盘 这是一次使用 Elastic Stack (ELK) 对确认的多阶段网络入侵进行的全面数字取证与事件响应 (DFIR) 调查。本项目从原始的 Windows 事件日志遥测数据中还原了现实风格的攻击链,将每个阶段映射到 Lockheed Martin Cyber Kill Chain® 和 MITRE ATT&CK® 框架,并最终提出了基于证据的缓解建议。 ## 场景 作为一家模拟中型企业的首席事件响应专家 (Lead Incident Responder),我调查了一起被 SOC 标记为存在可疑行为的 Windows 工作站确认入侵事件。调查时间窗口为 2025 年 4 月 4 日至 8 日,确定的主要攻击窗口为 2025 年 4 月 5 日 22:00–23:00 AWST。所有分析均在 Kibana 中针对由 Winlogbeat 索引的 Windows 事件日志执行,并使用了 Kibana 查询语言 (KQL)。 ## 关键发现 - **初始访问**:在主要攻击发生前约 40 分钟,通过 Administrator 账户下的 FTP shell 活动进行 - **持久化设置** — 在凭据攻击之前,手动安装了 SSH 后门(`sc start sshd`,SSH 密钥生成) - **SSH 上的暴力凭据攻击** — 10 次失败登录后接一次成功身份验证 - **命令控制 (C2) 信标**:通过伪装的可执行文件生成 DNS 流量,并与合法域名混合;同时端口 4444 上出现异常流量(与 Metasploit 的默认反弹 shell 端口一致) - **双重目的地数据外泄**:通过 SCP 进行 — 一次传输至超范围的外部 IP,第二次直接传输至攻击者的机器 - **防御规避**:使用 Living-off-the-Land (LOLBin) 技术 — `notepad.exe` 反复生成 `cmd.exe` 以规避基于特征的检测 - **资源劫持** — 在 SYSTEM 权限下部署加密货币挖矿程序 - **长期持久化** — 执行 Puppet 配置管理代理,表明其意图维持自动化、周期性的访问 内部威胁的参与程度被评估为**中等置信度** — 攻击主机与受害主机物理上处于同一个内部子网,但使用 Kali Linux 工具同样符合具有本地网络访问权限的外部攻击者的特征。 ## 方法论 调查遵循结构化的、基于切面的分析方法 — 从宏观范围逐步缩小到具体的进程命令行: 1. **基线范围界定** — 子网范围的过滤显示了两个主要主机以及一个出现在超过 17% 记录中的异常端口 2. **受害者账户切面** — 隔离与目标用户账户相关的所有活动,以确认攻击窗口 3. **进程树分析** — 展示完整的父/子进程链,以重建持久化是如何被安装和滥用的 4. **数据外泄与 C2 确认** — 检查传输命令和连接元数据,以确认两个数据外泄目的地及攻击者身份 每一个步骤 — 执行的查询、推理和发现 — 都记录在完整的运行清单中,使得该调查能够独立复现。 ## 应用的框架 攻击的每一个确认阶段都映射到了: - **Lockheed Martin Cyber Kill Chain®** — 从侦察到目标操作 - **MITRE ATT&CK®** — 包括 T1078 (Valid Accounts)、T1110.003 (Password Spraying)、T1571 (Non-Standard Port C2)、T1048 (Exfiltration Over Alternative Protocol)、T1218 (System Binary Proxy Execution)、T1496 (Resource Hijacking) 和 T1072 (Software Deployment Tools) 在某个阶段缺乏支持证据时,都进行了明确记录,而非不加解释地搁置。 ## 工具与技术 - **Elastic Stack (Elasticsearch, Kibana, Winlogbeat)** 通过 Docker 在本地部署 - **Kibana 查询语言 (KQL)** 用于日志过滤、切面分析和关联 - 从 Windows 事件 ID (4624, 4625, 4634, 1, 22, 7045) 手动重建进程树 ## 局限性 - 日志覆盖范围的缺失意味着无法确认入侵后影响的完整程度 - 单一遥测源(仅限 Winlogbeat) — 没有 C2 或数据外泄量的数据包级别佐证 - 某些进程命令行字段被截断,限制了对特定 LOLBin 活动的完整命令归因 ## 项目意义 这是我第一次进行基于 SIEM 的端到端事件调查。它促使我像分析师一样思考 — 将每一个结论都锚定到时间戳和日志 ID 上,明确记录缺失证据的地方而不是盲目猜测,并构建了一条从初始入侵到长期持久化的、经得起推敲的证据链。它直接反映了我未来想在职业中从事的检测与响应工作。 ## 参考 - [Lockheed Martin Cyber Kill Chain®](https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html) - [MITRE ATT&CK®](https://attack.mitre.org/) - [Kibana Query Language — Elastic Docs](https://www.elastic.co/docs/explore-analyze/query-filter/languages/kql)
标签:ELK Stack, IP 地址批量处理, KQL, MIT许可证, 安全事件响应, 安全运营, 扫描框架, 数字取证, 自动化脚本, 请求拦截, 越狱测试