JFrancisSOC/Case-File-09-SSH-Brute-Force-and-Account-Compromise-Investigation
GitHub: JFrancisSOC/Case-File-09-SSH-Brute-Force-and-Account-Compromise-Investigation
一份模拟 Linux SSH 暴力破解攻击的 SOC 调查案例文件,演示如何从身份验证日志中识别暴力破解、账户泄露及持久化行为并完成事件响应流程。
Stars: 0 | Forks: 0
# 案例文件 09:SSH 暴力破解与账户泄露调查
## 概述
在本次调查中,我分析了模拟的 Linux SSH 身份验证日志,以识别导致成功账户泄露和尝试持久化操作的暴力破解攻击。
调查显示,来自同一源 IP 的 12 次失败 SSH 登录尝试,随后该 IP 成功登录。不久之后,被攻陷的账户试图创建一个名为 `backupadmin` 的可疑管理员级别账户。
## 调查目标
- 识别反复失败的 SSH 登录尝试
- 确定主要攻击源 IP
- 检测攻击者是否成功访问了账户
- 调查成功登录后的可疑活动
- 构建完整的事件时间线
- 判定事件严重程度
- 建议遏制和升级响应操作
- 使用 SHA-256 验证保留的证据
## 使用的工具和命令
- Ubuntu Linux
- Linux 身份验证日志
- `grep`
- `awk`
- `sort`
- `uniq`
- `sha256sum`
- Bash
- VirtualBox
## 关键发现
| 发现 | 结果 |
|---|---|
| 源 IP | `203.0.113.45` |
| 失败的 SSH 尝试 | 12 |
| 目标用户名 | `admin` |
| 被攻陷的账户 | `jakafrancis` |
| 失败登录时间段 | `14:01–14:12` |
| 成功登录 | `14:13` |
| 可疑活动 | `14:15` |
| 持久化尝试 | 创建 `backupadmin` |
| 事件严重程度 | 高 |
## 按源 IP 统计的失败尝试
失败的 SSH 事件按源 IP 进行了分组和统计。分析证实 `203.0.113.45` 产生了所有 12 次失败的登录尝试。

## 完整事件时间线
完整时间线将最初的暴力破解活动、成功的账户访问以及泄露后的可疑活动联系了起来:
- `14:01–14:12` — 12 次失败的 SSH 登录尝试
- `14:13` — 从同一源 IP 成功登录
- `14:15` — 尝试创建可疑的 `backupadmin` 账户

## 证据完整性验证
为模拟的身份验证日志创建了 SHA-256 哈希值。完整性检查返回 `OK`,确认证据仍与其保存的数字指纹匹配。

## 事件分类
此事件被归类为极有可能成功的 SSH 暴力破解账户泄露,并伴有尝试的持久化操作。
此事件被判定为**高严重程度**,因为:
- 攻击者成功访问了账户
- 成功登录的 IP 与之前失败尝试的 IP 相同
- 被攻陷的账户尝试进行特权操作
- 攻击者试图创建额外账户以获取可能的持久访问权限
## 建议的遏制措施
- 在防火墙处封锁 `203.0.113.45`
- 禁用被攻陷的 `jakafrancis` 账户
- 重置账户密码
- 吊销所有活动的 SSH 会话
- 检查并移除未经授权的 `backupadmin` 账户
- 保留身份验证和系统日志
- 调查其他账户和系统以查找相关活动

## 升级响应决策
建议立即将其升级给高级 SOC 分析师和事件响应团队处理,因为攻击者已获取访问权限并尝试进行特权持久化。

## 证据文件
- `simulated-auth.log`
- `simulated-auth.log.sha256`
- `final-incident-report.txt`
- 调查截图
## MITRE ATT&CK 映射
| 技术 | ID | 关联 |
|---|---|---|
| 暴力破解:密码猜测 | `T1110.001` | 反复的 SSH 密码尝试 |
| 有效账户:本地账户 | `T1078.003` | 成功使用了有效的本地账户 |
| 创建账户:本地账户 | `T1136.001` | 尝试创建 `backupadmin` |
## 结论
失败的 SSH 登录、成功的访问以及尝试创建 `backupadmin` 构成了一条连续的事件时间线。证据支持了极有可能的账户泄露和尝试的持久化操作,需要立即进行遏制和升级响应。
标签:Linux运维, 安全运营, 应用安全, 扫描框架, 红队行动