frangelbarrera/deepweb-leak-search

GitHub: frangelbarrera/deepweb-leak-search

通过 Tor 匿名抓取公开威胁情报源并提取 IOC,为安全研究员提供本地化、可查询的危害指标聚合服务。

Stars: 1 | Forks: 0

# DeepTrawl 深度网络泄露搜索。从公开的威胁情报源聚合危害指标 (IOCs),并通过 Tor 路由所有流量以实现匿名。专为安全研究员和 OSINT 分析师打造。 ![DeepTrawl 仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1862ba8a72055450.png) ## 核心功能 - 通过 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网络, 威胁情报, 开发者工具, 数据泄露, 测试用例, 网络测绘, 请求拦截, 逆向工具