ACT91/Reconny
GitHub: ACT91/Reconny
Reconny 是一个集成了子域名枚举、存活探测、爬虫、JS 分析、Nuclei 漏洞扫描和 GPT 智能优先级排序的自动化安全侦察流水线平台。
Stars: 2 | Forks: 0
# Reconny
Reconny 是一个生产级、可扩展的侦察自动化系统,通过带有 AI 驱动分析的模块化 pipeline 架构,复刻并增强了手动漏洞赏金工作流。
## 什么是 Reconny?
Reconny 将传统的侦察工作流转化为自动化的智能 pipeline:
**传统手动侦察** → 运行工具 → 解析输出 → 分析 → 发现漏洞
**Reconny** → 基于 Job 的 pipeline → 分布式 worker → AI 分析 → 攻击面图谱
## 功能
- **13 阶段 Pipeline**:子域名枚举 → 存活探测 → 爬虫 → JS 分析 → 漏洞扫描 → AI 洞察
- **基于 Job 的架构**:队列驱动、有状态、可恢复的扫描
- **横向扩展**:按需增加 worker 以应对大规模扫描
- **AI 分析层**:基于 GPT 的攻击面优先级排序
- **攻击面图谱**:可视化导航 域名 → 子域名 → endpoint → 漏洞
- **RESTful API**:完全的可编程控制
- **现代化仪表盘**:React + TypeScript,支持实时更新
- **多项目支持**:按漏洞赏金项目组织扫描
## 架构
```
User → API → Job Queue → Workers → Pipeline Stages → AI Analysis → Reports
↓
PostgreSQL + Redis + File Storage
```
### Pipeline 阶段
1. Subfinder(子域名枚举)
2. Httpx(存活主机探测)
3. 技术检测
4. Katana(Web 爬虫)
5. JavaScript 提取
6. 从爬虫结果中提取 endpoint
7. JavaScript 下载
8. 对隐藏 endpoint 进行静态 JS 分析
9. endpoint 聚合与去重
10. 完整 URL 重构
11. Httpx endpoint 探测
12. Nuclei 漏洞扫描
13. 基于 AI 的优先级排序与报告
## 快速开始
### 前置条件
- Docker & Docker Compose
- Python 3.11+
- Node.js 18+(用于前端)
- 侦察工具:subfinder, httpx, katana, nuclei
### 安装说明
```
# Clone repository
git clone https://github.com/yourusername/Reconny.git
cd Reconny
# 复制 environment 模板
cp .env.example .env
# 使用你的配置编辑 .env
# 启动 infrastructure
docker-compose up -d
# 运行 backend
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload
# 运行 worker(单独的终端)
celery -A app.tasks.celery_app worker --loglevel=info
# 运行 frontend(单独的终端)
cd frontend
npm install
npm run dev
```
### 首次扫描
```
# 通过 API
curl -X POST http://localhost:8000/api/v1/scan/start \
-H "Content-Type: application/json" \
-d '{"target_domain": "example.com", "user_id": "user123"}'
# 通过 Dashboard
# 打开 http://localhost:3000 并创建一个新的 scan
```
## 项目结构
```
Reconny/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # REST endpoints
│ │ ├── pipeline/ # 13 pipeline stages
│ │ ├── workers/ # Celery workers
│ │ ├── ai/ # AI analysis engine
│ │ ├── models/ # Database models
│ │ └── integrations/ # Tool wrappers
├── frontend/ # React + TypeScript dashboard
│ ├── src/
│ │ ├── features/ # Feature modules
│ │ ├── components/ # UI components
│ │ ├── pages/ # Page components
│ │ ├── graphs/ # Attack surface visualization
│ │ └── charts/ # Analytics charts
├── storage/ # Scan results & artifacts
├── infrastructure/ # Docker, K8s configs
└── docs/ # Architecture & API docs
```
## 配置
关键环境变量:
```
# Database
DATABASE_URL=postgresql://user:pass@localhost/reconny
# Redis Queue
REDIS_URL=redis://localhost:6379/0
# AI
OPENAI_API_KEY=sk-...
AI_MODEL=gpt-4
# Tools
SUBFINDER_PATH=/usr/local/bin/subfinder
HTTPX_PATH=/usr/local/bin/httpx
KATANA_PATH=/usr/local/bin/katana
NUCLEI_PATH=/usr/local/bin/nuclei
```
## API 概述
```
POST /api/v1/scan/start # Start new scan
GET /api/v1/scan/{job_id} # Get scan status
GET /api/v1/scan/{job_id}/logs # Stream logs
GET /api/v1/scan/{job_id}/results # Get results
POST /api/v1/projects # Create project
GET /api/v1/projects # List projects
```
完整 API 文档:http://localhost:8000/docs
## 开发说明
```
# 运行 tests
pytest
# 格式化 code
black backend/
isort backend/
# Type checking
mypy backend/
# 运行单个 pipeline stage (testing)
python -m backend.app.pipeline.stages.01_subfinder --domain example.com
```
## 许可证
MIT 许可证 - 详情请参阅 [LICENSE](LICENSE)
## 免责声明
Reconny 仅设计用于授权的安全测试。用户有责任确保其拥有扫描目标域名的权限。未经授权的扫描可能是非法的。
## 致谢
构建基于:
- [ProjectDiscovery](https://projectdiscovery.io/) 工具 (subfinder, httpx, katana, nuclei)
- FastAPI, Celery, PostgreSQL, Redis
- OpenAI GPT 模型
- React, TypeScript, TailwindCSS
标签:AV绕过, FastAPI, GitHub, React, Syscalls, 分布式任务队列, 实时处理, 密码管理, 搜索引擎查询, 测试用例, 自动化侦察, 请求拦截, 逆向工具