diouri11/ReconXI
GitHub: diouri11/ReconXI
ReconXI 是一个基于 Python asyncio 的高并发端口扫描框架,解决渗透测试与 Bug Bounty 场景下快速端口发现、服务 banner 识别及多格式报告导出的需求。
Stars: 0 | Forks: 0
# ReconXI — 专业端口扫描器框架
ReconXI 是一个使用 Python 编写的快速、模块化且异步的端口扫描器。它旨在执行并发端口扫描、支持协议感知的 banner grabbing,并能以多种格式清晰地导出扫描结果。
## 特性
- **极速扫描:** 使用 Python 的 `asyncio` 实现非阻塞的并发连接。
- **协议感知的 Banner Grabbing:** 专门针对 HTTP、SSH、FTP、SMTP、POP3 和 IMAP 进行握手,以提取准确的服务版本 banner。
- **精选端口数据库:** 使用预定义的列表(前 22、前 100、前 1000 或全部 65,535 个端口)快速扫描最常用的端口。
- **精美的 UI:** 由 `rich` 库提供支持,提供带有实时进度条的简洁、现代的终端界面。
- **稳健的导出功能:** 将扫描结果直接导出为 JSON、CSV、HTML 和 PDF 格式,以便生成报告。
## 安装说明
请确保已安装 Python 3.10+。
1. 导航至项目目录:
cd reconXI
2. 安装所需的依赖项(用于 UI 的 `rich`,用于导出 PDF 的 `fpdf2`):
pip install -r requirements.txt
## 用法
ReconXI 是作为一个 Python 模块构建的。你可以使用 `python -m reconxi scan` 加上你的目标(域名或 IP 地址)来运行它。
### 基础扫描
扫描前 22 个最常用的端口(默认行为):
```
python -m reconxi scan scanme.nmap.org
```
### 扫描模式
你可以指定不同的端口范围进行扫描:
- **前 100 个端口:**
python -m reconxi scan scanme.nmap.org --top100
- **前 1000 个端口:**
python -m reconxi scan scanme.nmap.org --top1000
- **全部 65,535 个端口(警告:速度慢且动静大):**
python -m reconxi scan scanme.nmap.org --all
- **自定义端口:**
python -m reconxi scan scanme.nmap.org --ports 22,80,443,8000-8080
### 高级选项
你可以配置超时时间和 worker 线程,以在网络连接缓慢时获得更好的性能:
```
python -m reconxi scan scanme.nmap.org --timeout 3.0 --workers 200
```
### 导出结果
ReconXI 允许你将结果同时导出为多种格式。默认情况下,它会根据时间戳自动生成文件名,但你也可以提供自定义的保存路径。
```
# 自动生成 filenames
python -m reconxi scan scanme.nmap.org --json --csv --html --pdf
# 指定自定义 filenames
python -m reconxi scan scanme.nmap.org --json report.json --html /path/to/report.html
```
## 项目结构
- `reconxi/cli.py`:命令行界面入口点。
- `reconxi/core/scanner.py`:驱动并发端口连接的 `asyncio` 引擎。
- `reconxi/banners/grabbers.py`:用于安全提取服务 banner 的特定协议逻辑。
- `reconxi/data/ports.py`:预定义的常用端口及其关联服务名称的字典。
- `reconxi/export/exporters.py`:用于格式化和写入 JSON、CSV、HTML 和 PDF 报告的逻辑。
- `reconxi/utils/logger.py`:内部日志记录配置。
标签:Python, 密码管理, 插件系统, 数据统计, 无后门, 端口扫描, 计算机取证, 逆向工具