开源情报工具集

OSINT-MCP是一个提供全面开源情报工具的服务,用于企业攻击面发现,通过42种AI可访问的工具映射公司历史、子公司、收购、域名和基础设施。

  • by gglessner
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gglessner/OSINT-MCP

使用说明

OSINT-MCP

一种模型上下文协议(MCP)服务器,为企业攻击面发现提供全面的OSINT(开源智能)工具。通过42个使用免费公共数据源的人工智能可访问工具,绘制公司历史、子公司、收购、域名和基础设施的地图。

作者

加兰德·格莱斯纳-- gglessner@gmail.com

许可证

GNU通用公共许可证v3.0--请参阅 许可证

特性

  • 42个MCP工具 分为五个调查类别:

    • 7种企业情报工具——美国证券交易委员会EDGAR文件、附件21子公司名单、维基百科、维基数据、GLEIF
    • 6个域发现工具——证书透明度、反向WHOIS、子域枚举、AnubisDB
    • 12个基础设施映射工具——ASN查找、PeeringDB、Shodan InternetDB、DoH DNS、SPF/TXT解析、反向IP、地理定位
    • 9种侦察工具——Wayback Machine、技术检测、HTTP标头、链接分析、Common Crawl、favicon/JARM指纹识别、security.txt
    • 7种扩展智能工具——ICIJ Offshore Leaks、GitHub、URLCan.io、RobTex/OTX/Mnemonic被动DNS、grep.app
    • 1元工具——生成定制的调查剧本
  • 不需要API密钥 --每个数据源都是免费和公开的:

    • SEC EDGAR(公共政府数据)
    • crt.sh(证书透明度日志)
    • RDAP(现代WHOIS协议)
    • Shodan InternetDB(免费,需要10k/秒)
    • 黑客目标(免费层)
    • BGPView/RIPE统计(带回退的ASN数据)
    • PeeringDB(数据中心和对等智能)
    • ICIJ离岸泄漏(巴拿马/天堂/潘多拉文件)
    • GitHub API(组织和存储库搜索)
    • URLScan.io(公共扫描搜索、技术分析)
    • RobTex(被动DNS解析历史)
    • 时光倒流机(互联网档案)
    • 维基百科/维基数据
    • ip-api.com(地理位置)
    • GLEIF(全球法律实体标识符注册)
    • Cloudflare/基于HTTPS的谷歌DNS
    • AlienVault OTX(被动DNS,1k要求/小时未经身份验证)
    • 通用爬网CDX(PB级web索引)
    • Mnemonic.no(被动DNS,TLP:白色)
    • AnubisDB(众包子域)
    • grep.app(公共代码搜索)
  • 内置AI技能 教助理完整的调查方法

快速开始

1.克隆并安装

git clone https://github.com/gglessner/OSINT-MCP.git
cd OSINT-MCP
pip install -r requirements.txt

2.在Claude代码或游标中打开

克劳德代码:

cd OSINT-MCP
claude

.mcp.json 注册服务器, .claude/skills/osint-attack-surface/SKILL.md 教授方法论。两者均自动加载。

光标:

打开 OSINT-MCP 目录作为您在Cursor中的项目。一切都是预先配置的:

  • .cursor/mcp.json --自动注册MCP服务器(42个工具)
  • .cursor/skills/osint-attack-surface/SKILL.md --教人工智能助手完整的调查工作流程

无需手动设置。看 MCP_SETUP.md 用于VS Code和高级配置。

3.开始使用

项目打开后,42个OSINT工具立即可用。开始调查:

Generate an attack surface plan for "Alphabet Inc"

或者直接跳到特定工具:

company_search(query="Microsoft")
discover_org_domains(organization="microsoft.com")
ip_intel(ip="8.8.8.8")

工具参考

企业智能工具

工具 说明
company_search 按公司名称或股票代码搜索SEC EDGAR
company_filings 获取CIK向美国证券交易委员会提交的文件(10-K、8-K、10-Q)
company_subsidiaries 通过图表21查找子公司
search_sec_filings 在EDGAR文件中进行全文布尔搜索
company_wikipedia 维基百科企业信息和收购提及
company_wikidata 结构化维基数据:子公司、母公司、收购
gleif_entity_search 全球LEI注册处——非美国公司,母子树

域发现工具

工具 说明
cert_transparency_search 在CT日志中搜索SSL证书
discover_org_domains 通过CT查找组织的所有域
whois_lookup RDAP/WHOIS域名注册查询
reverse_whois 查找同一注册人的所有域名
enumerate_subdomains 多源无源子域枚举
anubis_subdomains 众包子域数据库(AnubisDB)

基础设施映射工具

工具 说明
asn_lookup ASN信息、IP前缀和对等体(BGPView+RIPE统计回退)
peeringdb_network 数据中心位置、IX存在、受管ASN、对等策略
ip_intel Shodan InternetDB:端口、CVE、主机名
ip_bulk_intel 批量IP智能(最多50个IP)
reverse_ip 查找IP上托管的域
reverse_dns PTR记录查找
dns_records 完整DNS记录查找(A、MX、NS、TXT等)
dns_resolve 基于卫生部的DNS查找(Cloudflare/谷歌)——无配额,主要工具
parse_spf_chain 递归SPF walker——发现电子邮件供应商堆栈
parse_txt_verifications 通过TXT验证令牌进行SaaS供应商指纹识别
geolocate_ip IP地理位置和网络信息
shared_nameservers 在相同的域名服务器上查找域名

扩展智能工具

工具 说明
offshore_leaks_search ICIJ离岸泄密:巴拿马/天堂/潘多拉文件实体搜索
github_org_search GitHub组织和存储库发现
urlscan_search URLScan.io:搜索技术配置文件、IP、服务器的公共扫描
passive_dns RobTex:历史DNS解析数据(域↔IP随时间变化)
otx_passive_dns AlienVault OTX被动DNS——无身份验证,1k需求/小时
mnemonic_passive_dns Mnemonic.no被动DNS——源于灰岩坑,1k/天
grep_app_search 公共GitHub代码搜索——查找泄露的内部引用

侦察工具

工具 说明
wayback_search Wayback Machine历史快照
domain_history 域名存档历史和首次出现日期
detect_tech 技术栈和安全标头检测
get_http_headers HTTP响应头分析
extract_links 从页面中提取外部链接和域
commoncrawl_subdomains 通用爬行CDX——PB级子域发现
favicon_hash ⚠️ 活动:用于Shodan起源发现的mmh3 favicon哈希
jarm_fingerprint ⚠️ 活动:用于群集的TLS服务器指纹
fetch_security_txt ⚠️ 活动:RFC 9116解析器,在作用域中提取

元工具

工具 说明
attack_surface_plan 生成结构化的调查剧本

建筑

OSINT-MCP/
├── .cursor/
│   ├── mcp.json                            # Auto-registers MCP server in Cursor
│   └── skills/
│       └── osint-attack-surface/
│           └── SKILL.md                    # Skill — AI knows all 42 tools on project open
├── osint_mcp/
│   ├── __init__.py                         # Package metadata
│   ├── http_client.py                      # Shared async HTTP client with retry logic
│   ├── server.py                           # FastMCP server with 42 registered tools
│   └── tools/
│       ├── __init__.py
│       ├── _vendors.py                     # SaaS vendor fingerprint constants (TXT/SPF patterns)
│       ├── _vendor/
│       │   └── jarm.py                     # Vendored JARM TLS fingerprinting (Salesforce)
│       ├── corporate.py                    # SEC EDGAR, Wikipedia, Wikidata, GLEIF
│       ├── domains.py                      # crt.sh, WHOIS, reverse WHOIS, subdomains, AnubisDB
│       ├── infrastructure.py               # ASN, Shodan, DoH DNS, SPF/TXT parsing, IP tools
│       ├── recon.py                        # Wayback, tech detect, Common Crawl, favicon, JARM, security.txt
│       └── extended.py                     # PeeringDB, ICIJ, GitHub, URLScan, RobTex/OTX/Mnemonic, grep.app
├── run_osint_mcp.py                        # Entry point
├── requirements.txt                        # Dependencies
├── MCP_SETUP.md                            # Cursor & VS Code setup instructions
├── LICENSE                                 # GPLv3
└── README.md

工具模块

  • corporate.py --SEC EDGAR公司搜索、文件检索、附件21子公司解析、维基百科文章搜索、结构化公司数据的Wikidata SPARQL查询

  • domains.py --通过crt.sh进行证书透明度日志查询、RDAP/WHOIS查找、基于注册人的域发现的反向WHOIS、多源子域枚举(crt.sh+HackerTarget+RapidDNS+区域传输)

  • infrastructure.py --通过BGPView和RIPE Stat回退进行ASN查找,Shodan InternetDB用于被动IP智能,通过HackerTarget进行反向IP/DNS,完整DNS记录查询,IP地理定位,共享名称服务器发现

  • recon.py --Wayback Machine快照搜索和域历史,通过HTTP响应分析进行技术指纹识别,安全标头审计,外部链接提取

  • extended.py --PeeringDB用于数据中心/对等智能,ICIJ Offshore Leaks用于隐藏实体和空壳公司(巴拿马/天堂/潘多拉文件),GitHub组织和存储库发现,URLCan.io用于从公共扫描中进行被动技术分析,RobTex用于历史被动DNS解析数据

HTTP客户端

共享异步 httpx 客户:

  • 连接池(最多20个连接)
  • 指数回退的自动重试(4次重试,2秒基本回退)
  • 瞬态错误处理(429500502503504)
  • 30秒超时,10秒连接超时
  • 真实浏览器用户代理(Windows 11/Edge 131)

调查方法

内置技能教会人工智能一种递归交叉引用的四阶段方法:

  1. 企业情报 --确定公司树:母公司、子公司(SEC图表21)、收购(维基百科/维基数据)、离岸实体(ICIJ)、GitHub组织和相关实体

  2. 域名发现 --对于每个实体:证书透明度搜索、WHOIS+反向WHOIS、所有根域的子域枚举

  3. 基础设施测绘 --ASN查找自有IP范围,PeeringDB查找数据中心位置和托管ASN,每个域的DNS记录,共享名称服务器分析,Shodan InternetDB查找开放端口和CVE

  4. 侦察 --技术栈检测、URLCan.io被动分析、被动DNS历史(RobTex)、Wayback Machine历史分析、供应商/合作伙伴发现的外部链接映射、收购公司的孤儿资产搜寻

每个阶段都为下一个阶段提供信息。子公司揭示了新的领域。域名显示新的IP地址。IP通过反向查找揭示新域。被动DNS揭示了历史基础设施的变化。PeeringDB揭示了导致额外IP范围的托管ASN。该过程是递归的,直到绘制出完整的攻击面。

配置

SEC EDGAR用户代理(推荐)

SEC EDGAR要求用户代理通过姓名和电子邮件识别您。如果没有,EFTS端点可能会积极返回403或速率限制。启动前设置:

export OSINT_MCP_SEC_USER_AGENT="Your Name your-email@example.com"

如果未设置,则使用占位符并向stderr打印警告。

主动探测工具

三种工具直接向目标发送数据包,而不是查询第三方数据库:

工具 足迹
favicon_hash 1 HTTPS访问 /favicon.ico
fetch_security_txt 1–2个HTTPS GET到 /.well-known/security.txt
jarm_fingerprint 10个带有特制TLS ClientHello数据包的TCP连接

这些被标记⚠️ 在工具文档字符串中。LLM代理人被指示故意使用它们。

需求

  • Python 3.10+
  • fastmcp >=2.0(MCP框架)
  • httpx >=0.27(异步HTTP)
  • beautifulsoup4 >=4.12(HTML解析)
  • tldextract >=5.1(PSL感知域提取)
  • mmh3 >=4.0(favicon哈希)

发展

pip install -r requirements-dev.txt
pytest

101次测试,约1秒挂钟。所有HTTP都是通过 respx --测试期间没有网络访问。漂移试验(tests/test_meta.py)如果README/SKILL/docstring工具计数与实际不匹配,则失败 @mcp.tool 装饰师数。