Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/bishopfox/aimap
OSINT (Open Source Intelligence)ReconnaissanceVulnerability ScannersWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingRed TeamingAI Security
GitHubbishopfox/aimap

aimap

Discover Exposed AI Services

311463个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
aimap — Discover Exposed AI Services | Kitploit
查看仓库

AIMap

面向暴露的AI代理基础设施的互联网规模发现与安全测试平台。

AIMap UI 导览

AIMap 可发现、指纹识别并安全测试公开暴露的 AI 端点——包括 MCP 服务器、Ollama 实例、vLLM/LiteLLM 代理、LangServe 链、Gradio 应用、ComfyUI 节点等。可以将其视为 Shodan,但专门为 AI 代理攻击面打造。

由 Bishop Fox 构建。

警告 此工具仅用于授权的渗透测试和安全研究。您只能对您拥有或已获得明确书面许可的系统使用 AIMap。未经授权访问计算机系统是非法的。Bishop Fox 不承担任何责任,也不对因使用此工具造成的任何滥用或损害负责。请负责任地使用。


功能说明

  1. 发现 — 通过30+精心策划的搜索查询向 Shodan 查询,从而在互联网上找到暴露的 AI/ML 端点
  2. 指纹识别 — 使用 Nuclei 模板和实时 HTTP 检查探测每个端点,识别协议、框架、认证状态、工具、模型和系统提示
  3. 评分 — 基于认证、工具暴露、CORS 策略、TLS、系统提示泄露以及危险能力组合,计算 0–10 的风险评分
  4. 测试 — 启动特定协议的攻击套件(MCP 工具滥用、Ollama 模型提取、提示注入),并提供实时流式结果
  5. 可视化 — 3D 地球仪显示每个已发现的端点,支持类似 Shodan 的查询语言进行搜索

架构

root@kitploit:~
┌─────────────┐     ┌──────────────┐     ┌───────────┐
│  React SPA  │────▶│  FastAPI      │────▶│  MongoDB  │
│  (Vite)     │ WS  │  后端         │     │           │
└─────────────┘     └──────┬───────┘     └───────────┘
                           │
              ┌────────────┼────────────┐
              ▼            ▼            ▼
        ┌──────────┐ ┌──────────┐ ┌──────────┐
        │  Shodan  │ │  Nuclei  │ │  Redis   │
        │  API     │ │  扫描器  │ │  流      │
        └──────────┘ └──────────┘ └──────────┘

后端 — Python/FastAPI,使用异步 MongoDB(Motor)、Redis Streams 用于攻击日志流,以及一个发现引擎,该引擎编排 Shodan 查询 → httpx 存活检查 → Nuclei 模板扫描 → 富化流水线。

前端 — React 18 + TypeScript + Tailwind CSS + shadcn/ui。包含 3D 地球仪(globe.gl)、通过 WebSocket 实时攻击流,以及类似 Shodan 的搜索界面。

扫描 — 5 个自定义 Nuclei YAML 模板,用于 MCP 服务器检测、MCP 工具枚举、OpenAI 兼容 API 检测、LangServe 检测和提示泄露测试。


支持的协议


风险评分

每个端点根据以下因子计算 0–10 的风险评分:


设置

前提条件

  • Python 3.12+
  • Node.js 18+
  • MongoDB 7+
  • Redis 7+(可选——本地开发时会回退到内存模式)
  • Nuclei(可选——主动扫描需要)
  • Shodan API 密钥(发现扫描需要)

快速启动(Docker Compose)

root@kitploit:~
# 克隆
git clone [email protected]:BishopFox/aimap.git
cd aimap

# 配置
cp .env.example .env
# 编辑 .env — 至少设置 SHODAN_API_KEY

# 启动
docker compose up --build

这会启动 4 个服务:

  • MongoDB 运行在端口 27017
  • Redis 运行在端口 6379
  • 后端 运行在端口 8000
  • 前端 运行在端口 80

打开 http://localhost 访问 UI。

本地开发(不使用 Docker)

root@kitploit:~
# 后端
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

# 前端(另开一个终端)
cd frontend
npm install
npm run dev   # 启动在 http://localhost:5173

确保 MongoDB 在本地 27017 端口运行。Redis 可选——当 Redis 不可用时后端会回退到内存缓冲区。

环境变量

在项目根目录创建一个 .env 文件:

root@kitploit:~
# 必需
SHODAN_API_KEY=你的_shodan_api_key

# 可选——Censys 作为额外的发现源
CENSYS_API_ID=
CENSYS_API_SECRET=

# 可选——启用 AI 驱动的攻击分析
ANTHROPIC_API_KEY=

# MongoDB(默认值适用于本地开发)
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=aimap

# Redis(默认值适用于本地开发;可选)
REDIS_URL=redis://localhost:6379/0

# CORS(默认允许所有来源)
CORS_ORIGINS=*

# Modal 无服务器(将扫描/攻击分派到 Modal 容器)
MODAL_ENABLED=false

# Clerk 认证——见下文
CLERK_ISSUER=

认证(Clerk)

AIMap 使用 Clerk 进行认证。要启用:

  1. 在 clerk.com 创建一个 Clerk 应用
  2. 设置后端颁发者 URL:
    root@kitploit:~
    # .env(项目根目录)
    CLERK_ISSUER=https://your-app.clerk.accounts.dev
    
  3. 设置前端可发布密钥:
    root@kitploit:~
    # frontend/.env.local
    VITE_CLERK_PUBLISHABLE_KEY=pk_test_...
    

要禁用认证(本地开发、演示):将 CLERK_ISSUER 留空或不设置。后端将以合成 local 用户身份接受所有请求。


使用方法

运行发现扫描

  1. 导航到侧边栏中的 Scans
  2. 点击 New Scan
  3. 选择查询预设(例如 ollama、mcp_protocol、vllm)或输入自定义 Shodan 查询
  4. 可选:限定到 CIDR 范围(编排器会在每个查询前追加 net:<cidr>)
  5. 点击 Run — 扫描流水线执行:
    • Shodan 搜索 — 拉取匹配的主机
    • httpx 扫描 — 验证主机是否存活
    • Nuclei 扫描 — 对存活主机运行自定义模板
    • 富化 — 框架检测、认证探测、风险评分
  6. 通过实时 WebSocket 状态栏或轮询扫描详情页面监控进度

搜索端点

使用搜索栏配合类似 Shodan 的查询语法:

root@kitploit:~
protocol:mcp                          # MCP 服务器
auth:none                             # 无认证
risk:critical                         # 风险评分 >= 9.0
risk:high                             # 风险评分 7.0 – 8.9
risk:medium                           # 风险评分 4.0 – 6.9
risk:low                              # 风险评分 1.0 – 3.9
tool:query_db                         # 暴露特定工具的端点
country:US                            # 按国家代码
port:11434                            # 按端口号
org:"Amazon AWS"                      # 按托管组织(引号内多词值)
has:system_prompt                     # 具有泄露系统提示的端点

自由组合筛选条件:

root@kitploit:~
protocol:mcp auth:none country:US     # 美国境内未认证的 MCP 服务器
risk:critical tool:exec_code          # 具有代码执行工具的严重风险端点
protocol:ollama port:11434            # 默认端口上的 Ollama

任何不匹配 key:value 模式的文本都将被视为对所有索引字段的自由文本搜索。

启动攻击测试

  1. 导航到端点的详情页面
  2. 点击 Attack 打开测试面板
  3. 选择一个攻击配置文件——系统会根据协议自动选择引擎:
    • MCP → 工具枚举、未授权工具调用、通过工具描述进行提示注入
    • Ollama → 模型列表、模型权重提取、提示注入
    • OpenAI 兼容 → 模型枚举、补全滥用、系统提示提取
  4. 通过 WebSocket 实时查看结果流
  5. 结果包括严重性评级、原始请求/响应对以及修复建议

探索地球仪

首页展示一个交互式 3D 地球仪,显示所有已发现的端点:

  • 大头针颜色 = 协议类型(蓝色 = MCP,绿色 = Ollama,紫色 = OpenAI 兼容,等)
  • 大头针高度 = 风险评分
  • 悬停显示端点摘要(IP、端口、协议、风险、认证、工具、模型、位置)
  • 点击导航到端点详情页面
  • 鼠标拖拽旋转,滚动缩放

Nuclei 模板

templates/ 目录中的自定义模板:


API 参考

所有端点都以 /api/ 为前缀。


项目结构

root@kitploit:~
aimap/
├── backend/
│   ├── app/
│   │   ├── main.py                  # FastAPI 应用、生命周期、CORS、路由
│   │   ├── config.py                # 从环境变量读取 Pydantic 设置
│   │   ├── auth.py                  # Clerk JWT 验证(CLERK_ISSUER 为空时绕过)
│   │   ├── database.py              # 异步 MongoDB(Motor)连接
│   │   ├── limiter.py               # SlowAPI 速率限制
│   │   ├── routes/
│   │   │   ├── endpoints.py         # CRUD + 搜索 + 地球仪 + 富化
│   │   │   ├── scans.py             # 扫描生命周期 + 执行 + WebSocket
│   │   │   └── attack.py            # 攻击分派 + Redis Streams + WebSocket
│   │   ├── discovery/
│   │   │   ├── orchestrator.py      # 扫描流水线:Shodan → httpx → Nuclei → 导入
│   │   │   ├── shodan_adapter.py    # 32 个策划的 Shodan 查询 + 结果标准化
│   │   │   ├── nuclei_runner.py     # Nuclei 子进程运行器 + 发现解析器
│   │   │   └── base.py              # SourceAdapter 抽象基类
│   │   └── services/
│   │       ├── attack_mcp.py        # MCP 协议攻击引擎
│   │       ├── attack_ollama.py     # Ollama 攻击引擎
│   │       ├── attack_openclaw.py   # OpenClaw/Clawdbot 攻击引擎
│   │       ├── enrichment.py        # Shodan/Nuclei 富化 + 风险评分
│   │       ├── live_probe.py        # 用于模型/工具枚举的 HTTP 探测
│   │       ├── search.py            # Shodan 风格查询解析器 → MongoDB 筛选器
│   │       ├── redis_client.py      # 异步 Redis 单例,带回退
│   │       └── concurrency.py       # 信号量 + 基于 Redis 的槽位限制
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── App.tsx                  # 路由 + Clerk 认证包装
│   │   ├── pages/
│   │   │   ├── Marketing.tsx        # 带 3D 地球仪的公开首页
│   │   │   ├── Landing.tsx          # 带地球仪的认证仪表盘
│   │   │   ├── Search.tsx           # 带查询语法的端点搜索
│   │   │   ├── Explore.tsx          # 浏览/筛选所有端点
│   │   │   ├── AgentDetail.tsx      # 单个端点深度挖掘
│   │   │   ├── TestAgent.tsx        # 攻击测试启动器
│   │   │   ├── Scans.tsx            # 扫描管理
│   │   │   └── Ranges.tsx           # CIDR 范围管理
│   │   ├── components/
│   │   │   ├── GlobeVisualization.tsx  # globe.gl 3D 地球仪 + 图例
│   │   │   ├── Layout.tsx           # 应用外壳(侧边栏 + 导航栏)
│   │   │   └── ui/                  # shadcn/ui 组件
│   │   ├── hooks/useApi.ts          # 所有 API 端点的 SWR 钩子
│   │   └── lib/api-client.ts        # 带 Clerk 令牌注入的 fetch 包装
│   ├── Dockerfile
│   ├── nginx.conf
│   └── tailwind.config.js
├── templates/                       # Nuclei YAML 模板
├── docs/                            # GitHub Pages 静态站点
├── docker-compose.yml
├── .env.example
└── README.md

并发限制

平台强制执行全局并发限制以防止滥用:

  • 最多 3 个并发扫描 — 额外扫描会收到 HTTP 429
  • 最多 5 个并发攻击 — 额外攻击会收到 HTTP 429
  • 速率限制 — 扫描和攻击创建端点每分钟 10 个请求

使用 Docker Compose 时,这些限制通过 Redis 计数器(跨容器)强制执行。在本地开发模式下,它们会回退到 asyncio.Semaphore(单进程)。


可选:Modal 无服务器

对于繁重的扫描工作负载,可以将扫描和攻击分派到 Modal 容器:

root@kitploit:~
MODAL_ENABLED=true

启用后,POST /scans/{id}/run 和 POST /attack 将调用 modal.Function.from_name("aimap", "run_scan_task") / run_attack_task 而不是本地执行。如果 Modal 分派失败,将回退到本地执行。


许可证

MIT 许可证。详见 LICENSE。

本项目由 Bishop Fox 维护。

下载工具
协议检测方法Shodan 查询数
MCP (模型上下文协议)SSE 传输、JSON-RPC、/mcp/sse 路径4 个查询
Ollama默认端口 11434,产品指纹3 个查询
vLLM / LiteLLM / LocalAI/v1/models、/v1/chat/completions 端点4 个查询
LangServe / LangChainPlayground 端点、langserve 标记2 个查询
OpenClaw / Clawdbot控制面板,端口 187893 个查询
Open WebUI / LibreChat基于标题的检测2 个查询
Gradio标题、页脚水印、favicon 哈希3 个查询
Streamlit标题、favicon 哈希2 个查询
ComfyUI / Stable Diffusion标题、基于端口的检测4 个查询
HuggingFace TGIHTML 标记1 个查询
通用推理/api/generate、/api/tags 路径2 个查询
因子分数影响
无认证+4.0
未知认证状态+1.0
暴露 10+ 工具+2.0
暴露 5+ 工具+1.0
关键风险工具(例如 exec_code、run_shell)每个 +1.0
高风险工具(例如 query_db、file_read)每个 +0.5
开放的 CORS(*)+1.0
无 TLS+0.5
系统提示泄露+0.5
模型暴露+1.0
检测到未审查模型+2.0
启用注册(无需邀请)+1.5
危险组合(例如无认证 + 代码执行工具)每个 +1.0
模板目的
mcp-server-detect.yaml通过 SSE 传输和 JSON-RPC 能力响应检测 MCP 服务器
mcp-tool-enum.yaml枚举 MCP 服务器暴露的工具(名称、描述、输入模式)
openai-compat-detect.yaml通过 /v1/models 检测 OpenAI 兼容端点
langserve-detect.yaml检测暴露 playground 的 LangServe 部署
prompt-leak.yaml通过常见注入技术尝试提取系统提示
方法路径描述
GET/health健康检查
GET/endpoints列出端点(分页、可筛选)
POST/endpoints/search带查询语法的高级搜索
GET/endpoints/globe3D 地球仪的地理数据
GET/endpoints/stats聚合统计信息
GET/endpoints/{id}端点详情
POST/endpoints/{id}/enrich触发单个端点的富化
POST/endpoints/enrich-all批量富化
GET/scans列出扫描
POST/scans创建扫描
POST/scans/{id}/run执行扫描
GET/scans/query-presets可用的 Shodan 查询预设
WS/scans/{id}/progress实时扫描进度
POST/attack启动攻击测试
WS/attack/{id}/stream实时攻击日志流
GET/attack/{id}/status攻击状态