alexojocyber/SSH-BruteForce-Detection-Lab
GitHub: alexojocyber/SSH-BruteForce-Detection-Lab
一个模拟 SSH 暴力破解攻击与日志检测的教学实验环境,聚焦 SOC 实战分析流程。
Stars: 1 | Forks: 0
# 🔐 SSH 暴力破解检测实验
## 📌 项目概述
本项目模拟了对 Linux 系统进行 SSH 暴力破解攻击的过程,并展示了如何分析认证日志以检测可疑的登录行为。
目标是模拟攻击者行为,生成失败的登录尝试,并像 SOC(安全运营中心)分析师一样调查认证日志。
## 🛠️ 实验环境
| 组件 | 说明 |
|------|------|
| 操作系统 | Ubuntu Linux |
| 使用服务 | OpenSSH 服务器 |
| 日志来源 | `/var/log/auth.log` |
| 攻击模拟 | 失败的 SSH 登录尝试 |
## ⚙️ 系统配置
使用以下命令安装并启用 SSH 服务:
```
sudo apt install openssh-server -y
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh
```
防火墙配置:
```
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
```
## 👤 攻击者模拟
创建一个测试用户以模拟攻击者登录尝试:
```
sudo adduser attackeruser
```
使用错误密码执行 SSH 登录尝试:
```
ssh attackeruser@192.168.0.168
```
输入多个错误密码以生成失败的认证日志。
## 🔎 日志调查
使用以下方法识别失败的登录尝试:
```
grep "Failed password" /var/log/auth.log
```
失败登录尝试总数:
```
grep "Failed password" /var/log/auth.log | wc -l
```
首次失败登录:
```
grep "Failed password" /var/log/auth.log | head -n 1
```
最后一次失败登录:
```
grep "Failed password" /var/log/auth.log | tail -n 1
```
## 📊 攻击时间线
| 字段 | 说明 |
|------|------|
| 攻击类型 | SSH 暴力破解 |
| 目标用户名 | attackeruser |
| 源 IP 地址 | 192.168.0.168 |
| 失败尝试总数 | 5 |
| 首次失败登录 | Mar 29 13:44:45 — Failed password for attackeruser from 192.168.0.168 |
| 最后一次失败登录 | Mar 29 13:46:35 — Failed password for attackeruser from 192.168.0.168 |
# 🎯 MITRE ATT&CK 映射
观察到的攻击活动与以下 MITRE ATT&CK 技术相对应:
| 战术 | 技术 | ID | 描述 |
|------|------|----|------|
| 凭据访问 | 暴力破解 | T1110 | 使用重复的密码尝试猜测有效凭据。 |
| 初始访问 | 有效账户 | T1078 | 如果凭据被成功破坏,攻击者可能使用有效账户登录。 |
| 持久化 | 账户访问 | T1098 | 攻击者可能在成功认证后尝试维持访问权限。 |
## 🔍 映射说明
在本次调查中,观察到针对 attackeruser 账户的多重失败登录尝试。
这些重复的登录失败是以下特征:
T1110 — 暴力破解
该技术涉及自动尝试猜测密码,直到找到有效凭据为止。
如果成功,攻击者可能获得:
- 未授权的系统访问
- 持久的账户控制
- 通过 SSH 的远程系统访问
理解 MITRE ATT&CK 映射有助于分析师识别攻击者行为模式并实施适当的防御控制。
## ⚠️ 风险影响
重复的 SSH 登录失败尝试表明存在暴力破解攻击企图。如果成功,攻击者可能获得未授权的系统访问权限,导致数据泄露、权限提升或系统滥用。
## 🚨 事件响应措施
在识别出重复的 SSH 登录失败尝试后,采取了以下响应措施:
1. 审查认证日志以识别可疑的登录模式。
2. 确认目标用户名(attackeruser)。
3. 统计失败登录尝试次数以确定攻击强度。
4. 安装 Fail2Ban 以自动封禁重复攻击者。
5. 启用 SSH 监控以跟踪持续的登录活动。
这些措施帮助遏制了攻击并防止进一步的未授权访问尝试。
## 🛡️ 建议措施
- 强制实施强密码策略
- 在多次登录失败后实施账户锁定
- 限制 SSH 访问仅限受信任的 IP 地址
- 启用 Fail2Ban 以封禁重复攻击者
- 定期监控认证日志
## 📸 截图
在调查过程中捕获了以下截图:
1. SSH 服务状态
2. 攻击者用户创建
3. 失败的 SSH 登录尝试
4. 认证日志分析
5. 攻击时间线提取
## 🎯 展示技能
- Linux 系统管理
- SSH 配置
- 日志分析
- 事件调查
- 威胁检测
- 网络安全基础
## 🛡️ 防御实现 — Fail2Ban
在检测到重复的 SSH 登录失败尝试后,安装 Fail2Ban 以在多次登录失败后自动封禁攻击者。
### 📦 安装 Fail2Ban
```
sudo apt update
sudo apt install fail2ban -y
```
启动并启用 Fail2Ban 服务:
```
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban
```
### ⚙️ SSH 保护配置
创建 Fail2Ban 规则以监控 SSH 登录失败。
配置文件:
```
sudo nano /etc/fail2ban/jail.local
```
使用的配置:
```
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 600
findtime = 300
```
此配置在 **5 分钟**内检测到 **3 次失败登录尝试**后,将封禁攻击者 **10 分钟**。
### 🚫 攻击预防测试
再次生成多次失败的 SSH 登录尝试以触发 Fail2Ban 保护。
使用以下命令检查 Fail2Ban 状态:
```
sudo fail2ban-client status sshd
```
结果:
```
Currently banned: 1
```
这确认攻击者 IP 已成功被封禁。
### 📸 Fail2Ban 截图
以下截图展示了防御实现的执行情况:
- Fail2Ban 服务运行
- SSH 监狱状态
- 攻击者被封禁
## 🔗 连接
**作者:** Alex Ojo
网络安全学生 | SOC 分析师实习生
[](https://www.linkedin.com/in/alex-ojo9252185?)
[](https://github.com/alexojocyber)
2. 攻击者用户创建
3. 失败的 SSH 登录尝试
4. 认证日志分析
5. 攻击时间线提取
## 🎯 展示技能
- Linux 系统管理
- SSH 配置
- 日志分析
- 事件调查
- 威胁检测
- 网络安全基础
## 🛡️ 防御实现 — Fail2Ban
在检测到重复的 SSH 登录失败尝试后,安装 Fail2Ban 以在多次登录失败后自动封禁攻击者。
### 📦 安装 Fail2Ban
```
sudo apt update
sudo apt install fail2ban -y
```
启动并启用 Fail2Ban 服务:
```
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban
```
### ⚙️ SSH 保护配置
创建 Fail2Ban 规则以监控 SSH 登录失败。
配置文件:
```
sudo nano /etc/fail2ban/jail.local
```
使用的配置:
```
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 600
findtime = 300
```
此配置在 **5 分钟**内检测到 **3 次失败登录尝试**后,将封禁攻击者 **10 分钟**。
### 🚫 攻击预防测试
再次生成多次失败的 SSH 登录尝试以触发 Fail2Ban 保护。
使用以下命令检查 Fail2Ban 状态:
```
sudo fail2ban-client status sshd
```
结果:
```
Currently banned: 1
```
这确认攻击者 IP 已成功被封禁。
### 📸 Fail2Ban 截图
以下截图展示了防御实现的执行情况:
- Fail2Ban 服务运行
- SSH 监狱状态
- 攻击者被封禁
## 🔗 连接
**作者:** Alex Ojo
网络安全学生 | SOC 分析师实习生
[](https://www.linkedin.com/in/alex-ojo9252185?)
[](https://github.com/alexojocyber)标签:AMSI绕过, auth.log, grep 日志, IP 分析, IP 溯源, Linux 日志分析, OpenSSH, PB级数据处理, SSH 密钥认证, SSH 暴力破解, UFW 防火墙, 失败登录, 威胁检测, 安全演练, 安全运维, 安全运营中心, 应用安全, 攻击模拟, 日志取证, 日志检索, 登录失败, 网络映射, 认证日志, 防火墙阻断, 驱动签名利用