Moriz82/RevelationScan
GitHub: Moriz82/RevelationScan
一款基于 Python 标准库的模块化 Linux 安全侦察工具,专注于在实验室与 CTF 场景中发现配置与版本类误配。
Stars: 0 | Forks: 0
# Revelation Scan
Revelation Scan 是一个模块化、独立完整的 Linux 安全侦察工具,灵感来源于 linPEAS 的深度。它专注于在受控实验室环境中发现错误配置,用于道德安全研究。虽然它**可以**在大多数操作系统上运行,但**最佳支持**环境为 Linux!
## 亮点
- 纯 Python 标准库——运行时和扫描无需任何第三方依赖。
- “Trumpet” 模块架构:每个检查都是一个类,可通过插件扩展或替换。
- 带 ASCII 横幅的彩色动画控制台体验(首次启动显示),并支持可选的 JSON 报告。
- 灵感来自 linPEAS 的扩展侦察 Trumpet:PATH 卫生、cron、sudoers、监听服务、内核加固、设备权限、能力(capabilities)等。
- 可配置的 CVE/服务版本 Trumpet,支持摄入 JSON 源(本地或远程)以保持最新且无需代码更改;`--update-feed` 可获取最新数据。
- 每个发现项可选的利用建议和修复提示。
- 用于生成 `.pyz` 归档或完全自包含 ELF 二进制文件的构建脚本和辅助工具。
## 快速开始
```
cd RevelationScan
make run # run all trumpets with default settings
make run ARGS="--list-trumpets" # enumerate available trumpets
make run ARGS="--trumpets path_hygiene,ssh_config" # selective execution
```
## 配置
- `--config`:指向包含 `cve_feed`(本地文件)、`cve_feed_url` 或 `update_sources`(源 URL 数组)等键的 JSON 文件。
- `--cve-feed`:在不编辑配置文件的情况下覆盖 CVE 源路径(与 `--update-feed` 结合使用时存储在 `~/.cache/RevelationScan`)。
- `--cve-feed-url`:提供用于获取 CVE 数据的 URL(或逗号分隔列表)。
- `--update-feed`:拉取远程源并合并到本地缓存后再进行扫描。
- `--plugin-dir`:提供自定义 Trumpet 实现;任何继承 `Trumpet` 的类都会自动注册。
- `--output` 和 `--format {text,json}`:将报告写入磁盘。
- `--suggest-exploits`:包含来自 CVE 源的利用思路。
- `--no-color`:禁用 ANSI 样式/加载动画,便于日志捕获或无头使用。
默认的 CVE 源位于 `src/RevelationScan/data/cve_feed.json`。更新或替换该文件,或使用你自己的源运行 `--update-feed`,以跟上新的安全公告。
## 打包
```
make bundle # creates dist/RevelationScan.pyz (requires Python on target)
make binary # requires pyinstaller, outputs dist/revelation-scan (no Python on target)
./build_binary.sh # builds an ELF via isolated PyInstaller workflow
```
## 插件
将定义一个或多个 `Trumpet` 子类的 Python 文件放入目录,然后运行:
```
make run ARGS="--plugin-dir /path/to/trumpets --trumpets new_trumpet"
```
每个插件都可以从 `RevelationScan.core` 导入共享工具以保持一致性。
## 数据源格式
CVE 源是一个包含 `services` 数组的 JSON 对象。每个服务需要:
```
{
"name": "sudo",
"command": ["sudo", "--version"],
"pattern": "sudo version (\\d+\\.\\d+\\.\\d+p?\\d*)",
"advisories": [
{
"cve": "CVE-2021-3156",
"fixed_version": "1.9.5p2",
"description": "Heap overflow...",
"remediation": "Upgrade sudo...",
"exploit": "(optional)"
}
]
}
```
此格式允许你与 NVD/NIST 导出、Exploit DB 镜像或自定义实验室数据集同步,而无需修改 Revelation Scan 本身。通过 `--cve-feed-url url1,url2` 合并多个 URL,并运行 `--update-feed` 将数据合并到 `~/.cache/RevelationScan/cve_feed.json` 的个人缓存中。
## 免责声明!!!
仅在授权实验室或沙箱环境中使用 Revelation Scan。许多 Trumpet 会突出显示错误配置,若在未获许可的情况下利用,可能违反法律或政策。
标签:ASCII动画, Claude, cron审计, CVE检测, ELF打包, GitHub Advanced Security, JSON报告, linPEAS, PATH检查, Python标准库, PyZ打包, sudoers审计, 内核加固, 安全侦察, 安全加固, 实验室安全, 库, 应急响应, 插件架构, 无依赖, 服务版本探测, 权限检查, 模块化扫描, 漏洞修复建议, 监听服务, 能力机制, 自执行二进制, 设备权限, 远程馈送, 逆向工具, 配置文件审计