Real-Fruit-Snacks/Deluge
GitHub: Real-Fruit-Snacks/Deluge
Nmap和RustScan输出的高级解析与格式化工具,提供彩色终端展示和多格式导出能力。
Stars: 1 | Forks: 0



**Nmap 和 RustScan 输出的高级解析器和格式化工具。**
通过 Rich 和 Catppuccin Mocha 样式提供彩色终端报告。支持多格式导出(JSON、CSV、HTML、XML、TXT)。交互模式可自动检测 RustScan 管道输入,并生成并发定向 Nmap 扫描,配备实时进度条。
## 快速开始
```
# pipx (推荐)
pipx install git+https://github.com/Real-Fruit-Snacks/Deluge.git
# 或标准 pip
pip install git+https://github.com/Real-Fruit-Snacks/Deluge.git
```
```
# 交互模式 (从 -sV 标志自动检测)
rustscan -a 192.168.1.0/24 --ulimit 5000 | deluge -sV
# 解析现有 Nmap XML 文件
deluge --file scan.xml
# 导出到所有格式
rustscan -a targets.txt --ulimit 5000 | deluge -sV --export-format all
```
## 功能
### 交互模式
通过管道将 RustScan 输出与 Nmap 标志连接,Deluge 会为每个发现的端口生成定向 Nmap 扫描,并显示实时进度条。可配置的 worker 线程并行执行扫描,并在线程锁下合并结果。
```
rustscan -a 10.0.0.1 --ulimit 5000 | deluge -A -T4 --threads 10
```
### 智能解析
通过工厂模式解析器注册表自动检测 Nmap XML、Nmap stdout 和 RustScan 输出格式。解析器在导入时自动注册,具有优先级顺序——第一个 `can_parse()` 返回 `True` 的解析器获胜。
```
deluge --file scan.xml
nmap -sV 192.168.1.1 -oX - | deluge
```
### 多格式导出
从单次扫描生成 JSON、CSV、HTML、XML 和 TXT 报告。导出的文件保存在带时间戳的子目录中,以防止覆盖。
```
deluge_exports/
scan_20260205_213245/
scan.json
scan.csv
scan.html
scan.xml
summary.txt
```
### HackTricks 集成
对于每个发现的开放服务,Deluge 提供相关 HackTricks 枚举指南的直接链接,涵盖 40 多种服务,从 FTP 和 SSH 到 Redis 和 MongoDB。
### Catppuccin 终端 UI
使用 Catppuccin Mocha 调色板的 Rich 驱动的表格、面板和进度条。彩色编码的端口、服务、操作系统检测、脚本结果和 traceroute 跃点。
### 域名提取
自动从主机脚本和服务数据中提取域名、SSL 证书 CN/SAN、NetBIOS 名称和 AD 森林信息。
### 安全检查
检测 Nmap 先决条件并提供特定操作系统的安装说明,对需要 root 权限的扫描发出权限警告,以及对 Nmap 标志进行输入验证。Rich 格式化的错误消息取代原始堆栈跟踪。
### 操作系统和脚本输出
解析的操作系统检测结果显示匹配准确百分比。NSE 脚本输出按端口格式化,带有语法高亮。Traceroute 数据逐跃点渲染,包含 RTT 和主机名。
## 架构
```
deluge/
core/
engine.py # Scan orchestration, interactive mode, threading
export.py # Multi-format export manager (thread-safe)
models.py # Pydantic v2 data models
utils.py # Prerequisite checks, privilege detection
logger.py # Logging configuration
parsers/
base.py # Abstract base parser (ABC)
nmap_xml.py # Nmap XML parser (priority 1)
nmap_stdout.py # Nmap stdout parser (priority 2)
rustscan.py # RustScan output parser (priority 3)
__init__.py # ParserFactory registry
interface/
cli.py # Argument handling, mode detection
formatter.py # Rich UI -- tables, panels, progress bars
```
解析器工厂按优先级顺序尝试每个注册的解析器,直到有一个声明输入。所有解析器都生成共享的 `ScanResult` Pydantic 模型,该模型同时供 Rich 格式化程序和导出管理器使用。
| 层级 | 技术 |
|-------|------------|
| 语言 | Python 3.8+ |
| 数据模型 | Pydantic v2 |
| 终端 UI | Rich |
| XML 解析 | lxml |
| 主题 | Catppuccin Mocha |
| 测试 | pytest |
| 代码检查 | ruff |
## 命令参考
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `--file
` | 解析现有扫描文件(`--file -` 用于强制 stdin) | -- |
| `--threads ` | 交互模式中的并发 Nmap worker 数 | `3` |
| `--export-format ` | `json csv html xml txt all` | -- |
| `--export-dir ` | 导出目录(创建带时间戳的子目录) | `./deluge_exports` |
| `--verbose`, `-v` | 启用调试日志 | `false` |
| `--no-check` | 跳过先决条件和权限检查 | `false` |
| `[nmap_args]` | Nmap 标志(例如 `-A`、`-sV`、`-T4`)——触发交互模式 | -- |
### 模式检测
| 条件 | 模式 |
|-----------|------|
| Stdin + Nmap 参数 | 交互模式(自动)|
| Stdin + 无参数 | 简单解析 |
| `--file ` | 文件解析 |
| `--file -` | 强制简单 stdin 解析 |
### 退出码
| 代码 | 含义 |
|------|---------|
| `0` | 成功 |
| `1` | 常规错误 |
| `2` | 输入/解析错误 |
| `3` | 导出错误 |
| `4` | 缺少先决条件(未找到 Nmap)|
### 测试
```
pytest # All tests
pytest --cov=deluge # With coverage
ruff check . # Lint (matches CI)
```
## 平台支持
| 功能 | Linux | macOS | Windows |
|------------|-------|-------|---------
| 文件解析 | 完整 | 完整 | 完整 |
| 交互模式 | 完整 | 完整 | 完整 |
| 多格式导出 | 完整 | 完整 | 完整 |
| 彩色输出 | 完整 | 完整 | 完整(Windows Terminal)|
| 权限检测 | `os.geteuid()` | `os.geteuid()` | Admin 检查 |
## 安全
通过 [SECURITY.md](SECURITY.md) 或 GitHub Security Advisories 报告漏洞。请勿就安全问题公开发布 issue。
Deluge 是一个**解析器和格式化工具**,而不是扫描器或利用工具。它**不会**:
- 自行发现主机或端口
- 在没有用户提供的标志的情况下静默执行 Nmap 命令
- 生成载荷或利用漏洞
- 管理植入物或信标
## 许可证
[MIT]( -- Copyright 2026 Real-Fruit-Snacks标签:Catppuccin, HTML导出, JSON导出, Nmap, Python, Rich库, XML导出, 交互式扫描, 多格式导出, 安全规则引擎, 密码管理, 工具, 并发扫描, 插件系统, 数据泄露防护, 数据统计, 无后门, 端口扫描, 终端美化, 网络安全, 网络工具, 网络探测, 虚拟驱动器, 输出格式化, 进度条, 逆向工具, 隐私保护