krishsheth23/reconx
GitHub: krishsheth23/reconx
ReconX 是一个生产级攻击面管理(ASM)与自动化侦察平台,通过多源子域名枚举、DNS 情报分析、技术栈指纹识别和端口扫描,帮助安全团队持续测绘与监控互联网暴露资产。
Stars: 0 | Forks: 0
# ReconX:自动化资产发现与侦察仪表板
ReconX 是一个生产级的攻击面管理和资产发现仪表板,专为安全研究人员、漏洞赏金猎人和企业组织设计,旨在对其面向互联网的资源进行测绘、剖析和监控。
```
_____ __ __
| __ \ \ \ / /
| |__) |___ ___ ___ _ __ \ V /
| _ // _ \/ __/ _ \| '_ \ > <
| | \ \ __/ (_| (_) | | | | / . \
|_| \_\___|\___\___/|_| |_|/_/ \_\
[ Attack Surface Mapping Operations ]
```
## 🚀 核心功能
1. **用户身份验证与 RBAC**:安全的基于 JWT 的会话 token 和 API 密钥轮换,用于自动化扫描配置。
2. **授权范围验证引擎**:扫描控件通过 DNS TXT 记录或 HTTP `.well-known` 文件挑战在执行扫描前强制进行目标所有权验证。
3. **子域名枚举引擎**:结合被动证书日志查询(crt.sh API)和主动字典暴力破解。
4. **DNS 情报模块**:解析复杂的 DNS 链(A、AAAA、MX、CNAME、TXT、NS)并突出显示常见的安全配置错误(例如缺失防欺骗策略)。
5. **技术剖析引擎**:检查 HTTP 响应、cookie 和 header 以索引 runtime 技术栈(React、Next.js、Nginx、Cloudflare)。
6. **端口与服务发现**:使用非阻塞 socket 检查扫描目标主机 IP 地址上的暴露端口和服务。
7. **交互式拓扑图**:使用自定义的 HTML5 canvas 图表可视化地渲染和导航资产。
## 🛠️ 系统架构
ReconX 采用现代解耦架构:
* **前端 UI**:Next.js 15、Tailwind CSS、Lucide 图标和 Canvas 拓扑渲染。
* **后端 API**:Node.js、Express、TypeScript 和 Prisma。
* **Scan Runner**:非阻塞后台 worker 队列(在生产环境中支持 BullMQ/Redis,在本地执行时支持直接异步 worker 降级方案)。
## ⚙️ 快速开始安装
ReconX 支持直接在 container 中运行或在本地进行开发。
### 方法一:Docker Compose(生产环境配置)
使用一行命令构建并启动整个 cluster(PostgreSQL、Redis、Express、Next.js 前端):
```
docker compose up --build
```
* **前端仪表板**:`http://localhost:3000`
* **后端 REST API**:`http://localhost:5001`
### 方法二:本地运行(开发环境配置)
#### 1. 配置后端
1. 进入 `backend` 目录:
cd backend
2. 安装 npm 包:
npm install
3. 初始化 Prisma 数据库客户端:
npx prisma generate
4. 启动服务器:
npm run start
#### 2. 配置前端
1. 打开一个新的终端并进入 `frontend` 目录:
cd frontend
2. 安装依赖包:
npm install
3. 启动 Next.js 开发服务器:
npm run dev
4. 打开浏览器并导航至 `http://localhost:3000`。
## 🛡️ 目标授权范围挑战流程
要验证域名所有权,请在弹窗中按照以下步骤操作:
1. 注册目标域名(例如:`example.com`)。
2. 添加一条 DNS TXT 记录,包含:
* **Host**:`_reconx.example.com`
* **Value**:`reconx-verification=`
3. 点击“Verify Challenge”。后台服务将查询目标 DNS 服务器以批准扫描权限。
## 📖 API Endpoints
| Method | Endpoint | Description | Auth Required |
| :--- | :--- | :--- | :--- |
| **POST** | `/api/auth/register` | 注册新的安全分析师 | No |
| **POST** | `/api/auth/login` | 登录并获取 JWT token | No |
| **GET** | `/api/auth/profile` | 获取用户资料和当前的 API 密钥 | Yes |
| **POST** | `/api/projects` | 创建授权范围项目 | Yes |
| **POST** | `/api/domains` | 注册新的授权范围目标域名 | Yes |
| **POST** | `/api/domains/:id/verify` | 验证域名挑战文本 | Yes |
| **POST** | `/api/scans/trigger` | 将资产扫描任务加入队列 | Yes |
| **GET** | `/api/reports/export` | 下载 CSV 或 JSON 格式的报告指标 | Yes |
## 👨💻 作品集展示
ReconX 被设计为一个作品集项目。如果您正在展示此项目,请重点突出:
* **解耦架构**:后端 API、后台 worker 和响应式 SOC 仪表板的清晰划分。
* **域名所有权安全防护**:展示防止未经授权扫描资产的安全策略的实用案例。
* **Canvas 渲染性能**:高效的自定义渲染引擎,能够处理高密度的网络布局。
标签:DInvoke, GitHub, GNU通用公共许可证, MITM代理, Node.js, 子域名枚举, 安全管理平台, 实时处理, 搜索引擎查询, 数据统计, 测试用例, 端口扫描, 系统安全, 自动化攻击, 请求拦截, 资产测绘