使用说明
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)
调查方法
内置技能教会人工智能一种递归交叉引用的四阶段方法:
-
企业情报 --确定公司树:母公司、子公司(SEC图表21)、收购(维基百科/维基数据)、离岸实体(ICIJ)、GitHub组织和相关实体
-
域名发现 --对于每个实体:证书透明度搜索、WHOIS+反向WHOIS、所有根域的子域枚举
-
基础设施测绘 --ASN查找自有IP范围,PeeringDB查找数据中心位置和托管ASN,每个域的DNS记录,共享名称服务器分析,Shodan InternetDB查找开放端口和CVE
-
侦察 --技术栈检测、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 装饰师数。