frangelbarrera/deepweb-leak-search
GitHub: frangelbarrera/deepweb-leak-search
通过 Tor 匿名抓取公开威胁情报源并提取 IOC,为安全研究员提供本地化、可查询的危害指标聚合服务。
Stars: 1 | Forks: 0
# DeepTrawl
深度网络泄露搜索。从公开的威胁情报源聚合危害指标 (IOCs),并通过 Tor 路由所有流量以实现匿名。专为安全研究员和 OSINT 分析师打造。

## 核心功能
- 通过 Tor SOCKS5 代理抓取威胁情报源 (`.txt`, `.netset`)
- 提取 IOC:IPv4、域名、电子邮件、MD5、SHA256、BTC/XMR 钱包地址
- 将结果存储在 PostgreSQL 中,并使用 SHA-256 进行去重
- 提供 REST API + 极简仪表盘
- 按需或在触发限流时轮换 Tor 身份(通过 `stem` + Tor ControlPort)
## 技术栈
| 层级 | 技术 |
|-------|------|
| 后端 | Python 3.11+, FastAPI, aiohttp |
| 代理 | Tor SOCKS5 (`aiohttp-socks`) |
| 身份轮换 | `stem` + Tor ControlPort (`NEWNYM`) |
| 数据库 | PostgreSQL 15 (`asyncpg`) |
| 提取 | 正则引擎 (确定性,无 ML) |
| 用户界面 | Jinja2 服务端渲染仪表盘 |
## 快速开始
### 前置条件
- Docker + Docker Compose
- 或:Python 3.11+、PostgreSQL 以及运行中的 Tor daemon
### Docker (推荐)
```
docker compose up -d --build
```
仪表盘地址为 `http://localhost:8000/dashboard`。
### 本地运行 (应用不使用 Docker)
```
# 1. 启动 PostgreSQL + Tor
# 2. 安装 deps
pip install -r requirements.txt
# 3. 设置 env vars
export DATABASE_URL="postgres://user:pass@localhost:5432/dbname"
export UPSTREAM_PROXY="socks5h://127.0.0.1:9050"
export TOR_CONTROL_HOST="127.0.0.1"
export TOR_CONTROL_PORT="9051"
# 4. 运行
uvicorn app.main:app --host 127.0.0.1 --port 8000
```
## API
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/v1/health` | 数据库健康检查 |
| GET | `/api/v1/feeds` | 列出活跃的情报源 URL |
| POST | `/api/v1/feeds` | 添加情报源 URL |
| POST | `/api/v1/trigger` | 强制收集所有活跃的情报源 |
| POST | `/api/v1/network/rotate` | 更新 Tor 线路 |
| GET | `/api/v1/indicators` | 分页 IOC (`?limit=50&page=1&ioc_type=ipv4`) |
| GET | `/dashboard` | 网页仪表盘 |
## 默认情报源
- `https://openphish.com/feed.txt`
- `https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset`
通过 API 或仪表盘添加或移除情报源。
## 项目结构
```
├── app/
│ ├── core/
│ │ ├── collector.py # Async HTTP engine + Tor proxy
│ │ ├── extractor.py # Regex IOC extraction
│ │ └── identity_manager.py # Tor identity rotation (NEWNYM)
│ ├── templates/
│ │ └── dashboard.html # Jinja2 dashboard template
│ ├── database.py # asyncpg connection pool + schema
│ └── main.py # FastAPI app + endpoints + auto-cron
├── src/ # React landing page (Vite + Tailwind)
│ ├── App.tsx
│ ├── main.tsx
│ └── index.css
├── tests/
│ ├── test_extractor.py # 26 tests — IOC regex extraction
│ └── test_api.py # 11 tests — HTTP endpoints
├── assets/
│ └── images/
│ └── screenshot.png
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
└── .env.example
```
## 局限性
- **非爬虫程序** — 仅抓取纯文本情报源 URL(无递归爬取)
- **仅限正则提取** — 不使用 NLP 或模糊匹配;IPv4 模式会匹配任何 `X.X.X.X` 而不验证八位组范围
- 仪表盘/API **无身份验证**(设计上为本地工具)
- **无持久化的 Tor 身份跟踪** — 不对每个情报源进行线路隔离
- `src/` 中的 React 前端是一个独立的着陆页,未直接连接到后端 API
## 许可证
MIT
标签:AV绕过, FastAPI, IOC提取, PostgreSQL, Tor网络, 威胁情报, 开发者工具, 数据泄露, 测试用例, 网络测绘, 请求拦截, 逆向工具