BenjaminIheukumere/lpe_0526_find0r
GitHub: BenjaminIheukumere/lpe_0526_find0r
一个基于SSH认证的Linux本地权限提升暴露快速扫描工具,用于识别特定CVE的潜在风险主机。
Stars: 1 | Forks: 0
# Linux LPE 暴露扫描
Linux LPE 暴露扫描是一款快速的、基于认证的 SSH 扫描器,用于识别可能需要后续进行本地权限提升暴露检查的 Linux 主机:
* Dirty Frag (CVE-2026-43284 / CVE-2026-43500)
* Fragnesia (CVE-2026-46300)
* DirtyDecrypt / DirtyCBC (CVE-2026-31635)
* PinTheft (RDS zcopy double-free)
* SSH Keysign Pwn (CVE-2026-46333)
* Copy Fail (CVE-2026-31431)
* Pack2TheRoot (CVE-2026-41651)
该工具至少使用 32 个并行工作线程运行,显示彩色实时进度表,并在识别到每个易受攻击的主机时立即生成可操作的报告条目。
## 功能
* 通过认证的 SSH 收集本地主机信息
* 使用内核、发行版、ESP/RXRPC 模块和 modprobe 缓解指标进行 Fragnesia 暴露检查
* 使用内核、发行版、`CONFIG_RXGK`、RxRPC 模块、缓解措施和内核日志指标进行 DirtyDecrypt / DirtyCBC 暴露检查
* 使用内核、RDS/RDS_TCP 配置和模块状态、`io_uring` 状态、模块缓解措施以及可读的 SUID-root 目标指标进行 PinTheft 暴露检查
* 使用内核包、发行版、`ptrace_scope`、`ssh-keysign` 和 `chage` 指标进行 SSH Keysign Pwn 暴露检查
* 至少 32 个并行工作线程
* 接受 CIDR 目标和包含式 IP 范围
* 带有已用时间、预计剩余时间和当前检查主机的实时进度条
* 彩色终端输出,便于快速分类
* 扫描运行时报告输出流式传输
* 报告文件名包含扫描目标
* 报告文件仅包含待办事项条目:至少有一个 `LIKELY_VULNERABLE` 发现的主机
* 可配置的 SSH、命令和可达性超时
* 干净地处理 Ctrl+C,保留光标并输出部分结果
* 使用密码或私钥进行 SSH 认证
* 通过隐藏提示、环境变量或 CLI 参数输入密码和密钥密码短语
* 可选的严格 SSH 主机密钥验证
## 安装说明
1. 安装依赖项
```
pip install -r requirements.txt
```
2. 克隆此仓库:
```
git clone https://github.com/BenjaminIheukumere/lpe_0526_find0r
cd lpe_0526_find0r
chmod +x linux_lpe_exposure_scan.py
```
## 使用方法
```
./linux_lpe_exposure_scan.py -u
```
用户名和一种 SSH 认证方法是必需的。默认情况下,脚本使用密码认证,如果未通过环境变量或 CLI 选项提供密码,则会进行安全提示。使用 `--key-file` 来通过 SSH 私钥进行认证。
## 示例
交互式密码提示:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser
```
包含式 IP 范围:
```
./linux_lpe_exposure_scan.py 10.215.0.0-10.215.5.254 -u audituser
```
从环境变量获取密码:
```
export LPE_SCAN_PASSWORD='SuperSecretPassword'
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser
```
私钥认证:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --key-file ~/.ssh/id_ed25519
```
带密码提示的加密私钥:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --key-file ~/.ssh/id_ed25519 --ask-key-passphrase
```
从环境变量获取加密私钥的密码短语:
```
export LPE_SCAN_KEY_PASSPHRASE='SuperSecretKeyPassphrase'
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --key-file ~/.ssh/id_ed25519
```
自定义输出目录:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --output-dir reports
```
更多工作线程:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --workers 64
```
严格 SSH 主机密钥检查:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --strict-host-key
```
禁用颜色和实时终端界面:
```
./linux_lpe_exposure_scan.py 10.0.10.0/24 -u audituser --no-color --no-live
```
## 选项
* `--workers`: 并行工作线程。最小/默认值为 `32`。
* `--target` / `--subnet`: CIDR 目标或包含式 IP 范围(如果未使用位置参数)。
* `--output-dir`: 报告输出目录。默认为当前目录。
* `--report-prefix`: 报告文件名前缀。默认为 `lpe_scan_report`。
* `--probe-timeout`: Ping/TCP 可达性超时(秒)。默认为 `1.0`。
* `--ssh-timeout`: SSH 连接/认证/banner 超时(秒)。默认为 `6.0`。
* `--command-timeout`: 远程命令超时(秒)。默认为 `8.0`。
* `--password-env`: 包含 SSH 密码的环境变量。默认查找 `LPE_SCAN_PASSWORD`。
* `--password`: 作为参数的 SSH 密码。当 shell 历史记录很重要时,请改用提示或环境变量。
* `--key-file`: 用于基于密钥认证的 SSH 私钥文件。设置后,将不使用密码认证。
* `--key-passphrase-env`: 包含 SSH 私钥密码短语的环境变量。默认查找 `LPE_SCAN_KEY_PASSPHRASE`。
* `--key-passphrase`: 作为参数的 SSH 私钥密码短语。当 shell 历史记录很重要时,请改用提示或环境变量。
* `--ask-key-passphrase`: 提示输入 SSH 私钥密码短语。对于未加密的密钥,请留空。
* `--strict-host-key`: 拒绝未知的 SSH 主机密钥。
* `--no-color`: 禁用 ANSI 颜色。
* `--no-live`: 禁用固定的实时进度显示。
## 输出
报告写入以扫描目标命名的文件:
```
lpe_scan_report_10.0.10.0_24.txt
lpe_scan_report_10.215.0.0-10.215.5.254.txt
```
只有至少有一个 `LIKELY_VULNERABLE` 发现的主机才会被写入报告。诸如无法访问的主机、SSH 错误、看起来已修补的系统或没有直接指标的主机等不可操作条目不会被记录为待办事项。
最终的终端摘要也仅显示可能易受攻击的主机。
## 注意事项
* 此扫描器不会利用任何漏洞。
* 需要经过认证的 SSH 访问,因为没有主机信息就无法可靠地评估本地 LPE 暴露。
* Fragnesia 检查仅为防御性暴露指标。它们查看运行中的内核、发行版提示、ESP/RXRPC 模块状态和 modprobe 缓解措施。
* DirtyDecrypt / DirtyCBC 检查仅为防御性暴露指标。它们查看运行中的内核、发行版修复提示、`CONFIG_RXGK`、RxRPC 模块可用性、RxRPC 缓解措施以及可用的内核日志指标。
* PinTheft 检查仅为防御性暴露指标。它们查看运行中的内核、RDS/RDS_TCP 可用性、`CONFIG_IO_URING`、`kernel.io_uring_disabled`、RDS 模块缓解措施以及常见的可读 SUID-root 目标路径。
* SSH Keysign Pwn 检查仅为防御性暴露指标。它们查看运行中的内核、发行版修复基线、公共辅助面以及 `kernel.yama.ptrace_scope` 缓解措施。
* 内核和软件包版本检查是粗略的指标。发行版的向后移植可能会改变实际的补丁状态。
* 默认的 SSH 主机密钥行为接受未知主机密钥,以便于扫描。在需要强制执行已知主机的环境中使用 `--strict-host-key`。
* 按 `Ctrl+C` 可以干净地停止正在运行的扫描。排队的主机会被取消,进行中的检查会被允许释放,并且会打印部分待办结果。
* 建议使用 Python 3.9 或更新版本。
## 修改
如果您想更改默认线程数,请编辑 `linux_lpe_exposure_scan.py` 中的 `MIN_WORKER_THREADS`。您也可以使用 `--workers` 设置运行时工作线程数,但低于 `32` 的值会被拒绝。
## 免责声明
此工具仅用于授权的安全测试和防御性暴露评估。请仅在您拥有明确许可的环境中使用它。作者不对因误用或此工具造成的任何损害负责。
## 关于
Linux LPE 暴露扫描是一款多线程认证扫描器,用于快速识别可能需要对选定的本地权限提升暴露进行后续处理的 Linux 主机,包括 Dirty Frag、Fragnesia、DirtyDecrypt / DirtyCBC、PinTheft、SSH Keysign Pwn、Copy Fail 和 Pack2TheRoot。
标签:CIDR扫描, GPT, IP范围扫描, LPE检测, SSH扫描, 内存分配, 内核漏洞检测, 反取证, 安全评估, 并行处理, 恶意行为检测, 插件系统, 暴露检查, 模块检查, 漏洞管理, 特权提升检测, 结构化查询, 网络安全扫描, 自动化安全, 认证扫描, 远程扫描, 逆向工具