xaitax/CVE-2024-6387_Check
GitHub: xaitax/CVE-2024-6387_Check
一款轻量级检测工具,用于批量扫描并识别运行受 CVE-2024-6387 漏洞影响版本的 OpenSSH 服务器。
Stars: 526 | Forks: 100
# CVE-2024-6387_检查

## 📜 描述
CVE-2024-6387_Check 是一款轻量级、高效的工具,旨在识别运行易受攻击版本 OpenSSH 的服务器,特别是针对最近发现的 `regreSSHion` 漏洞 (CVE-2024-6387)。此脚本支持快速扫描多个 IP 地址、域名和 CIDR 网络范围,以检测潜在漏洞并确保您的基础设施安全。
## 🌟 功能
- **快速扫描**:快速扫描多个 IP 地址、域名和 CIDR 范围,以检测 CVE-2024-6387 漏洞。
- **Banner 获取**:无需认证即可高效获取 SSH banner。
- **宽限时间检测**:可选检测服务器是否使用了 LoginGraceTime 设置来缓解漏洞。
- **IPv6 支持**:完全支持直接和基于主机名的 IPv6 地址扫描。
- **多线程**:使用线程进行并发检查,显著减少扫描时间。
- **详细输出**:提供清晰、带有 emoji 标识的输出,汇总扫描结果。
- **端口检查**:识别已关闭的端口,并提供无响应主机的摘要。
- **已修补版本检测**:识别并从漏洞报告中排除已知已修补的版本。
- **DNS/主机名解析**:解析并显示 IP 地址对应的主机名。
## 🚀 用法
```
python CVE-2024-6387_Check.py [--ports PORTS] [--timeout TIMEOUT] [--list FILE] [--grace-time-check [SECONDS]] [--dns-resolve] [--use-help-request]
```
### 命令行参数
- ``:IP 地址、域名、包含 IP 地址的文件路径或 CIDR 网络范围。
- `--timeout TIMEOUT`:设置连接超时时间(秒)(默认:1 秒)。
- `--list FILE`:包含待检查 IP 地址列表的文件。
- `--ports PORTS`:指定一个以逗号分隔的端口号列表进行检查(默认:22)。
- `--use-help-request`:如果初始 SSH banner 获取失败,则启用发送 HELP 请求。
- `--grace-time-check [SECONDS]`:在识别出版本后等待的时间(秒),以检查 `LoginGraceTime` 缓解措施(默认:120 秒)。
- `--dns-resolve`:解析并显示 IP 地址对应的主机名。
### 示例
#### 单个 IP
```
python CVE-2024-6387_Check.py 192.168.1.1
```
#### 来自文件的 IP
```
python CVE-2024-6387_Check.py -l ip_list.txt
```
#### 多个 IP 和域名
```
python CVE-2024-6387_Check.py 192.168.1.1 example.com 192.168.1.2
```
#### CIDR 范围
```
python CVE-2024-6387_Check.py 192.168.1.0/24
```
#### 多端口扫描
```
python CVE-2024-6387_Check.py 192.168.1.1 example.com --ports 22,2222
```
#### 检查 LoginGraceTime 缓解措施
```
python CVE-2024-6387_Check.py 192.168.1.1 --grace-time-check
```
#### 检查 LoginGraceTime 缓解措施并自定义时间
```
python CVE-2024-6387_Check.py 192.168.1.1 --grace-time-check 150
```
#### 启用 HELP 请求
```
python CVE-2024-6387_Check.py 192.168.1.1 --use-help-request
```
#### 启用 DNS/主机名解析
```
python CVE-2024-6387_Check.py 192.168.1.1 --dns-resolve
```
### ✨ 功能详解
#### 宽限时间检测
该工具支持检查 [LoginGraceTime 缓解措施](https://www.cynet.com/blog/regresshion-cve-2024-6387/)。当使用 --grace-time-check 选项时,脚本将在获取 SSH banner 后等待指定的持续时间,以查看连接是否保持打开状态,这表明 LoginGraceTime 设置可能被设置为 0 作为缓解措施。
#### 已修补版本检测
该工具能够识别某些已修补的 OpenSSH 版本,并将它们排除在漏洞报告之外,从而确保结果更加准确。
#### DNS/主机名解析
当使用 `--dns-resolve` 选项时,脚本将在输出中解析并显示 IP 地址对应的主机名。此功能有助于更清晰地识别被扫描的主机。
### HELP 请求处理
该工具包含一个选项,用于处理不会立即返回 banner 的限制性 SSH 服务。当使用 `--use-help-request` 选项时,如果初始 SSH banner 获取失败,脚本将发送一个 "HELP" 请求,从而增加对“缓解措施”的检测率。
### 输出
脚本将提供已扫描目标的汇总:
* 🚨 存在漏洞:运行易受攻击版本 OpenSSH 的服务器。
* 🛡️ 无漏洞:运行非易受攻击版本 OpenSSH 的服务器。
* ⚠️ 未知:运行未知版本 SSH 的服务器。
* 🔒 端口已关闭:端口 22(或指定端口)已关闭的服务器数量。
* 📊 扫描总数:已扫描目标的总数。
```
🛡️ Servers not vulnerable: 2
[+] Server at somedomain.cloudapp.azure.com (running SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11)
[+] Server at regresshion_test.cc (running SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.3)
🚨 Servers likely vulnerable: 1
[+] Server at 4.231.170.122 (abc.com) (running SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2)
[+] Server at 4.231.170.121 (running SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u2) vulnerable and LoginGraceTime remediation not done (Session was closed by server at 120.1 seconds)
⚠️ Servers with unknown SSH version: 1
[+] Server at 103.97.85.85 (xxx.com) (banner: SSH-2.0-ROSSSH)
🔒 Servers with port 22 closed: 254
📊 Total scanned targets: 257
```
## 📆 更新日志
### [2024年7月8日] - 版本 0.8
- [新增] 包含了 FreeBSD 13.3、14.x 和 15 的已修补版本
- [新增] 通过 `-d` 或 `--dns-resolve` 实现主机名解析
- [修复] LoginGraceTime 检测 [@agibson2](https://github.com/agibson2)
### [2024年7月6日] - 版本 0.7
- [新增] 引入了一个选项:如果初次尝试失败,则使用 "HELP" 请求来获取 SSH banner。该功能可以使用 `--use-help-request` 参数启用。这有助于绕过某些不立即返回 banner 的 SSH 配置,改善了对限制性更强的 SSH 服务的兼容性。
- [新增] #30 允许扫描多个端口。
### [2024年7月5日] - 版本 0.6
- [新增] 引入了 LoginGraceTime 检测。
- [修复] 解决了仅有 IPv6 地址的主机无法通过主机名进行测试的问题。
## 📚 参考
[Qualys 关于 regreSSHion 漏洞的博客](https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server)
标签:逆向工具