nantasukangoding/Webrecon
GitHub: nantasukangoding/Webrecon
WebRecon 是一个集成了 DNS、SSL、端口、WHOIS、漏洞扫描等多项侦察模块的本地 Web 渗透测试工具包,帮助安全测试人员一站式完成目标信息收集与安全评估。
Stars: 0 | Forks: 0
# 🛡️ WebRecon
**网站渗透测试工具包** — 用于 Web 安全分析的本地侦察工具。
## 功能
| 模块 | 描述 |
|--------|-------------|
| 🔒 安全 Headers | 分析 HTTP 安全 Headers + 安全评级 |
| 🔍 技术检测 | 指纹识别 frameworks、CMS 和 libraries |
| 🌐 DNS 枚举 | 解析 DNS 记录 + 验证 SPF/DMARC/DKIM |
| 📋 WHOIS 查询 | 域名注册商和所有权信息 |
| 🔌 端口扫描器 | 检测开放端口和运行中的服务 |
| 🔐 SSL/TLS 分析 | 检查证书、协议和密码套件 |
| 💀 漏洞扫描器 | 主动探测 — 管理面板、敏感文件、配置错误 |
| 🔑 API 及密钥 | 提取隐藏的 API 密钥并测试 endpoint 泄露 |
| 📊 报告生成器 | 导出可打印的 HTML 报告 |
## 安装
```
# 克隆或解压项目
cd webrecon
# 安装依赖
npm install
# 从模板创建 config 文件
cp .env.example .env
```
### `.env` 配置
```
PORT=3000
# 可选 — 设置以启用 auth(公开部署必需)
# 生成:node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
API_KEY=
# 可选 — 留空以禁用 CORS(本地使用)
ALLOWED_ORIGINS=
# Rate limiter(默认:每个 IP 每 15 分钟 30 次请求)
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=30
```
## 运行
```
# Development(文件更改时自动重启)
npm run dev
# Production
npm start
```
在浏览器中打开:**http://localhost:3000**
## API Endpoints
所有扫描 endpoints 接受带有 `{ "target": "example.com" }` body 的 `POST` 请求。
如果在 `.env` 中设置了 `API_KEY`,请包含以下 header:
```
x-api-key: your-api-key-here
```
| 方法 | Endpoint | 描述 |
|--------|----------|-------------|
| POST | `/api/scan/headers` | 安全 headers |
| POST | `/api/scan/tech` | 技术检测 |
| POST | `/api/scan/dns` | DNS 枚举 |
| POST | `/api/scan/whois` | WHOIS 查询 |
| POST | `/api/scan/ports` | 端口扫描 |
| POST | `/api/scan/ssl` | SSL/TLS 分析 |
| POST | `/api/scan/vulns` | 漏洞扫描 |
| POST | `/api/scan/apis` | API 及密钥扫描 |
| POST | `/api/scan/full` | 运行所有模块 |
| POST | `/api/report` | 生成报告 |
| GET | `/api/history` | 查看扫描历史 |
| DELETE | `/api/history` | 清除扫描历史 |
## 安全
- **SSRF 防护**:自动阻止解析为私有 IP (RFC1918)、localhost 和云元数据 endpoints (`169.254.169.254`) 的目标。
- **速率限制**:默认每个 IP 每 15 分钟 30 次请求。
- **API Key 认证**:在 `.env` 中设置 `API_KEY` 以启用受保护模式。
- **CORS**:默认禁用;如果需要跨域访问,请设置 `ALLOWED_ORIGINS`。
- **持久化历史记录**:存储在 `data/history.json` 中(不包含在 git 中)。
## 运行测试
```
npm test
```
测试涵盖:
- `apiScanner.js` 中的 Regex 密钥模式
- SSRF 黑名单验证
- 目标 URL/域名解析
## 项目结构
```
webrecon/
├── middleware/
│ └── security.js # SSRF protection, API key auth, rate limiter
├── modules/
│ ├── apiScanner.js
│ ├── dnsEnumerator.js
│ ├── headerAnalyzer.js
│ ├── portScanner.js
│ ├── reportGenerator.js
│ ├── sslAnalyzer.js
│ ├── techDetector.js
│ ├── vulnScanner.js
│ └── whoisLookup.js
├── public/ # Frontend (HTML/CSS/JS)
├── test/ # Unit tests
├── data/ # Persistent history (git-ignored)
├── .env.example # Config template
├── .gitignore
└── server.js
```
## 免责声明
本工具仅用于**授权的安全测试**和教育目的。
作者不对本工具的任何滥用行为负责。
在扫描之前,请务必确保您已获得目标所有者的**书面许可**。
标签:GitHub, GNU通用公共许可证, MITM代理, Node.js, Web安全, 多模态安全, 实时处理, 密码管理, 数据可视化, 暗色界面, 自定义脚本, 蓝队分析