关于 OpenOSINT
OpenOSINT 是面向安全研究人员和分析师的 OSINT 调查 Agent,提供自然语言调查和 21 种工具。它默认采用被动检查,并展示产生调查发现的工具调用。
主要功能
- 01自然语言串联工具
- 0221 种调查工具
- 03默认被动模式
- 04Markdown 和 PDF 报告
- 05REPL、CLI 和浏览器界面
适用场景
- 01调查域名和 IP 暴露情况
- 02检查泄露事件与公开账号线索
- 03核查基础设施和 DNS 记录
MCP 相关
MCP 服务向兼容的 AI 客户端提供调查工具。默认开放被动工具,主动工具需明确启用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx openosintANTHROPIC_API_KEY密钥Anthropic API key — required for the AI agent REPLHIBP_API_KEY密钥HaveIBeenPwned API key for breach detection (search_breach tool)IPINFO_TOKEN密钥ipinfo.io token for higher IP lookup rate limits (search_ip tool)IP2LOCATION_API_KEY密钥IP2Location API key for enhanced IP intelligence (search_ip2location tool)ABUSEIPDB_API_KEY密钥AbuseIPDB API key for IP abuse reputation checks (search_abuseipdb tool)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
20收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| string | 是 | ||
| json_output | boolean | 否 | 以结构化 JSON 格式返回结果。 |
详细介绍
mcp-name: io.github.OpenOSINT/openosint
OpenOSINT
面向安全研究人员和分析师的 OSINT(开源情报)Agent:通过自然语言界面提供 21 种调查工具,并附带 MCP(Model Context Protocol)服务,让任何兼容 MCP 的 AI 客户端都能直接调用这些工具。
可将其用作 REPL、命令行、MCP 服务或浏览器 Web UI。
工具结果来自真实执行,每项发现都会显示生成该结果的工具调用。AI 摘要只是需要核实的线索,并非证据。
基于此引擎构建的托管版本:
- Monitor:定期检查域名的电子邮件身份验证、TLS、安全标头和相似域名;当情况恶化时发送电子邮件通知。一个域名可免费使用。
- Diligence:针对英国公司及任何拥有 LEI 的公司,从官方登记处和制裁名单中获取尽职调查信号,并注明每项信号的来源和检索时间。
文档: https://openosint.tech/docs/
OpenOSINT 是一款用于被动检查公开信息的开源引擎;托管产品基于此引擎构建,以下所有内容均免费且采用 MIT 许可证。
自托管(免费,MIT)
pip install openosint
# Grade a domain's external exposure A-F (no API key, no AI provider)
openosint exposure example.com
# Interactive AI REPL (default)
openosint
# Web interface
openosint web
试用在线演示 → — 自备 Anthropic / OpenRouter / Ollama 密钥,无需注册。
用法
启动 REPL 并调查任意目标——Agent 会决定运行哪些工具,并根据发现串联调用:
openosint > investigate example.com
-> search_dns('example.com')
-> search_whois('example.com')
-> search_rdap('example.com')
Report saved -> reports/2026-05-11_14-32-11_report.md
功能
| 能力 | 详情 |
|---|---|
| AI 工具链式调用 | Agent 会根据调查结果选择并串联工具;使用自然语言描述目标 |
| 21 个模块化工具 | 电子邮件、用户名、数据泄露、WHOIS、RDAP、IP、子域名、搜索运算符、粘贴站点、电话、Shodan、VirusTotal、Censys、IP2Location、AbuseIPDB、GitHub、DNS、GDELT 新闻地理位置、实时搜索运算符、URL 抓取、SERP 足迹 |
| 三种 AI 后端 | Anthropic Claude(默认)、本地 Ollama,或任何兼容 OpenAI 的端点(LiteLLM、vLLM、LM Studio,……) |
| 原生 MCP 服务 | 21 个工具中有 16 个为被动工具,默认启用。服务默认列出 20 个工具(这 16 个工具,以及 4 个图谱和批处理辅助工具);使用 --allow-active 时列出 25 个(默认被动);可通过 uvx 运行,无需单独安装 |
| 并行执行 | --parallel 通过 asyncio.gather() 并发运行互补工具 |
| 报告 | 每次调查后自动保存 PDF 和 Markdown 报告(reportlab 为可选项) |
| 会话历史 | 所有 REPL 会话均保存到 ~/.openosint/history/;使用 openosint history 浏览 |
| Web UI | 基于浏览器的 AI 聊天界面,支持流式输出、工具卡片以及浅色/深色主题 |
调查结果会实时显示在地球仪上——点击某个点即可转入后续调查。观看更清晰的 MP4。
确定性合成数据演示——所有显示的实体均为虚构;可通过 demo/web_demo.py 重新生成。
实体是在陈述层预置的,并非由当前映射器生成——详见 demo/README.md。
法律免责声明:OpenOSINT 仅供合法且经授权的用途。 用户须独自负责确保其使用符合所有适用法律法规。 作者对任何滥用行为概不负责。请参阅 DISCLAIMER.md。
工具
| 工具 | 基于 | 调查内容 |
|---|---|---|
search_email | holehe | 与电子邮件地址关联的社交账号(请求量大,默认关闭) |
search_username | sherlock | 用户名在 400+ 个平台上的出现情况(请求量大,默认关闭) |
search_breach | HaveIBeenPwned v3 API | 数据泄露暴露情况 |
search_whois | python-whois | 域名注册人和 DNS 信息 |
search_ip | ipinfo.io | 地理位置、ASN、主机名 |
search_domain | sublist3r | 子域名枚举(请求量大,默认关闭) |
generate_dorks | 内置 | 12 个定向 Google dork URL(不进行网络调用) |
search_paste | psbdmp.ws | Pastebin 泄露内容提及 |
search_phone | phoneinfoga | 运营商、国家、线路类型(网络行为未经验证,默认关闭) |
search_shodan | Shodan API | 开放端口、横幅、CVE |
search_virustotal | VirusTotal API v3 | 70+ 个杀毒引擎的判定结果 |
search_ip2location | IP2Location.io API | 增强型 IP 情报:VPN/Proxy/Tor/数据中心标记(赞助支持) |
search_censys | Censys Search API | 面向互联网的基础设施、证书 |
search_abuseipdb | AbuseIPDB v2 API | IP 滥用信誉:置信度分数、报告、国家、ISP |
search_github | GitHub REST API | 个人资料、仓库、通过提交发现的电子邮件、用户名/关键词搜索 |
search_dns | dnspython(内置) | A/AAAA/MX/NS/TXT/CNAME/SOA 记录;SPF、DMARC、DKIM 分析 |
search_rdap | RDAP(IANA 引导,无需密钥) | 注册商、注册/到期日期、名称服务器、状态;根据政策隐去注册人联系信息 |
search_gdelt_geo | GDELT 15-minute GKG feed(无需密钥) | 在地图上标注的近期全球新闻:标题、链接、地点;GeoJSON 输出 |
search_dorks_live | Bright Data¹ SERP API | dork 查询的实时 Google 搜索结果(标题、URL、摘要) |
scrape_url | Bright Data Web Unlocker | 获取任意 URL,绕过 Cloudflare/CAPTCHA — 返回整洁的 Markdown(会访问目标,默认关闭) |
search_footprint | Bright Data SERP API | 可识别实体类型的公开搜索引擎足迹:检测电子邮件/用户名/域名/电话/姓名,并返回结构化结果和实体关联图节点/边 |
完整的工具文档、CLI 标志和输出格式:openosint.tech。
默认被动
OpenOSINT 以被动模式启动:Agent 和 MCP 客户端只能使用查询第三方数据源或在本地计算的工具。会接触目标基础设施,或从你的 IP 地址向目标发送大量请求的工具,在你选择启用前都处于关闭状态。调用这些工具时,它们不只是被拒绝,而是根本不会提供给模型,MCP 客户端也不会在 tools/list 中看到它们。
| 级别 | 含义 |
|---|---|
| passive | 查询第三方数据源或在本地计算;不会从你的设备向目标自身的基础设施发送请求。标准 DNS 查询是唯一的间接例外:它们会通过你的解析器访问目标的名称服务器(参见 search_dns)。 |
| touches target | 发送目标基础设施可见的请求(目标的 Web 服务器、DNS 探测,或代你获取其 URL 的服务)。 |
| noisy | 请求量大,或向多个第三方服务发送关于目标的请求;可能遇到速率限制、WAF 拦截,也可能触发警报。 |
| unverified | 网络行为尚未通过流量捕获验证;按非被动处理。 |
| inherits | 扇出工具;仅运行当前模式允许的操作。 |
| 被动查询并不意味着隐私安全。 你查询的每项第三方服务都会看到你的搜索内容,通常还会看到你的 API 密钥或 IP 地址。请将对 Shodan、HIBP、VirusTotal、Bright Data 等类似服务的查询视为对这些服务提供商可见。 |
请明确启用主动工具(每项工具都标注了噪声级别):
| 位置 | 方法 |
|---|---|
| CLI / REPL | openosint --allow-active … |
| 任意进程 | OPENOSINT_ALLOW_ACTIVE=1 |
| Web UI | 设置 → "Enable active tools"(仅限环回地址) |
| MCP 服务 | uvx --from openosint openosint-mcp --allow-active(若已安装,也可使用 openosint-mcp --allow-active),或在客户端的 env 块中设置 OPENOSINT_ALLOW_ACTIVE=1 |
无论设置如何,公开可访问的实例或演示实例都无法启用主动工具。如果请求了已禁用的工具,它会返回结构化的 disabled_in_passive_mode 结果,并说明如何启用。
工具调用上限。 每个用户请求受 OPENOSINT_MAX_TOOL_CALLS 限制(默认:15 次调用;每条新消息都会重置)。investigate_multi 的所有目标共用一个上限(OPENOSINT_MAX_TOOL_CALLS_MULTI,默认 30 次)。达到上限后,调查会停止并显示明确提示。自行驱动工具的 MCP 客户端不受服务端上限限制;只有 investigate_multi 受限。
| 工具 | 级别 | 默认状态 | 实际发送的内容和发送位置 |
|---|---|---|---|
generate_dorks | 被动 | 开启 | 在本地构建 Google 搜索 URL;不发送任何内容。 |
graph_export | 被动 | 开启 | 仅读取本地图数据库。 |
graph_neighbors | 被动 | 开启 | 仅读取本地图数据库。 |
graph_review_candidates | 被动 | 开启 | 仅读取本地图数据库。 |
investigate_graph | 继承 | 开启 | 从一个种子开始串联工具;在被动模式下,仅调用被动工具。 |
investigate_multi | 继承 | 开启 | 在共享工具调用上限下,为每个目标运行一个 Agent;除非启用主动模式,否则为被动模式。 |
scrape_url | 触及目标 | 关闭 | Bright Data 会获取该 URL,因此目标服务器会记录一条请求(请求来自 Bright Data 的 IP,而非你的 IP)。 |
search_abuseipdb | 被动 | 开启 | 向 api.abuseipdb.com 发送一次请求。 |
search_breach | 被动 | 开启 | 向 haveibeenpwned.com 发送一次请求。 |
search_censys | 被动 | 开启 | 调用 Censys API;返回 Censys 已持有的数据。 |
search_dns | 被动 | 开启 | 记录查询通过你的 DNS 解析器进行;目标的名称服务器看到的是解析器,而不是你。**主动部分:**DKIM 选择器探测(枚举)仅在启用主动工具时运行。 |
search_domain | 嘈杂 | 关闭 | sublist3r 从你的 IP 抓取多个搜索引擎和聚合网站;可能遇到验证码和封锁。 |
search_dorks_live | 被动 | 开启 | 通过 Bright Data 获取 Google 结果;目标会发送给这两项服务。 |
search_email | 嘈杂 | 关闭 | holehe 使用你的 IP,通过电子邮件地址探测许多网站的注册/重置流程;可能通知账户所有者或触发安全警报。 |
search_footprint | 被动 | 开启 | 通过 Bright Data 发起最多 3 次 Google 查询;目标会发送给这两项服务。 |
search_gdelt_geo | 被动 | 开启 | 下载 GDELT 的公开新闻源并在本地筛选;搜索词不会离开你的设备。 |
search_github | 被动 | 开启 | 向 api.github.com 发送少量请求。 |
search_ip | 被动 | 开启 | 向 ipinfo.io 发送一次请求。 |
search_ip2location | 被动 | 开启 | 向 api.ip2location.io 发送一次请求。 |
search_paste | 被动 | 开启 | 向 psbdmp.ws 发送一次请求。 |
search_phone | 未验证 | 关闭 | 运行 phoneinfoga;尚未通过流量捕获验证它在网络上发送的内容。 |
search_rdap | 被动 | 开启 | 查询 IANA 和注册局的 RDAP 服务器,而非目标。 |
search_shodan | 被动 | 开启 | 调用 Shodan API;读取 Shodan 现有索引,不会请求新的扫描。 |
search_username | 嘈杂 | 关闭 | sherlock 从你的 IP 向数百个网站发送请求;可能遇到速率限制和 WAF 封锁。 |
search_virustotal | 被动 | 开启 | IP、域名和哈希查询读取 VirusTotal 的现有数据。提交 URL 是单独的主动模式,默认关闭:它会让 VirusTotal 获取该 URL,并使其对 VirusTotal 社区可见。 |
search_virustotal(URL 提交) | 触及目标 | 关闭 | VirusTotal 会获取提交的 URL,且该 URL 会对 VirusTotal 社区可见,这可能会暴露你的调查。 |
search_whois | 被动 | 开启 | 查询注册局/注册商的 WHOIS 服务器,而非目标。 |
此表说明了各工具根据其代码实际执行的操作。但这并不保证远程服务或 holehe、sherlock、sublist3r、phoneinfoga 等第三方二进制程序会如何处理请求。
search_email
使用 holehe 枚举与电子邮件地址关联的在线服务。默认关闭,因为该工具会产生较多网络活动:需要安装 holehe 二进制程序,并启用 --allow-active(或设置 OPENOSINT_ALLOW_ACTIVE=1)。
openosint --allow-active email [email protected]
[+] Spotify https://open.spotify.com/user/target
[+] WordPress https://wordpress.com/target
[+] Gravatar https://gravatar.com/target
[+] Office365 email used
search_username
使用 sherlock 跨 400 多个平台搜索用户名。
openosint username johndoe99
[+] GitHub https://github.com/johndoe99
[+] Twitter https://twitter.com/johndoe99
[+] Reddit https://reddit.com/user/johndoe99
search_breach
通过 HaveIBeenPwned v3 API 检查数据泄露情况。需要 HIBP_API_KEY。
[+] LinkedIn (2016-05-05) — leaked: Email addresses, Passwords
[+] Adobe (2013-10-04) — leaked: Email addresses, Password hints
search_whois
使用 python-whois 获取 WHOIS 数据。
[+] Registrar: ICANN
[+] Created: 1995-08-14
[+] Expires: 2024-08-13
[+] Name Servers: A.IANA-SERVERS.NET
search_ip
通过 ipinfo.io 获取地理位置和 ASN 数据。免费额度:每月 50k 次。
[+] Hostname: dns.google
[+] Org: AS15169 Google LLC
[+] City: Mountain View, CA, US
search_domain
使用 sublist3r 枚举子域名。
[+] mail.example.com
[+] dev.example.com
[+] api.example.com
generate_dorks
为任意目标生成 12 个有针对性的 Google dork URL。不发起网络请求。
[+] "johndoe" site:linkedin.com
https://www.google.com/search?q=%22johndoe%22+site%3Alinkedin.com
[+] "johndoe" leaked OR breach OR dump
https://www.google.com/search?q=%22johndoe%22+leaked+OR+breach+OR+dump
search_paste
通过 psbdmp.ws 搜索 Pastebin 泄露内容。
[+] https://pastebin.com/aB1cD2eF (2023-04-12)
[+] https://pastebin.com/xY3zA4bC (2022-11-08)
search_phone
使用 phoneinfoga 收集电话号码情报。请使用 E.164 格式。
[+] Country: United States
[+] Carrier: AT&T
[+] Line type: Mobile
search_shodan
输入 IPv4 地址 → 查询主机(开放端口、组织、CVE)。其他查询 → 搜索横幅信息/关键词。需要 SHODAN_API_KEY。
openosint shodan 8.8.8.8
openosint shodan "apache port:80 country:DE"
[+] Org: Google LLC | Open ports: 53, 443
search_virustotal
通过 VirusTotal 的 70 多个引擎检查 IP、域名、URL 或文件哈希。自动检测输入类型。需要 VIRUSTOTAL_API_KEY。
openosint virustotal 8.8.8.8
openosint virustotal example.com
openosint virustotal 44d88612fea8a8f36de82e1278abb02f
[VirusTotal] Malicious: 0 / Harmless: 72
search_ip2location
查询 IP2Location.io,获取增强型 IP 情报:地理位置、ISP、ASN,以及在 Security Plan 中提供的 VPN/Proxy/Tor/数据中心检测。赞助集成。需要 IP2LOCATION_API_KEY。
openosint ip2location 8.8.8.8
[IP2Location] City: Mountain View, CA, US | ISP: Google LLC
[IP2Location] VPN: No | Proxy: No | TOR: No | Datacenter: Yes
search_censys
IPv4 → 主机视图(开放端口、服务、ASN)。域名 → 证书搜索(SAN、签发者)。需要 CENSYS_API_ID 和 CENSYS_SECRET。
openosint censys 8.8.8.8
openosint censys example.com
[Censys] Open Ports: 53, 443, 853 | ASN: AS15169 Google LLC
search_abuseipdb
通过 AbuseIPDB v2 检查 IP。返回滥用置信度评分、报告总数、国家/地区、ISP 和最近报告时间戳。需要 ABUSEIPDB_API_KEY。
openosint abuseipdb 198.51.100.1
[AbuseIPDB] Abuse Confidence Score: 87% | Total Reports: 143
⚠️ HIGH ABUSE CONFIDENCE — flagged by AbuseIPDB
当 abuseConfidenceScore 超过 50% 时会显示警告。
search_github
查询 GitHub REST API。用户名 → 个人资料、仓库、通过提交记录发现的邮箱。关键词 → 搜索用户/仓库。可选的 GITHUB_TOKEN 可将速率限制从每小时 60 次提高到 5000 次。
openosint github johndoe99
[GitHub] Repos: 42 | Followers: 128
[GitHub] Commit email: [email protected]
search_dns
使用 dnspython 查询 A/AAAA/MX/NS/TXT/CNAME/SOA 记录,并分析 SPF、DMARC 和 DKIM 配置(不调用外部 API)。
openosint dns example.com
[DNS] A: 93.184.216.34
[DNS] MX: mail.example.com (priority 10)
[DNS] SPF: v=spf1 include:_spf.google.com ~all
search_rdap
通过 RDAP 查询域名的注册商、注册和到期日期、名称服务器及状态码。RDAP 是 WHOIS 的机器可读后继协议。无需密钥:它会查询 IANA 引导注册表以确定负责该 TLD 的服务,然后向该服务发起查询。注册人联系信息会根据注册局政策予以隐藏,绝不会返回。
[+] Registrar: RESERVED-Internet Assigned Numbers Authority
[+] Registered: 1995-08-14T04:00:00Z
[+] Name servers: elliott.ns.cloudflare.com, hera.ns.cloudflare.com
search_gdelt_geo
近期、带地理位置信息的全球新闻。旧版 GDELT GEO 2.0 API 已停用(会返回 HTTP 404),因此此工具会读取 GDELT 的 15 分钟 GKG 文章 feed(data.gdeltproject.org,无需密钥或账户),并在内存中保留最近 6 小时的文章。每篇文章都包含标题、链接和提及的地点;查询会与标题和 URL 匹配(支持带引号的短语和 OR;* 表示全部),并按地点分组显示结果。系统会舍弃国家级提及,因此地图上的点标记的是城市和地区,而非国家中心。
首次使用此工具前不会下载任何内容,因此从未打开地球视图的本地安装不会获取 GDELT 文件。首次搜索只会加载最新的 15 分钟文件并据此作答;较早的文件会在后台加载,结果(以及地球视图)会说明覆盖范围,例如 News: last 15 min — older articles still loading。此后,无论运行多少次搜索,上游流量都是每 15 分钟下载一个小文件。
GDELT geolocated news for 'ukraine': 53 location(s), 471 article mention(s). Coverage: the last 6 h.
[+] Kyiv, Kyyiv, Ukraine (50.4333, 30.5167) — 38 article(s)
在地球视图上选择一个区域(按住 Shift 并拖动),即可只搜索该区域内的内容。发生故障时(feed 中断、文件过大或损坏),工具会返回一个 [service_unavailable] search_gdelt_geo 结果,地球视图则会显示通知,而非空白图层。
| 变量 | 默认值 | 用途 |
|---|---|---|
OPENOSINT_GDELT_WINDOW_HOURS | 6 | 文章保留的时间范围(1–24)。完整的 6 小时窗口约保留 23,000 篇文章,并占用约 65 MB 内存。 |
OPENOSINT_GDELT_MAX_ARTICLES | 30000 | 存储文章数量的硬上限;超出时优先删除最旧的文章。 |
OPENOSINT_GDELT_USE_PROXY | 关闭 | 通过 OPENOSINT_PROXY_URL 转发 GDELT 下载(默认绕过代理:该 feed 是公开的)。 |
署名和条款。 新闻数据:The GDELT Project。GDELT 的使用条款指出:“GDELT Project 发布的所有数据集均可免费用于任何类型的学术、商业或政府用途,不受限制。”以及“任何使用或重新分发数据的行为都必须注明 GDELT Project,并附上指向本网站(https://www.gdeltproject.org/)的链接。”(引文日期:2026-10-06)。地球视图会在地图署名中保留 GDELT 署名。标题和链接来自第三方新闻网站,并以纯文本形式显示。
search_dorks_live
通过 Bright Data SERP API¹ 执行实时 Google dork 查询,并返回结构化结果(标题、URL、摘要)。默认每次运行 5 条 dork;每条都会产生单独的计费 API 调用。需要 BRIGHTDATA_API_KEY 和 BRIGHTDATA_SERP_ZONE。
openosint search-dorks-live "john doe" --max-dorks 3
[+] Dork: "john doe" site:linkedin.com
Title: John Doe | LinkedIn
URL: https://www.linkedin.com/in/john-doe-12345
scrape_url
通过 Bright Data Web Unlocker¹ 获取任意公开 URL 的内容,绕过 Cloudflare/CAPTCHA。返回格式整洁的 Markdown。需要 BRIGHTDATA_API_KEY 和 BRIGHTDATA_UNLOCKER_ZONE。
openosint scrape https://example.com
[Web Unlocker] Remote status: 200
# Example Domain
This domain is for use in illustrative examples in documents.
search_footprint
通过 Bright Data SERP API¹ 收集目标在公开搜索引擎上的足迹。此工具会检测实体类型(电子邮件、用户名、域名、电话号码或全名),并运行适配实体类型的 Google 查询,返回结构化结果,以及针对已发现域名和个人资料的实体关联图节点/边。需要 BRIGHTDATA_API_KEY 和 BRIGHTDATA_SERP_ZONE。
openosint footprint johndoe99
Graph 模块(可选)
一个附加的 FollowTheMoney 实体图谱——包含语句级来源信息、仅追加存储、非破坏性 same_as 去重和人工审核队列——与上述工具并存,不会对它们作任何更改。在普通的 uvx openosint web 安装中,无需编译器或额外组件,即可使用存储、/graph 页面、/api/graph/* 路由以及 graph_neighbors / graph_review_candidates MCP 工具。graph extra(pip install "openosint[graph]",会构建 PyICU)会添加真正的 FollowTheMoney 库:graph_export 和 .ftm 导出。graph-dedup extra(Python 3.11+)会添加 same_as 评分。未安装 extra 时,ID 由一份 vendored 副本生成;CI 测试会验证其与 FollowTheMoney 生成的 ID 逐字节一致,因此无论哪种情况都能读取 graph.db。Web UI 和 Agent 都不会向此存储写入内容:它通过 Python API 填充(完整指南和示例见 docs/graph.md);主 UI 中的 GRAPH 选项卡则是当前聊天内容的独立客户端视图。
docs/graph.md 中的终端演示端到端展示了相同的工作流,包括通过 ftm validate 验证的 .ftm 导出;Web UI 演示见本 README 顶部的演示。
外部暴露面报告(测试版)
openosint exposure 从外部检查一个域名,并为其评定 A-F 等级。这是一份特定时间点的报告:检查组织级别的电子邮件身份验证、TLS、域名注册和安全标头,还可选检查相似域名。电子邮件、注册信息和相似域名检查均为被动检查(仅使用 DNS 和 RDAP);TLS 和安全标头检查会在目标的 443 端口建立一次连接。无需 AI 提供商或 API 密钥。
openosint exposure example.com # terminal summary and grade
openosint exposure example.com --json # structured JSON
openosint exposure example.com --report out.html --lang it # self-contained HTML report (it or en)
openosint exposure example.com --lookalikes # also look for registered typo/homoglyph/TLD-swap domains
openosint exposure example.com --resolver 1.1.1.1 # recursive resolver for lookups outside the domain's own nameservers
openosint exposure example.com --checks email,registration # passive checks only: never contacts the target
--checks 可接受 email、registration、tls、http_headers 中的任意选项(默认:全部四项)。选择部分检查时不会评分:报告不会显示等级或分数,因为仅根据部分检查结果给出的等级会被误认为完整结果。在 Python 中:run_exposure("example.com", checks=PASSIVE_CHECKS)(两个名称均从 openosint.exposure.api 导入);报告的 not_run 会列出未执行的检查。
想每周检查一次、保留历史记录,并在等级下降时收到电子邮件通知? OpenOSINT Monitor 会为你运行检查,一个域名可免费使用。
| 检查项 | 噪声级别 | 连接对象 |
|---|---|---|
| 电子邮件身份验证(SPF、DMARC、DKIM、MX) | 被动 | 仅 DNS |
| 域名注册信息(注册时长、到期时间、DNSSEC) | 被动 | RDAP 注册局,而非目标 |
相似域名(--lookalikes) | 被动 | 仅 DNS;绝不会连接相似域名的 Web 服务 |
| TLS 证书和协议 | 接触目标 | 与目标在 443 端口进行 TLS 握手(域名和 www) |
| 安全标头 | 接触目标 | 向 https://DOMAIN/ 发送一次 HTTPS GET 请求(会跟随重定向) |
它不会扫描端口、登录任何系统或收集个人数据。此等级不是认证,也不能证明符合 NIS2 或其他任何合规要求。相似域名仅通过 DNS 查找,绝不计入等级。
此功能目前为测试版:检查项、评分方式和报告格式可能会在不同版本间更改。HTML 报告页脚会显示其 report_version。
接口
Web UI
uvx openosint web
# or: pip install openosint && openosint web
# Opens http://localhost:8080 automatically
基于浏览器的 AI 聊天,支持工具输出流式传输、内嵌结果卡片以及浅色/深色主题切换。支持通过 Ollama 或任何兼容 OpenAI 的端点进行本地推理,无需 Anthropic API 密钥。
哪些主机和网站可以与服务通信。 在绑定到环回地址时,服务只响应 Host 为 127.0.0.1、localhost 或 ::1 的请求。浏览器发出的每个 /api/* 请求都必须来自 UI 自身的源;跨站请求会被拒绝(不发送 Origin 的脚本和 curl 不受影响)。
| 变量 | 使用场景 |
|---|---|
OPENOSINT_ALLOWED_HOSTS | 通过其他名称(局域网名称、Docker 主机名、反向代理)访问 UI 时使用,例如 OPENOSINT_ALLOWED_HOSTS=osint.lan,localhost。多个值以逗号分隔;格式为 host 或 host:port。在非回环绑定(--allow-remote、Docker)下,只有设置此变量才会进行 Host 检查,因此请在这种情况下设置。 |
OPENOSINT_ALLOWED_ORIGINS | 另一个源上的独立前端调用 API 时使用,例如 OPENOSINT_ALLOWED_ORIGINS=http://localhost:3000。多个值以逗号分隔。 |
试用在线演示 → — 自备 Anthropic / OpenRouter / Ollama 密钥,无需注册。
# Fully local (no API key) — requires Ollama runtime: https://ollama.com
ollama pull llama3.2
openosint web
# Settings -> Ollama (local) -> model: llama3.2
# OpenAI-compatible endpoint (LiteLLM, vLLM, LM Studio, ...)
export OPENAI_BASE_URL="http://localhost:4000/v1"
openosint web
# Settings -> OpenAI API
重大变更(v2.28+):密钥的使用方式现在取决于绑定地址,而非环境变量。 绑定到
127.0.0.1/localhost(默认值)时,行为不变:.env中的密钥仍像以前一样生效。绑定到其他任何接口(--host 0.0.0.0,这本来就 需要--allow-remote)时,Web UI 不会使用环境中的密钥 来处理请求;每个调用方都必须提供自己的密钥,并且会彻底禁用 泄露数据查询(search_breach)。无论设置了什么环境 变量,此规则都适用,包括OPENOSINT_DEMO_MODE;它只能增加限制,不能 解除限制。如果你之前在局域网上公开 Web UI,并使用自己的密钥,且前面没有 针对每个调用方的身份验证,那么这种访问方式将不再可用。在反向代理后运行? 回环绑定(
127.0.0.1)只表示 操作系统接受了来自本机的连接;如果前置组件(nginx、Caddy、Docker/K8s sidecar、 隧道)将请求从其他位置转发过来,它并不能说明 谁可以访问该服务。默认情况下,携带代理转发标头(X-Forwarded-For、X-Forwarded-Proto、X-Forwarded-Host、Forwarded、CF-Connecting-IP)的请求会被视为 与非回环绑定完全相同:不会使用你的本地密钥,会 阻止泄露数据查询,并告知调用方原因。如果你有意通过反向代理提供此服务, 并希望经该代理转发的请求将其视为普通本地 实例,请设置OPENOSINT_TRUSTED_PROXY=true。 这是一个独立于现有TRUSTED_PROXY的变量(后者只影响速率限制分桶 所归属的 IP——这是风险较低、限制范围本就较宽松的设置,一些可自托管的服务已经启用了它)。 在这里复用该标记会在不征求同意的情况下,悄然将现有的 仅限速率限制的配置升级为同时允许凭据访问。 因此,OPENOSINT_TRUSTED_PROXY有自己的明确 opt-in。设置它并不意味着会盲目信任 转发标头的内容——内部不一致的值(例如,同一个请求中两个 相互矛盾的X-Forwarded-Proto值)仍会被视为 公网请求。设置OPENOSINT_TRUSTED_PROXY=true意味着你选择向反向代理 转发到此实例的任何人提供凭据验证查询——你要对他们的查询负责, 这与任何托管服务运营者对其用户所承担的责任相同。如果代理转发的对象超出你的预期, 请在前面配置真正的身份验证。
交互式 REPL
不带任何参数运行 openosint,即可启动 AI 驱动的 REPL:
REPL 命令:
| 命令 | 描述 |
|---|---|
<target> | 调查任意目标——电子邮件、用户名、域名、IP、姓名 |
clear | 重置对话记忆 |
save | 将上一份报告保存到 reports/ |
tools | 列出可用工具及其状态 |
config | 显示当前配置 |
history | 浏览已保存的会话 |
help | 显示所有命令 |
exit / Ctrl-D | 退出 |
所有会话都会自动保存到 ~/.openosint/history/。使用 openosint history 浏览。
使用兼容 OpenAI 的后端运行 REPL/CLI:
pip install "openosint[openai]"
openosint --provider openai \
--openai-base-url http://localhost:4000/v1 \
--openai-model gpt-4o-mini
在线文档
完整的工具参考、CLI 标志和配置选项请访问 openosint.tech。
MCP 服务
无需单独安装,即可向任何兼容 MCP 的 AI 客户端开放 OpenOSINT。必须先安装 uv;随后 uvx 会按需获取并运行 openosint。默认情况下,服务会列出 20 个条目(16 个被动工具,以及 4 个图谱和批处理辅助工具);使用 --allow-active 时会列出 25 个(参见默认被动模式)。
所有客户端运行的命令都相同:
uvx --from openosint openosint-mcp # passive tools only (20 listed)
GUI 客户端(Claude Desktop、Cursor)启动时通常使用精简的 PATH,其中不包含 uvx。如果服务无法启动,请将 "uvx" 替换为 which uvx(macOS/Linux)或 where uvx(Windows)输出的绝对路径。
Claude Code:
claude mcp add openosint -- uvx --from openosint openosint-mcp
claude mcp list
添加 API 密钥(-e 标志必须放在 -- 之前):
claude mcp add openosint -e SHODAN_API_KEY=your-key -e HIBP_API_KEY=your-key -- uvx --from openosint openosint-mcp
可选,可启用主动工具: 在
openosint-mcp后追加--allow-active,或添加-e OPENOSINT_ALLOW_ACTIVE=1。这会开放有噪声且会触及目标的工具(列出的工具从 20 个增至 25 个);请先查看噪声表。
Claude Desktop — 编辑 claude_desktop_config.json,然后重启应用:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"openosint": {
"command": "uvx",
"args": ["--from", "openosint", "openosint-mcp"],
"env": {
"SHODAN_API_KEY": "your-key",
"HIBP_API_KEY": "your-key"
}
}
}
}
可选,可启用主动工具: 在
args中添加"--allow-active",或在env中添加"OPENOSINT_ALLOW_ACTIVE": "1"。这会开放有噪声且会触及目标的工具(列出的工具从 20 个增至 25 个);请先查看噪声表。
Cursor — 将相同的代码块添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(每个项目);上述可选的主动工具设置同样适用:
{
"mcpServers": {
"openosint": {
"command": "uvx",
"args": ["--from", "openosint", "openosint-mcp"],
"env": { "SHODAN_API_KEY": "your-key" }
}
}
}
API 密钥应放在客户端的 env 块中。MCP 宿主启动服务时使用的工作目录与项目无关,因此无法可靠地读取 .env 文件;如需使用,请在同一 env 块中设置 "OPENOSINT_ENV_FILE": "/absolute/path/to/.env"。
默认情况下,服务仅列出被动工具,因此客户端的大模型无法看到有噪声的工具。每个工具描述都会标明其噪声等级。使用 --from openosint==2.36.1 固定版本。若要从源代码检出目录运行,请使用:"command": "python", "args": ["-m", "openosint.mcp_server"]。
通过 Claude Code 进行 Agent 式使用:
$ claude
> Investigate [email protected]. Trace any username found
across other platforms and compile a full report.
安装
快速入门 — 一条命令启动 Web 界面
安装一次 uv。它会在独立的隔离环境中运行 OpenOSINT,因此无需配置 Python:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
然后启动 OpenOSINT(如果找不到 uvx,请先打开一个新终端):
uvx openosint web
你应该会看到:
[*] OpenOSINT x.y.z web server
[*] App → http://127.0.0.1:8080/
[*] Data → /home/you/.openosint
浏览器会自动打开;如果没有,请访问 http://127.0.0.1:8080/。启动时无需 .env 文件或 API 密钥——无需密钥的工具可以立即使用,而 AI 聊天需要提供商密钥(ANTHROPIC_API_KEY)或本地 Ollama。
| 想要…… | 操作 |
|---|---|
| 使用其他端口 | uvx openosint web --port 8081(如果 8080 端口正忙,OpenOSINT 会退出并提示你) |
| 不打开浏览器 | uvx openosint web --no-browser |
| 查找数据 | 图数据库和会话历史位于 ~/.openosint/(Windows 上为 %USERPROFILE%\.openosint)。通过 OPENOSINT_HOME=/path 移动数据;OPENOSINT_GRAPH_DB 仍仅覆盖 graph.db。 |
| 查找报告 | CLI 和 REPL 报告会写入你运行 openosint 所在目录下的 ./reports/。Web 界面不会写入报告。 |
| 使用实体图存储 | 直接运行 uvx openosint web 即可,无需编译器:可使用 /graph 页面、/api/graph/* 以及 graph_neighbors / graph_review_candidates MCP 工具。graph_export(.ftm)需要 graph extra,该选项会构建 PyICU,因此需先安装 libicu 和 C++ 编译器(Ubuntu:sudo apt install libicu-dev pkg-config g++;macOS:brew install icu4c pkg-config 并运行 export PKG_CONFIG_PATH="$(brew --prefix icu4c)/lib/pkgconfig"),然后运行 uvx --from "openosint[graph]" openosint web;也可以使用包含这些依赖的 Docker。存储初始为空:数据通过 Python API 写入,而非通过界面写入。 |
其他选项
# pip (Python 3.10+)
pip install openosint
openosint web
# Updating
pip install --upgrade openosint
# From source
git clone https://github.com/OpenOSINT/OpenOSINT.git
cd OpenOSINT
pip install -e .
外部二进制文件(必须位于 PATH 中):
| 二进制文件 | 用途 | 安装 |
|---|---|---|
holehe | 枚举电子邮件账户 | pip install holehe |
sherlock | 枚举用户名(400 多个平台) | pip install sherlock-project |
sublist3r | 枚举子域名 | pip install sublist3r |
phoneinfoga | 电话号码情报 | 下载二进制文件 |
如果缺少某个二进制文件,相应工具会返回说明性错误。其他所有工具仍可正常运行。
可选 Python 包:
| 包 | 用途 | 安装 |
|---|---|---|
ollama | 本地 LLM 后端(无需 API 密钥) | pip install "openosint[ollama]" (还需要 Ollama runtime) |
openai | OpenAI 兼容后端 | pip install "openosint[openai]" |
shodan | Shodan API 客户端 | pip install "openosint[shodan]" |
reportlab | 导出 PDF 报告 | pip install "openosint[pdf]" |
censys | Censys API 客户端 | pip install "openosint[censys]" |
配置
**最简单的方式:**打开 Web 界面。在本地安装时,默认情况下,Settings 会将密钥保存在这台
计算机上(“Save on this computer”),首次运行面板也会如此;“Use only
for this browser session”是次要选项,只会将密钥保存在当前标签页中。在
公开演示版中,密钥会保存在浏览器中。密钥会写入数据目录中的 config.env
(~/.openosint/config.env,或 $OPENOSINT_HOME/config.env),绝不会写入已安装的
软件包;在操作系统支持的情况下,文件权限仅允许当前用户访问(0600)。
密钥值绝不会被记录到日志或发送回浏览器;界面只会显示已配置的密钥及各值的来源。
优先级从高到低:
- 实际环境变量(已保存的值无法覆盖它;界面会对此进行提示)
- 数据目录中的
config.env - 旧版
.env(以下位置) 现有的.env仍可继续使用。如果包根目录下的文件(源码检出目录或 Docker 镜像)是将要加载的文件,其中已知的设置会被复制到config.env中一次,并在 stderr 上显示一条通知,其中列出键名,但绝不显示值;旧文件会保留,且优先级会降低。
如果要自行管理文件,请将 .env.example 复制为 .env,并填入密钥。.env 会从运行 openosint 的目录读取(像 git 查找 .git 一样向上搜索)——它不需要位于任何特定的“项目根目录”,普通的 pip install 与从源码检出目录运行的方式相同。设置 OPENOSINT_ENV_FILE=/path/to/.env 可指定文件路径(这对 MCP 服务很有用,因为它由宿主在任意工作目录中启动)。真实的环境变量始终优先于 .env 中的值。
下表中的 Required 表示该设置是特定工具运行所必需的,而非 openosint 本身所必需——应用程序可以启动,所有无需密钥的工具也都能在零配置下使用。
| 变量 | 工具 | 是否必需 | 用途 |
|---|---|---|---|
ANTHROPIC_API_KEY | AI agent(REPL/Web UI) | 是,除非使用 Ollama 或兼容 OpenAI 的端点 | Anthropic API 密钥 |
ANTHROPIC_MODEL | AI agent | 可选 | 要请求的模型名称(默认:claude-sonnet-5)。替代已弃用的 OPENOSINT_MODEL。 |
OPENAI_BASE_URL | AI agent | 可选 | 兼容 OpenAI 的端点基础 URL(例如 http://localhost:4000/v1) |
OPENAI_API_KEY | AI agent | 可选 | 端点的 API 密钥(本地服务可能会忽略它) |
OPENAI_MODEL | AI agent | 可选 | 要请求的模型名称(默认:gpt-4o-mini) |
OPENOSINT_GDELT_WINDOW_HOURS | search_gdelt_geo | 可选 | 保留在内存中的新闻小时数(默认 6,最大 24)。参见 search_gdelt_geo。 |
OPENOSINT_GDELT_MAX_ARTICLES | search_gdelt_geo | 可选 | 存储文章数量上限(默认 30000;优先删除最旧的文章) |
OPENOSINT_ENV_FILE | 全部 | 可选 | .env 文件的显式路径,覆盖上述目录搜索方式 |
OPENOSINT_SETUP_TOKEN | Web UI | 可选 | 浏览器不在回环地址上时(Docker)允许保存密钥。通过 X-Setup-Token 发送;UI 中有对应的输入框。未设置 = 禁止从非回环浏览器保存。失败尝试会受到限流。 |
HIBP_API_KEY | search_breach | 此工具必需 | HaveIBeenPwned v3 — 获取密钥 |
IPINFO_TOKEN | search_ip | 可选 | 无此令牌也可使用;可提高 ipinfo.io 的速率限制 |
SHODAN_API_KEY | search_shodan | 此工具必需 | Shodan API — 获取密钥 |
VIRUSTOTAL_API_KEY | search_virustotal | 此工具必需 | VirusTotal API v3 — 获取密钥 |
IP2LOCATION_API_KEY | search_ip2location | 此工具必需 | IP2Location.io — 获取密钥 (赞助) |
CENSYS_API_ID + CENSYS_SECRET | search_censys | 此工具必需 | Censys — 获取密钥 |
ABUSEIPDB_API_KEY | search_abuseipdb | 此工具必需 | AbuseIPDB v2 — 获取密钥 |
GITHUB_TOKEN | search_github | 可选 | 无此令牌也可使用(60 req/h);可将限额提高到 5000 req/h — 获取密钥 |
BRIGHTDATA_API_KEY | search_dorks_live、scrape_url、search_footprint | 这些工具必需 | Bright Data — 获取密钥¹(免费层级:每月 5,000 req) |
BRIGHTDATA_SERP_ZONE | search_dorks_live、search_footprint | 这些工具必需 | Bright Data SERP 区域名称(例如 serp_api1) |
BRIGHTDATA_UNLOCKER_ZONE | scrape_url | 此工具必需 | Bright Data Web Unlocker 区域名称(例如 web_unlocker1) |
在全新安装且完全没有密钥的情况下,以下工具仍可使用:generate_dorks、 | |||
search_dns、search_whois、search_rdap、search_paste、search_ip | |||
(受速率限制)、search_github(受速率限制)和 search_gdelt_geo。 |
search_email、search_username、search_domain 和 search_phone 也无需密钥,
但默认处于关闭状态,需要设置 --allow-active,并安装相应的外部二进制文件
(holehe、sherlock、sublist3r、phoneinfoga)。
CLI 参考
| 标志 / 子命令 | 描述 |
|---|---|
openosint | 交互式 AI REPL(默认) |
openosint web [--port N] [--no-browser] | 启动浏览器界面 |
openosint exposure DOMAIN | 对域名的外部暴露进行 A-F 评级(参见外部暴露报告) |
openosint --allow-active email ADDRESS [-t N] | 直接扫描电子邮件(会产生较多流量,默认关闭) |
openosint --allow-active username HANDLE [-t N] | 直接扫描用户名(会产生较多流量,默认关闭) |
openosint shodan QUERY [-t N] | 查询 Shodan |
openosint virustotal TARGET [-t N] | 查询 VirusTotal |
openosint censys TARGET [-t N] | 查询 Censys |
openosint ip2location IP [-t N] | 查询 IP2Location |
openosint abuseipdb IP [-t N] | 检查 AbuseIPDB 信誉 |
openosint github QUERY [-t N] | 发现 GitHub 个人资料/仓库/电子邮件 |
openosint dns DOMAIN [-t N] | DNS 记录与电子邮件安全分析 |
openosint search-dorks-live TARGET [--max-dorks N] [-t N] | 通过 Bright Data 获取实时 Google dork 结果¹ |
openosint scrape URL [-t N] | 通过 Bright Data Web Unlocker 获取 URL 内容 |
openosint footprint TARGET [--max-queries N] [-t N] | 通过 Bright Data 进行 SERP 足迹分析 |
openosint multi TARGETS | 并行调查多个目标(最多 10 个) |
openosint exposure DOMAIN [--lookalikes] [--report FILE.html] [--lang it|en] [--resolver IP] | 外部暴露报告,评级为 A-F(测试版) |
openosint playbook RECIPE TARGET | 运行确定性调查手册(不使用 AI) |
openosint history [--all] [open N] [clear] | 查看/管理 REPL 会话历史 |
openosint proxy-test | 验证已配置的上游代理 |
openosint sponsors | 列出当前赞助商和精选集成 |
openosint shell | 默认 REPL 的显式别名 |
--allow-active | 启用主动工具(会产生较多流量或接触目标)。默认关闭;等同于 OPENOSINT_ALLOW_ACTIVE=1 |
-v, --verbose | 启用调试日志并输出到 stderr |
-t, --timeout N | 覆盖子进程超时时间(秒) |
--api-key KEY | Anthropic API 密钥(覆盖环境变量) |
--parallel | 并发运行互补工具 |
--json | 将结果输出为结构化 JSON |
--provider {anthropic,ollama,openai} | AI 提供商(默认:anthropic) |
--ollama-model MODEL | Ollama 模型名称(默认:llama3.2) |
--ollama-host URL | Ollama 服务 URL(默认:http://localhost:11434) |
--openai-base-url URL | OpenAI 兼容端点的基础 URL(环境变量:OPENAI_BASE_URL) |
--openai-model MODEL | 向端点请求的模型(默认:gpt-4o-mini;环境变量:OPENAI_MODEL) |
--openai-api-key KEY | 端点的 API 密钥(环境变量:OPENAI_API_KEY) |
--no-pdf | 禁用自动生成 PDF |
Docker
# Build and run
docker compose up --build
# One-off command
docker compose run --rm openosint exposure example.com --json
.env 是可选的:即使没有密钥,Web UI 仍会在 http://localhost:8080 启动。若要提供密钥,可在 docker-compose.yml 的 environment: 下列出密钥(或放在同目录的 .env 中),也可以将 .env 放入数据卷(/data/.env)。报告会持久化到 ./reports/;图数据库和会话历史保存在 openosint-data 数据卷中(容器内的 /data,通过 OPENOSINT_HOME 指定)。镜像包含图视图。
在 Docker 中通过浏览器保存密钥。 浏览器通过 Docker 网络访问容器,而非通过 loopback,因此 UI 默认无法保存密钥,并会说明原因(而不是静默失败)。你可以在 compose 环境或 .env 中设置密钥,也可以设置令牌并在 UI 的 将密钥保存到服务端 面板中输入:OPENOSINT_SETUP_TOKEN=choose-a-long-random-string docker compose up。保存的密钥会写入 openosint-data 数据卷中的 /data/config.env,并在重启后保留。错误的令牌会受到限流。
端口仅发布到 127.0.0.1,并启用了 Host 检查(compose 文件中的 OPENOSINT_ALLOWED_HOSTS 默认为 localhost,127.0.0.1;如果通过其他名称访问 UI,请扩展此设置)。若要主动从其他机器访问,请运行 OPENOSINT_BIND=0.0.0.0 docker compose up:此时实例会以受限模式运行(不会使用保存在服务端的密钥)。安全提示: UI 的设置端点会接收并存储 API 密钥,因此仅应在你信任的网络上,并置于你信任的防火墙或反向代理之后使用。
警告:
OPENOSINT_PUBLISHED_BIND。docker-compose.yml会将此项设为与OPENOSINT_BIND相同的值,以告知服务端端口发布到哪个地址;精确的 loopback 值(127.0.0.1、localhost、::1)会解除容器绑定到0.0.0.0时通常会触发的限制。如果端口发布到了其他任何网络接口,切勿自行将此项设为 loopback 值,也不要将 compose 端口映射修改为与之不一致。
集成
| 服务 | URL | 工具 | 层级 | 身份验证 |
|---|---|---|---|---|
| IP2Location.io | https://www.ip2location.io | search_ip2location | 精选(赞助) | API 密钥 — 免费层级 |
| AbuseIPDB | https://www.abuseipdb.com | search_abuseipdb | 社区 | API 密钥 — 免费层级 |
| Censys | https://censys.io | search_censys | 社区 | API 密钥 — 免费层级 |
| GitHub | https://github.com | search_github | 社区 | 令牌可选 |
| HaveIBeenPwned | https://haveibeenpwned.com | search_breach | 社区 | API 密钥 — 付费 |
| holehe | https://github.com/megadose/holehe | search_email | 社区 | 无 — 本地二进制文件 |
| ipinfo.io | https://ipinfo.io | search_ip | 社区 | 令牌可选 |
| phoneinfoga | https://github.com/sundowndev/phoneinfoga | search_phone | 社区 | 无 — 本地二进制文件 |
| psbdmp.ws | https://psbdmp.ws | search_paste | 社区 | 无 |
| sherlock | https://github.com/sherlock-project/sherlock | search_username | 社区 | 无 — 本地二进制文件 |
| Shodan | https://shodan.io | search_shodan | 社区 | API 密钥 — 免费层级 |
| sublist3r | https://github.com/aboul3la/Sublist3r | search_domain | 社区 | 无 — 本地二进制文件 |
| VirusTotal | https://www.virustotal.com | search_virustotal | 社区 | API 密钥 — 免费层级 |
| WHOIS (IANA) | https://www.iana.org/whois | search_whois | 社区 | 无 |
| DNS(系统解析器) | — | search_dns | 社区 | 无 |
| Google Search | https://www.google.com | generate_dorks | 社区 | 无 |
限制
- 仅限授权用途。 OpenOSINT 查询公开和半公开来源。 它不会绕过身份验证、利用系统漏洞,也不会访问你无权查看的内容。你有责任遵守法律以及所查询的每个来源的服务条款。请参阅 DISCLAIMER.md。
- 不保证信息聚合结果。 每个工具都会报告其上游来源当前返回的内容。未找到结果(未发现泄露、未发现账号) 仅表示该来源没有报告匹配项,并不代表不存在暴露风险。
- 大多数工具依赖你无法控制的第三方服务。 21 个工具中有 9 个必须提供 API 密钥,且受相应服务商的运行状态、速率限制和定价影响(Shodan、VirusTotal、Censys、AbuseIPDB、IP2Location、HaveIBeenPwned,以及由 Bright Data¹ 提供支持的 3 个工具)。免费套餐的额度有限;大量使用需要向服务商而非 OpenOSINT 购买付费套餐。
- 本地二进制文件是未受沙盒限制的子进程。
holehe、sherlock、sublist3r和phoneinfoga会作为外部进程在你的机器上运行。 请自行保持这些程序为最新版本;OpenOSINT 不会为它们打补丁或进行审查。 - 实体图谱模块(
openosint[graph])是补充信息,而非权威依据。same_as链接是供人工审核的候选项评分结果, 并非经过验证的身份匹配——请参阅 docs/graph.md。 - AI 输出是线索,而非证据。 Agent 只能调用上述工具 (默认情况下只能调用被动工具)。工具结果来自实际执行,并会与生成结果的工具调用一同展示,但模型仍可能误读、错误归因或过度看重某项结果;针对特定目标,其工具选择也可能有误或不完整。采取行动前,请检查工具的原始输出。
支持与商业服务
OpenOSINT 免费提供,并采用 MIT 许可证。以下是支持项目或购买托管版、合同版的可选方式。
- 托管服务: OpenOSINT Monitor,一个域名免费 · OpenOSINT Diligence。
- 赞助: Open Collective · 赞助等级和媒体资料包见 SPONSORSHIP.md · [email protected]。当前赞助商列于下方。
- 商业许可证与支持: 面向采购的供应商合同、保证、赔偿、SLA 或优先支持,费用为每年 €300 起。软件本身无需购买。请参阅 COMMERCIAL.md 或 [email protected]。
精选集成
IP2Location.io — 为 search_ip2location 提供支持 · 集成指南
增强的 IP 地理定位、ISP、VPN/代理/Tor 和数据中心检测
TestMu AI(前身为 LambdaTest)是一个面向现代工程团队的原生 AI 测试云平台。它涵盖从自主测试创建和快速执行,到测试 AI Agent、聊天机器人和语音助手的方方面面。
开放:泄露 / 被盗用的凭证数据 · 电子邮件 / 身份查询 · 住宅代理 — 详见 SPONSORSHIP.md。
贡献
欢迎提交问题和拉取请求。有关开发工作流、集成注册清单和编码规范,请参阅 CONTRIBUTING.md。贡献前请阅读 DISCLAIMER.md。
重新生成演示 GIF/MP4
export OPENOSINT_DEMO_KEY=sk-ant-... # your Anthropic key — never committed
openosint web & # start the web server on :8080
make demo # record -> encode -> write docs/assets/demo-web-graph.*
git add docs/assets/demo-web-graph.*
完整的先决条件和流水线详情,请参阅 scripts/record-demo/README.md。
维护者
Tommaso Bertocchi
- X(个人):https://x.com/SonoTommy_
- X(OpenOSINT):https://x.com/openosint_oss
- LinkedIn:https://www.linkedin.com/company/openosintoss
- 电子邮件:[email protected]
贡献者
| 贡献者 | 贡献 |
|---|---|
| @consocio | 修复 venv/uv-tool 二进制解析问题 — 现在无需单独激活步骤即可找到共同安装的工具(#6) |
许可证
OpenOSINT 根据 MIT License 开源 — 可免费用于任何用途,包括个人、商业、学术和闭源用途。
¹ 本 README 中的 Bright Data 链接为联盟 / 推荐链接 — 如果你通过这些链接注册,OpenOSINT 将获得佣金,你无需支付额外费用。
仅限经授权的安全研究。请参阅 DISCLAIMER.md。
OpenOSINT v2.36.1 — 2026 年 10 月
Star 历史
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。