documentationprincess/LuckyShot-Linux-DFIR

GitHub: documentationprincess/LuckyShot-Linux-DFIR

一份完整的 Linux 端点入侵取证调查实践报告,追踪 SSH 暴力破解攻击的完整路径并将发现映射到 MITRE ATT&CK 框架。

Stars: 0 | Forks: 0

# LuckyShot:Linux 端点入侵调查 ## 执行摘要 本项目记录了一次针对受损 Linux 工作站的模拟数字取证和应急响应调查。用户报告公司文件丢失和被修改。我分析了实时响应输出、身份验证日志、登录记录、shell 历史记录、文件哈希、systemd 单元、SSH 配置、shell 启动文件和 cron 工件,以重建此次入侵。 证据表明这是一起针对 SSH 的暴力破解/凭据猜测攻击,攻击源为 `192.168.161.198`。在对多个用户名进行反复尝试失败后,攻击源最终在 `2025-02-10T19:39:03.232692+02:00` 成功通过了 `administrator` 的身份验证。 入侵后的活动包括: - 本地账户和权限发现 - 下载并使用凭据恢复工具 - 通过 SCP 窃取凭据文件 - 执行 `sys_monitor.sh` - 通过伪装的 systemd 服务实现 root 级别的持久化 - 攻击者提供的 SSH 授权密钥 - 创建高权限本地账户 - 使用网络监听器实现 shell 启动持久化 - 一次尝试通过 cron 获取 payload 的操作失败,原因是 cron 语法无效 本次调查最核心的部分并非某一条命令。而是随着更完善的证据出现,及时修正了现有推论。 ## 攻击路径 ``` flowchart TD A["Repeated SSH failures from 192.168.161.198"] --> B["Password accepted for administrator"] B --> C["Host and privilege discovery"] C --> D["Credential tooling: LaZagne and mimipenguin"] D --> E["Credential-file exfiltration through SCP"] E --> F["Malicious script execution: sys_monitor.sh"] F --> G["Persistence: systemd, SSH key, account, shell files"] G --> H["Cron payload rejected by parser"] ``` ## 调查方法 1. **对收集的信息进行分类。** 我审查了实时响应类别,并优先处理了登录、进程、网络和系统工件。 2. **验证初始假设。** USB 清单仅包含 VMware 虚拟设备和 Linux 根集线器,因此不支持可移动介质访问。 3. **确定访问路径。** `lastb` 的输出显示,来自同一源的 SSH 登录在针对多个用户名时反复失败。 4. **确认首次成功登录。** 汇总的 `last` 输出指向 `19:41`,但 `auth.log` 显示在 `19:39:03` 密码已被接受。 5. **重建攻击者行为。** 受损用户的 Bash 历史记录显示了侦察、工具传输、凭据访问、SCP 数据窃取和脚本执行过程。 6. **验证持久化。** 我关联了 systemd 配置、服务日志、SSH 密钥、账户创建记录、shell 启动工件和 cron 文件。 7. **检查持久化是否实际生效。** Syslog 显示恶意的 cron 定义存在错误的分钟字段,已被忽略。 ## 关键发现 | 发现 | 证据 | 评估 | | --- | --- | --- | | 初始访问 | 反复的 SSH 登录失败,随后来自同一 IP 的 `Accepted password` | 高可信度 | | 受损账户 | `administrator` | 高可信度 | | 首次成功身份验证 | `2025-02-10T19:39:03.232692+02:00` | 高可信度 | | 来源与数据外发目的地 | `192.168.161.198` | 高可信度 | | 权限检查 | `groups administrator` | 高可信度 | | 凭据工具 | 克隆并运行了 LaZagne;下载了第二个 Linux 凭据脚本 | 高可信度 | | 文件外发 | `Passwords_Backup.txt` 和 `Server_Credentials.txt` 通过 SCP 传输 | 高可信度 | | 恶意脚本 | `sys_monitor.sh` | 高可信度 | | 脚本 SHA-1 | `3ae5dea716a4f7bfb18046bfba0553ea01021c75` | 强关联性;从与执行路径不同的清单路径中恢复 | | Systemd 持久化 | `systemd-networkm.service` 以 root 身份运行了 `/tmp/sys_monitor.sh` | 高可信度 | | 攻击者身份线索 | SSH 密钥注释 `kali@kali` | 佐证线索,非真实世界归属 | | 持久化账户 | `Regev`,被添加到 `sudo` 和 `adm` | 高可信度 | | 账户创建 | `2025-02-10T20:11:21.783367+02:00` | 高可信度 | | 计划任务 payload | `/etc/cron.d/syscheck` 获取、反转、解码 Pastebin payload,并将其通过管道传递给 Bash | 工件已确认 | | 计划执行 | Cron 因无效的分钟字段而拒绝执行该文件 | 确认失败 | | Shell 启动持久化 | Root 的 `.bashrc` 和 `.profile` 配置了在端口 `7575` 和 `9000` 上的 Ncat 监听器 | 对配置的高可信度;未捕获运行时监听器状态 | ## 关键时间线 | 时间 (`+02:00`) | 事件 | | --- | --- | | `2025-02-10 19:38-19:39` | 来自 `192.168.161.198` 针对多个用户名的反复 SSH 登录失败 | | `2025-02-10 19:39:03.232692` | `administrator` 的密码被接受 | | `2025-02-10 19:39:03.273657` | SSH 会话开启 | | `2025-02-10 19:41:10.248386` | 来自同一来源的第二次密码身份验证成功 | | `2025-02-10 20:11:20.692742` | `systemd-networkm.service` 启动 | | `2025-02-10 20:11:21.731285` | 为 `Regev` 调用了高权限的 `useradd` 命令 | | `2025-02-10 20:11:21.783367` | 新的本地用户成功创建 | | `2025-02-10 20:12:01.149469` | Cron 记录了 `bad minute` 并忽略了 `/etc/cron.d/syscheck` | ## 核心证据 ### SSH 凭据攻击 失败历史显示,来自同一主机的 SSH 尝试在针对包括 `administrator`、`admin`、`default`、`ubuntu` 和 `root` 在内的用户名时反复失败。 ![反复失败的 SSH 尝试](https://static.pigsec.cn/wp-content/uploads/repos/cas/f0/f081dbcee812aeb3bd432313a53ae73edd68cdd51edf538e5b57184c628cc78f.png) ### 入侵后的命令历史 Bash 历史记录在一个工件中串联了侦察、工具下载、凭据访问、SCP 数据窃取和恶意脚本执行过程。 ![攻击者风格的 Bash 历史](https://static.pigsec.cn/wp-content/uploads/repos/cas/12/127b14573677052905663090dbb9910f7eff7fb87be9f825c513c0ef6f4557a5.png) ### 伪装的 root 级别服务 攻击者创建了 `systemd-networkm.service`,这个名字类似于合法的 `systemd-networkd` 服务。它的 `ExecStart` 指令启动了 `/tmp/sys_monitor.sh`,以 root 身份运行,并被配置为自动重启。 ![恶意 systemd 服务](https://static.pigsec.cn/wp-content/uploads/repos/cas/2c/2c18b388a904717d8c73af8dff75efe56e21a949df45babde790cd05bd3bc2d0.png) ### Root shell 启动持久化 Root 的 `.bashrc` 和 `.profile` 被修改以启动 Ncat 监听器。`.bashrc` 条目使用较低端口 `7575`,而 `.profile` 使用 `9000`。 ![Root shell 启动文件中的 Ncat 监听器](https://static.pigsec.cn/wp-content/uploads/repos/cas/6d/6d106e5469d290688324b733b11a298175b616630b994b7b1bbc5b829d20f8cb.png) ### 失败的 cron 持久化 发现 cron 文件并不能证明其已执行。Syslog 显示该定义因语法无效而被拒绝。 ![Syslog 中的 Cron 语法失败记录](https://static.pigsec.cn/wp-content/uploads/repos/cas/65/65610f7bc25985b29579717af3445c354281d857d8935eefd7776343f264d41d.png) ## MITRE ATT&CK 概览 | 行为 | 技术 | | --- | --- | | 反复的 SSH 密码尝试 | [T1110.001 - 密码猜测](https://attack.mitre.org/techniques/T1110/001/) | | 通过 SSH 进行远程访问 | [T1021.004 - SSH](https://attack.mitre.org/techniques/T1021/004/) | | 存储的凭据恢复 | [T1555 - 来自密码存储的凭据](https://attack.mitre.org/techniques/T1555/) | | SCP 数据外发 | [T1048.002 - 通过非对称加密非 C2 协议外发](https://attack.mitre.org/techniques/T1048/002/) | | Root 级别的 systemd 服务 | [T1543.002 - Systemd 服务](https://attack.mitre.org/techniques/T1543/002/) | | Root SSH 密钥 | [T1098.004 - SSH 授权密钥](https://attack.mitre.org/techniques/T1098/004/) | | 创建高权限本地账户 | [T1136.001 - 本地账户](https://attack.mitre.org/techniques/T1136/001/) | | 基于 cron 的执行尝试 | [T1053.003 - Cron](https://attack.mitre.org/techniques/T1053/003/) | | 反转和 Base64 编码的 payload | [T1140 - 对文件或信息进行反混淆/解码](https://attack.mitre.org/techniques/T1140/) | | 访问 `/etc/passwd` 和 `/etc/shadow` | [T1003.008 - `/etc/passwd` 和 `/etc/shadow`](https://attack.mitre.org/techniques/T1003/008/) | 请参阅[完整的 ATT&CK 映射](docs/05-mitre-attack.md),包括证据以及已观察与已尝试的状态对比。 ## 检测与响应建议 - 当单一来源针对多个用户名产生 SSH 登录失败并随后成功通过身份验证时,触发警报。 - 优先使用基于密钥的 SSH 身份验证,限制源网络,禁用直接 root 登录,并添加速率限制或锁定控制。 - 监控 `useradd` 的执行,特别是当新账户被加入到 `sudo` 或 `adm` 时。 - 对 `/etc/systemd/system`、`/etc/cron.d`、`/root/.ssh/authorized_keys` 以及 root shell 启动文件应用文件完整性监控。 - 对可疑的管道命令(如 `curl | rev | base64 -d | bash`)进行警报。 - 监控涉及凭据文件或异常目标地址的出站 SCP 和 HTTP POST 活动。 - 隔离受影响的主机,禁用受损和攻击者创建的账户,移除未经授权的密钥和持久化机制,轮换暴露的凭据,并在相关系统中搜寻相同的入侵指标。 ## 仓库指南 | 路径 | 用途 | | --- | --- | | [docs/01-investigation.md](docs/01-investigation.md) | 完整的基于证据的叙述 | | [docs/02-troubleshooting.md](docs/02-troubleshooting.md) | 弯路、纠正和验证 | | [docs/03-command-reference.md](docs/03-command-reference.md) | 按问题分类整理的所用命令 | | [docs/04-evidence-index.md](docs/04-evidence-index.md) | 截图来源、含义及局限性 | | [docs/05-mitre-attack.md](docs/05-mitre-attack.md) | 详细的 ATT&CK 映射 | | [docs/06-learning-next.md](docs/06-learning-next.md) | 针对性的后续学习大纲 | | [docs/publishing-checklist.md](docs/publishing-checklist.md) | 发布前检查关卡 | | [LINKEDIN-POST.md](LINKEDIN-POST.md) | 少剧透的项目发布声明 | ## 范围 这是一次基于 Hack The Box Sherlock **LuckyShot** 的模拟训练调查。此处描述的所有系统、账户、地址和活动均属于实验室场景。
标签:BurpSuite集成, Cutter, SSH暴力破解, 域环境安全, 库, 应急响应, 攻击溯源, 数字取证, 网络安全, 自动化脚本, 防御加固, 隐私保护