内容
# 🌐 SHODAN-MCP
<div align="center">



</div>
## 🔍 概述
**SHODAN-MCP** 是一个强大的接口,用于访问 Shodan API,旨在简化与互联网连接设备的全球搜索引擎的交互。它为安全研究人员、渗透测试人员和网络安全专业人员提供了一套全面的工具,用于探索、分析和监控全球互联网格局。
> *"你能访问的系统越多,你拥有的权力就越大。"*
## ✨ 主要功能
### 🔎 搜索与发现
- **高级搜索**:使用强大的过滤功能和多个参数查询 Shodan 数据库
- **结果分析**:搜索结果的详细分析,包括地理分布和组织洞察
- **计数功能**:获取总数和统计分析,而不消耗 API 积分
### 📡 主机情报
- **详细主机信息**:关于任何 IP 地址的综合数据,包括所有服务、横幅和配置
- **端口扫描**:查看目标系统上所有开放的端口和运行的服务
- **横幅抓取**:访问完整的服务横幅和标头,进行深入分析
### 🔒 安全研究
- **漏洞发现**:查找受特定 CVE 或特定漏洞影响的设备
- **CVE 信息**:获取关于通用漏洞和暴露的详细情报
- **利用风险评估**:使用 CVSS 分数和 EPSS 利用可能性指标评估威胁
### 🌍 网络映射
- **DNS 情报**:检索综合的 DNS 信息和子域名发现
- **域名洞察**:分析域名基础设施和关联服务
- **反向 DNS**:将 IP 地址映射到主机名以进行网络枚举
## 🛠️ 安装与设置
### 先决条件
- Python 3.8 或更高版本
- Shodan API 密钥([在此处获取](https://account.shodan.io/))
- 用于依赖项管理的 pip 或 uv
### 基本安装
```bash
# 克隆仓库
git clone https://github.com/yourusername/shodan-mcp.git
cd shodan-mcp
# 安装依赖项
pip install -r requirements.txt
# 设置 Shodan API 密钥
echo "SHODAN_API_KEY=your_api_key_here" > shodan-mcp-server/.env
```
### 集成选项
SHODAN-MCP 可以与各种 AI 和开发环境集成:
#### 🤖 Claude 集成
Claude 可以使用 MCP 协议与 SHODAN-MCP 交互:
1. 在 Claude Desktop 中,前往设置 → 开发者 → 编辑配置
2. 编辑 `claude_desktop_config.json` 文件并添加以下配置:
```json
"mcpServers": {
"shodan": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/shodan-mcp/shodan-mcp-server",
"run",
"shodan_mcp.py"
]
}
}
```
3. 将 `/path/to/uv` 替换为实际的 uv 可执行文件路径(例如,macOS/Linux 上的 `~/.local/bin/uv`)
4. 将 `/path/to/shodan-mcp` 替换为实际的 shodan-mcp 项目目录路径
5. 保存配置并重启 Claude
6. 现在您可以在对话中直接使用 Shodan 工具
#### 🖥️ Cursor IDE 集成
[Cursor](https://cursor.sh/) 通过 MCP 配置文件与 SHODAN-MCP 无缝集成:
1. MCP 配置文件位于 `~/.cursor/mcp.json`(macOS/Linux)
2. 将以下配置添加到您的 `mcp.json` 中:
```json
{
"mcpServers": {
"shodan": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/shodan-mcp/shodan-mcp-server",
"run",
"shodan_mcp.py"
],
"env": {}
}
}
}
```
3. 将 `/path/to/uv` 替换为实际的 uv 可执行文件路径(例如,macOS/Linux 上的 `~/.local/bin/uv`)
4. 将 `/path/to/shodan-mcp` 替换为实际的 shodan-mcp 项目目录路径
5. 保存配置并重启 Cursor
6. Shodan MCP 工具现在可在您的 Cursor 环境中使用
#### 📝 VSCode 集成
对于 VSCode 用户,请将以下内容添加到您的 settings.json 文件中:
1. 打开 VS Code 设置(⌘+Shift+P,然后输入“首选项:打开设置(JSON)”)
2. 添加以下配置:
```json
"mcp": {
"inputs": [],
"servers": {
"shodan": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/shodan-mcp/shodan-mcp-server",
"run",
"shodan_mcp.py"
],
"env": {}
}
}
}
```
3. 将 `/path/to/uv` 替换为实际的 uv 可执行文件路径(例如,macOS/Linux 上的 `~/.local/bin/uv` 或 Windows 上的完整路径)
4. 将 `/path/to/shodan-mcp` 替换为实际的 shodan-mcp 项目目录路径
5. 保存设置并重启 VS Code
6. 通过内置的 AI 功能或命令面板访问
### 使用 UV 安装
**[uv](https://github.com/astral-sh/uv) 推荐用于管理 Python 环境和依赖项,因为它具有速度和可靠性:
```bash
# 如果您没有 uv,请安装它
curl -sSf https://github.com/astral-sh/uv/releases/download/0.1.21/uv-installer.sh | sh
# 使用 uv 安装项目依赖项
uv pip install -r requirements.txt
# 使用 uv 运行 MCP 服务器
uv --directory /path/to/shodan-mcp/shodan-mcp-server run shodan_mcp.py
```
## 🚀 可用命令
| 类别 | 命令 | 描述 |
|----------|---------|-------------|
| **核心** | `test` | 测试 MCP 服务器是否正常工作 |
| **核心** | `check_key` | 验证 Shodan API 密钥的有效性并查看帐户信息 |
| **搜索** | `search` | 使用强大的过滤功能搜索 Shodan 数据库 |
| **搜索** | `count` | 统计查询结果而不消耗 API 积分 |
| **搜索** | `get_filters` | 获取所有可用的 Shodan 搜索过滤器 |
| **搜索** | `get_facets` | 获取用于统计分析的可用分面 |
| **主机** | `host` | 获取特定 IP 地址的详细主机信息 |
| **DNS** | `domain_info` | 获取域名的 DNS 信息和子域名 |
| **DNS** | `dns_lookup` | 将主机名解析为 IP 地址 |
| **DNS** | `reverse_dns` | 查找与 IP 地址关联的主机名 |
| **漏洞** | `cve_info` | 获取特定 CVE 的详细漏洞信息 |
| **漏洞** | `find_cpes` | 查找特定产品的 CPE 标识符 |
| **漏洞** | `find_cves` | 按产品或 CPE 标识符查找漏洞 |
## 📊 示例用法
### 与 AI 助手集成
SHODAN-MCP 设计用于通过 AI 助手和 IDE 进行交互,您可以使用自然语言与 Shodan 交互:
```
"查找德国所有暴露的 Jenkins 服务器"
"检查 8.8.8.8 是否有任何已知漏洞"
"显示 Nginx 服务器按国家/地区的分布情况"
"列出具有漏洞的 MongoDB 实例的前 5 个国家/地区"
"获取 example.com 的 DNS 信息"
```
### 通过 MCP 可用的命令
配置好您的 IDE 或 AI 助手后,SHODAN-MCP 提供以下命令:
## 💻 系统兼容性
| 平台 | 支持 | 备注 |
|----------|-----------|-------|
| **macOS** | ✅ | 在 Intel 和 Apple Silicon (M1/M2/M3) 上测试 |
| **Linux** | ✅ | 在 Ubuntu 22.04 上测试 |
| **Windows** | ⚠️ | 未完全测试,但理论上应该可行 |
| **Docker** | ⚠️ | 计划支持但尚未实施 |
| **云** | ⚠️ | 计划支持但尚未测试 |
> 注意:该项目主要在 macOS 和 Linux 环境中开发和测试。欢迎为其他平台的扩展和测试做出贡献!
## 🔧 技术架构
SHODAN-MCP 使用以下技术构建:
- **FastMCP**:用于 API 交互的高性能异步框架
- **Shodan API 客户端**:Shodan 的官方 Python 客户端
- **HTTPX**:现代异步 HTTP 客户端
- **Python-dotenv**:用于安全环境变量管理
- **MCP 协议**:用于与 AI 助手无缝集成
该系统使用异步架构提供高性能、非阻塞的 API 交互,从而实现多个请求的并发高效处理。
## 🔑 API 密钥管理
SHODAN-MCP 使用存储在项目根目录的 `.env` 文件中的 Shodan API 密钥。这种方法使您的 API 密钥保持安全并与代码分离。
1. **获取 API 密钥**:在 [Shodan](https://account.shodan.io/) 注册以获取您的 API 密钥
2. **创建 .env 文件**:在项目根目录中创建一个 `.env` 文件,其中包含以下内容:
```
SHODAN_API_KEY=your_api_key_here
```
`.env` 文件被包含在 `.gitignore` 中,以防止您的 API 密钥被上传到公共仓库中。项目使用 python-dotenv 库自动从此文件中加载 API 密钥。
> **安全注意事项**:请勿分享您的 Shodan API 密钥或将其包含在可能上传到公共仓库的文件中。
## 🛡️ 安全与伦理
本工具设计用于合法的安全研究和防御目的。用户有责任确保他们遵守:
- 适用的法律和法规
- Shodan 的服务条款
- 安全研究的道德标准
在扫描或分析您不拥有的系统之前,请始终获得适当的授权。
## 📚 使用说明
- 部分命令会消耗 Shodan API 积分(参见 [Shodan 定价](https://account.shodan.io/billing))
- 结果提供用于分析的综合情报
- 数据以结构化、可读的格式呈现
- 高级格式化指令确保技术细节的清晰度
- 对于批量操作,请考虑使用异步批处理方法来优化性能
## 🔮 即将推出的功能
计划在未来版本中添加以下功能:
- **Markdown 报告生成**:自动为所有查询创建 Markdown 格式的综合报告
- **批处理**:并行处理多个查询以提高效率
- **高级可视化**:搜索结果和网络的可视化表示
- **Docker 容器**:用于更轻松部署的即用型容器化版本
- **跨平台测试**:对 Windows 和其他平台的扩展测试和支持
## 👥 欢迎贡献!
该项目由一名安全爱好者创建,而不是专业开发者。许多领域都可以改进,欢迎各种形式的贡献!
### 需要改进的领域
- **代码质量**:重构和优化
- **错误处理**:更强大的错误处理和恢复
- **文档**:扩展的示例和用例
- **测试**:单元测试和集成测试
- **UI 开发**:非程序员的简单 Web 界面
- **跨平台支持**:Windows 和其他平台的测试和修复
如果您想贡献,请随时提交拉取请求或提出建议的小问题。任何贡献都不会太小,所有帮助都非常感谢!
## 🐛 故障排除
| 问题 | 解决方案 |
|-------|----------|
| API 密钥错误 | 验证您的密钥是否有效并正确配置 |
| 速率限制 | 实施指数级退避或升级您的 Shodan 计划 |
| 模块未找到 | 确保所有依赖项都正确安装 |
| 集成问题 | 检查您的 MCP 路径和配置 |
| 超时错误 | 为大型查询增加超时设置 |
## 🌟 致谢
- 由我 😇 使用 [Shodan API](https://www.shodan.io/) - 互联网搜索引擎
- 使用 Python 的异步架构开发以实现最佳性能
- MCP 协议规范由 [Anthropic](https://www.anthropic.com/) 提供
---
<div align="center">
<p><strong>SHODAN-MCP:查看一切。了解一切。</strong></p>
<small>0xh3l1x 创作</small>
</div>
连接信息
猜你喜欢
暂无推荐服务器