XecureLogic/origin-recon
GitHub: XecureLogic/origin-recon
本地自托管的 DNS 与源站基础设施被动侦察工具,整合多源 OSINT 数据实现域名风险判定与恶意基础设施识别。
Stars: 0 | Forks: 0
# Origin 侦察
**开发者:** [XecureLogic](https://xecurelogic.com) — xecurelogic.com
一个独立运行、基于本地的 DNS / 源站 / 攻击者基础架构侦察工具。
只需提供一个域名,它一次扫描即可完成通常需要十几个浏览器标签页才能完成的工作:
映射 DNS、区分 CDN 边缘节点与真实源站、对主机进行地理定位,
并标记出防弹 ASN 以及被 abuse.ch 确认的已知恶意基础架构。
后端采用 FastAPI,前端采用 React/Vite/Tailwind。完全在您的本地机器上运行;API 密钥和
目标数据绝不外泄。
## 截图

The scan interface. Single or bulk mode, the live enrichment sources lit up across the top, and this session's scans as click-through chips.

The headline verdict — MALICIOUS — with the reasoning, the defanged origin IOC, and one-click actions to check or report the URL to URLhaus.

The DNS graph — apex to record types to resolved hosts to networks, laid out so the structure reads in seconds.

Resolved hosts placed on a real-projection world map, color-coded by role and risk, with a hosting breakdown and a risk summary.

The full DNS record tables — A, NS, SOA — each row enriched with ASN, the Team Cymru-announced origin, and a per-record risk flag.
## 功能介绍
针对目标域名,它会执行**被动**的 OSINT 侦察并呈现以下内容:
- **核心判定** — `MALICIOUS`(恶意)/ `SUSPICIOUS`(可疑)/ `NO MALICIOUS SIGNALS`(无恶意信号)/ `INCONCLUSIVE`(无法确定),并明确给出判定依据
- **DNS 记录** — A/AAAA/MX/NS/TXT/SOA,每条记录均包含 ASN 及风险标记
- **真实子域名枚举** — 通过 Certificate Transparency (crt.sh) 实现,而非猜测列表
- **地理定位主机** — 展示在精准的世界地图上(Natural Earth 投影),标记颜色根据角色/风险进行区分
- **边缘 / 源站分类** — 判断根域是位于 CDN 之后(已被隐藏)还是直接解析到真实主机(已暴露)
- **源站候选地址** — 来自被动 DNS 的历史记录(CDN 接入前的 A 记录)
- **权威 ASN** — 通过 Team Cymru 获取每个主机的权威 ASN(会调和 RDAP/地理定位的数据冲突)
- **防弹 ASN 标记** — 通过 Spamhaus ASN-DROP 进行识别
- **已知恶意确认** — 通过 abuse.ch ThreatFox 和 URLhaus 进行确认
- **无害化处理的 IOC** — 带有复制按钮,并支持导出为 **CSV**、**STIX 2.1** 以及 **MISP** 事件 JSON
- **批量扫描**(支持粘贴列表,上限 50 个,并发执行)
- **扫描历史** — 每次扫描均保存在本地,支持搜索和一键回顾
- **主动源站确认**(可选启用)— 使用伪造的 `Host` 标头获取候选源站,以验证其是否提供目标网站服务;拒绝扫描私有 IP,并在无法确定时报告 *inconclusive*(无法确定),而不是盲目猜测
- **URLhaus 提交**(受控功能)— 将已确认的恶意 URL 反馈给社区
默认情况下,所有数据源均为只读/被动模式。引擎针对每个数据源均采用故障安全机制(如果某个数据源不可用或缺少 API 密钥,该部分会降级处理并附带说明;引擎绝不伪造数据)。
## 前置条件
`run.sh` 需要您的 PATH 中包含以下三项内容:**Python 3**(包含 `venv` 模块)、**Node.js** 和 **npm**。Python 已随大多数 Linux 发行版附带,但在 Debian/Kali/Ubuntu 系统中,`venv` 模块和 Node 需要单独安装:
```
sudo apt update
sudo apt install -y python3-venv nodejs npm
```
验证方法:
```
python3 --version && node -v && npm -v
```
## 快速开始(单条命令)
```
./run.sh
```
然后打开 http://localhost:8000
如果上次运行被中断(例如缺少依赖包、安装过程中按下了 Ctrl+C),只需再次
运行 `./run.sh` —— 它会检测到未构建完成的后端 venv,重新进行构建,并且
在后端真正在 8000 端口提供服务之前,绝不报告成功。
`run.sh` 会创建一个 venv,安装后端依赖,构建前端,通过后端在 8000 端口
提供构建好的 UI 服务,并自动打开您的浏览器。`./run.sh --dev` 会改为运行
热重载开发服务器。按下 Ctrl+C 可停止所有进程。
## 可选的 API 密钥(用于启用更丰富的信息补充)
请将它们放入项目根目录的 `.env` 文件中(推荐)或 `backend/.env` 中。代码中不进行
任何硬编码;每个密钥解锁一个模块,缺少该密钥时应用会优雅降级。
```
export IPINFO_TOKEN=... # precise geolocation + ASN (raises rate limits)
export SECURITYTRAILS_API_KEY=... # passive-DNS history (best for unmasking origins)
export VT_API_KEY=... # passive-DNS history (VirusTotal)
export ABUSECH_AUTH_KEY=... # known-bad confirmation (free: https://auth.abuse.ch/)
```
页眉会显示哪些信息补充功能已激活。即使不提供任何密钥,您仍然可以使用 DNS、
CT 子域名、RDAP ASN、Team Cymru 发布的 ASN、Spamhaus 风险标记以及
大致的(基于国家重心点的)地理定位功能。
状态端点仅报告某个数据源**是否**已启用 —— 绝不会返回
密钥本身。`.env` 文件已被配置为 git 忽略;请保持这一设置。
## 手动 / 开发模式
后端:
```
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000
```
前端(热重载,需在单独的终端中运行):
```
cd frontend
npm install
npm run dev # http://localhost:5173
```
## 注意事项
- 请仅扫描您已获得授权评估的域名。
- IP 信息补充采用并发执行;即使域名包含大量子域名,依然能在数秒内完成。
- 世界地图已离线打包(位于 `frontend/src/assets/countries-110m.json`),因此应用无需依赖任何外部地图服务。
- 主动源站确认探测是唯一直接与目标基础架构交互的功能;该功能需针对每个候选对象单独选择启用。
标签:AV绕过, FastAPI, GitHub, MITM代理, React, SYN扫描, Syscalls, 域名解析, 威胁情报, 实时处理, 开发者工具, 无服务器架构, 暗色界面, 自动化攻击, 逆向工具