📌 项目地址:reconurge/flowsint | ⭐ 4,274 颗星 | 🔧 TypeScript | 📜 未标注
Flowsint 是一个基于 Docker 的开源情报调查工具。它不像传统工具那样逐个请求 API 再手动整理结果,而是把每次查询的结果自动变成节点和连线,形成一张可交互的关系图谱。调查从单个线索(域名、IP、用户名)开始,工具根据你选择的“富化器”不断扩展图谱,所有数据只存在你自己的机器上。
为什么需要图谱化的 OSINT
大多数 OSINT 调查都需要同时查三四个网站,把结果复制到文本文件或者表格里,然后手动找关联。Flowsint 的思路是:每次查完自动生成节点,节点之间有明确的连线。比如你查一个域名,得到它的 ASN,工具会在图上画一条“域名→ASN”的线。你双击 ASN 节点再选“ASN 查 CIDR”,又自动添加 IP 段节点。整个过程都在同一个浏览器界面里完成,不需要切换窗口。
本地存储意味着你查过的所有数据都在自己的硬盘上。没有外部服务器记录你的查询历史,也没有网络请求泄露调查目标。
安装:Linux / macOS 最快,Windows 稍麻烦
前提条件:机器上要有 Docker。Linux/macOS 还要装 Make。
Linux / macOS 用户执行:
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod
make prod 会自动拉取 GitHub Container Registry 上的预构建镜像并启动。第一次启动后会看到类似 “Creating network” 的 Docker 输出。
Windows 用户(CMD 或 PowerShell 均可):
git clone https://github.com/reconurge/flowsint.git
cd flowsint
copy .env.example .env
copy .env.example flowsint-api.env
copy .env.example flowsint-core.env
copy .env.example flowsint-app.env
docker compose -f docker-compose.prod.yml up -d
注意 Windows 需要 Docker Desktop 提前启动。环境文件必须复制到四个不同目录,少一个服务可能启动失败。
首次登录与环境配置
启动后打开 http://localhost:5173/register 注册账号。系统没有预设管理员,第一个注册的人就是主人。
仅供本机使用的话,.env 里的默认密钥可以直接用。如果想把 Flowsint 部署到团队服务器或公网,必须修改 .env 里的三项:
AUTH_SECRET:用于签名身份令牌。生成方法:openssl rand -hex 32MASTER_VAULT_KEY_V1:加密存储的 API 密钥。生成方法:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"NEO4J_PASSWORD:Neo4j 数据库密码,随意设置。
部署到网络后,其他人只需访问服务器的 5173 端口即可使用。PostgreSQL、Redis、Neo4j 以及后端 API 都绑定在 127.0.0.1,仅通过前端的代理暴露给客户端。
内置的调查能力(富化器清单)
工具的每个查询功能叫“富化器”。目前支持以下类型:
与域名相关的
- DNS 解析:域名 → IP 地址
- 反向 DNS:IP → 域名
- 子域名发现:枚举子域名
- WHOIS 查询:域名注册信息
- 域名转网站:把域名实体变成可打开的网站实体
- 提取根域名:从
sub.example.com里提取example.com - 域名查 ASN:域名 → 自治系统号
- 域名历史:查询历史解析记录
IP 与网络相关的
- IP 信息:地理位置、运营商等
- IP 查 ASN:IP → 自治系统
- ASN 查 CIDR:AS → 拥有的 IP 段
- CIDR 枚举 IP:列出 IP 段内的所有地址
身份与社交相关的
- Maigret 集成:一个用户名在多个社交平台是否存在
组织相关的
- 组织查 ASN:公司名称 → 名下的自治系统
- 组织信息:获取组织基本资料(名称、地址等)
如何串联使用? 举例:输入一个域名 → 点“域名查 ASN” → 图谱上出现 ASN 节点 → 选中 ASN 节点再点“ASN 查 CIDR” → 得到全部 IP 段 → 选中某个 IP 段再点“CIDR 枚举 IP” → 列出所有 IP。每个 IP 又可以单独查询地理位置或反向 DNS。
当前状态与贡献
README 写着“still in early development”,实际使用中可能遇到界面响应慢、部分富化器失效、图谱渲染卡顿等问题。但核心的图谱构建流程是跑通的。
项目欢迎社区提 issue 和 feature request。如果你发现某个富化器数据源失效,或者想增加新的数据源(比如 Shodan、Censys),可以提 PR。仓库里没有规定具体的开发指南,但代码结构比较清晰:flowsint-core 放后端逻辑,flowsint-app 是前端,flowsint-api 是 API 网关。
伦理要求:仓库里有独立的 ETHICS.md,使用前必须阅读。工具设计用于合法、透明的调查,禁止用于骚扰、攻击或侵犯隐私。开发者特别强调“负责地使用”(responsible use guidelines)。
几点实际提醒
- 部分富化器需要 API Key(比如 Maigret 依赖第三方搜索服务)。Flowsint 提供了环境变量
MASTER_VAULT_KEY_V1来加密存储这些 Key,但你得自己准备好对应服务的 token。 - Docker 容器会占用较多资源。Neo4j 数据库 + Redis + 后端服务,开发机 8GB 内存勉强能跑,建议 16GB。
- 如果想固定版本,可以在
docker-compose.prod.yml里把latest标签改成具体版本号(比如v0.1.0)。README 没给出版本列表,但 GitHub Releases 页面可以找到。
整理下来,Flowsint 解决了 OSINT 调查中最头疼的数据关联问题——不是帮你找到信息,而是把找到的信息自动铺成一张图。适合需要做持续调查的人或团队,比如安全研究员、记者、法律取证人员。