Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
aimap — Descubrir servicios de IA expuestos | Kitploit
Herramientas/GitHubGitHub/bishopfox/aimap
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoEscáneres de VulnerabilidadesExplotación de Aplicaciones WebRecopilación de InformaciónSeguridad WebPruebas de PenetraciónRed TeamingSeguridad de IA
GitHubbishopfox/aimap

aimap

Descubrir servicios de IA expuestos

311466hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

AIMap

Plataforma de descubrimiento y pruebas de seguridad a escala de Internet para infraestructura expuesta de agentes de IA.

Recorrido de la interfaz de AIMap

AIMap encuentra, identifica y prueba la seguridad de endpoints de IA expuestos públicamente — servidores MCP, instancias Ollama, proxies vLLM/LiteLLM, cadenas LangServe, aplicaciones Gradio, nodos ComfyUI y más. Piensa en Shodan, pero diseñado específicamente para la superficie de ataque de agentes de IA.

Creado por Bishop Fox.

Advertencia Esta herramienta está destinada únicamente a pruebas de penetración autorizadas e investigación de seguridad. Solo debes usar AIMap contra sistemas que poseas o para los que tengas permiso explícito por escrito. El acceso no autorizado a sistemas informáticos es ilegal. Bishop Fox no asume ninguna responsabilidad y no se hace responsable del mal uso o daño causado por esta herramienta. Úsala de forma responsable.


Qué hace

  1. Descubrir — Consulta Shodan con más de 32 consultas de búsqueda seleccionadas para encontrar endpoints de IA/ML expuestos en Internet
  2. Identificar — Sondea cada endpoint con plantillas Nuclei y comprobaciones HTTP en vivo para identificar el protocolo, framework, estado de autenticación, herramientas, modelos y avisos del sistema
  3. Puntuar — Calcula una puntuación de riesgo de 0 a 10 basada en autenticación, exposición de herramientas, política CORS, TLS, filtración de avisos del sistema y combinaciones de capacidades peligrosas
  4. Probar — Lanza suites de ataque específicas del protocolo (abuso de herramientas MCP, extracción de modelos Ollama, inyección de avisos) con resultados en streaming en tiempo real
  5. Visualizar — Globo 3D que muestra cada endpoint descubierto, con una interfaz de búsqueda al estilo Shodan

Arquitectura

root@kitploit:~
┌─────────────┐     ┌──────────────┐     ┌───────────┐
│  React SPA  │────▶│  FastAPI      │────▶│  MongoDB  │
│  (Vite)     │ WS  │  Backend     │     │           │
└─────────────┘     └──────┬───────┘     └───────────┘
                           │
              ┌────────────┼────────────┐
              ▼            ▼            ▼
        ┌──────────┐ ┌──────────┐ ┌──────────┐
        │  Shodan  │ │  Nuclei  │ │  Redis   │
        │  API     │ │  Scanner │ │  Streams │
        └──────────┘ └──────────┘ └──────────┘

Backend — Python/FastAPI con MongoDB asíncrono (Motor), Redis Streams para streaming de registros de ataque, y un motor de descubrimiento que orquesta consultas Shodan → comprobaciones de actividad httpx → escaneos de plantillas Nuclei → pipeline de enriquecimiento.

Frontend — React 18 + TypeScript + Tailwind CSS + shadcn/ui. Incluye un globo 3D (globe.gl), streaming de ataques en tiempo real vía WebSocket y una interfaz de búsqueda al estilo Shodan.

Escaneo — 5 plantillas Nuclei YAML personalizadas para detección de servidores MCP, enumeración de herramientas MCP, detección de API compatible con OpenAI, detección de LangServe y pruebas de filtración de avisos.


Protocolos compatibles


Puntuación de riesgo

Cada endpoint recibe una puntuación de riesgo de 0 a 10 calculada a partir de:


Configuración

Requisitos previos

  • Python 3.12+
  • Node.js 18+
  • MongoDB 7+
  • Redis 7+ (opcional — recurre a memoria local para desarrollo local)
  • Nuclei (opcional — necesario para escaneo activo)
  • Una clave de API de Shodan (requerida para escaneos de descubrimiento)

Inicio rápido (Docker Compose)

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

# Configurar
cp .env.example .env
# Editar .env — como mínimo configurar SHODAN_API_KEY

# Iniciar
docker compose up --build

Esto inicia 4 servicios:

  • MongoDB en el puerto 27017
  • Redis en el puerto 6379
  • Backend en el puerto 8000
  • Frontend en el puerto 80

Abre http://localhost para acceder a la interfaz.

Desarrollo local (sin Docker)

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

# Frontend (terminal separada)
cd frontend
npm install
npm run dev   # se inicia en http://localhost:5173

Asegúrate de que MongoDB se esté ejecutando localmente en el puerto 27017. Redis es opcional — el backend recurre a buffers en memoria cuando Redis no está disponible.

Variables de entorno

Crea un archivo .env en la raíz del proyecto:

root@kitploit:~
# Requerido
SHODAN_API_KEY=tu_clave_api_shodan

# Opcional — Censys como fuente de descubrimiento adicional
CENSYS_API_ID=
CENSYS_API_SECRET=

# Opcional — habilita análisis de ataques impulsado por IA
ANTHROPIC_API_KEY=

# MongoDB (los valores por defecto funcionan para desarrollo local)
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=aimap

# Redis (los valores por defecto funcionan para desarrollo local; opcional)
REDIS_URL=redis://localhost:6379/0

# CORS (por defecto permite todos los orígenes)
CORS_ORIGINS=*

# Modal serverless (despacha escaneos/ataques a contenedores Modal)
MODAL_ENABLED=false

# Autenticación Clerk — ver más abajo
CLERK_ISSUER=

Autenticación (Clerk)

AIMap utiliza Clerk para autenticación. Para habilitarlo:

  1. Crea una aplicación Clerk en clerk.com
  2. Configura la URL del emisor del backend:
    root@kitploit:~
    # .env (raíz del proyecto)
    CLERK_ISSUER=https://tu-app.clerk.accounts.dev
    
  3. Configura la clave publicable del frontend:
    root@kitploit:~
    # frontend/.env.local
    VITE_CLERK_PUBLISHABLE_KEY=pk_test_...
    

Para deshabilitar la autenticación (desarrollo local, demos): deja CLERK_ISSUER vacío o sin configurar. El backend aceptará todas las solicitudes con una identidad de usuario sintética local.


Uso

Realizar un escaneo de descubrimiento

  1. Navega a Escaneos en la barra lateral
  2. Haz clic en Nuevo escaneo
  3. Selecciona presets de consulta (ej., ollama, mcp_protocol, vllm) o ingresa una consulta Shodan personalizada
  4. Opcionalmente, delimita a un rango CIDR (el orquestador antepone net:<cidr> a cada consulta)
  5. Haz clic en Ejecutar — el pipeline de escaneo ejecuta:
    • Búsqueda Shodan — obtiene hosts coincidentes
    • Barrido httpx — verifica que los hosts estén activos
    • Escaneo Nuclei — ejecuta plantillas personalizadas contra hosts activos
    • Enriquecimiento — detección de framework, sondeo de autenticación, puntuación de riesgo
  6. Supervisa el progreso a través de la barra de estado WebSocket en tiempo real o consultando la página de detalle del escaneo

Buscar endpoints

Usa la barra de búsqueda con sintaxis de consulta al estilo Shodan:

root@kitploit:~
protocol:mcp                          # Servidores MCP
auth:none                             # Sin autenticación
risk:critical                         # Puntuación de riesgo >= 9.0
risk:high                             # Puntuación de riesgo 7.0 – 8.9
risk:medium                           # Puntuación de riesgo 4.0 – 6.9
risk:low                              # Puntuación de riesgo 1.0 – 3.9
tool:query_db                         # Endpoints que exponen una herramienta específica
country:US                            # Por código de país
port:11434                            # Por número de puerto
org:"Amazon AWS"                      # Por organización de alojamiento (valores de varias palabras entre comillas)
has:system_prompt                     # Endpoints con avisos del sistema filtrados

Combina filtros libremente:

root@kitploit:~
protocol:mcp auth:none country:US     # Servidores MCP sin autenticación en EE. UU.
risk:critical tool:exec_code          # Endpoints críticos con herramientas de ejecución de código
protocol:ollama port:11434            # Ollama en puerto por defecto

Cualquier texto que no coincida con un patrón clave:valor se trata como búsqueda de texto libre en todos los campos indexados.

Lanzar pruebas de ataque

  1. Navega a la página de detalle de un endpoint
  2. Haz clic en Atacar para abrir el panel de pruebas
  3. Selecciona un perfil de ataque — el sistema selecciona automáticamente el motor según el protocolo:
    • MCP → Enumeración de herramientas, invocación no autorizada de herramientas, inyección de avisos a través de descripciones de herramientas
    • Ollama → Listado de modelos, extracción de pesos de modelos, inyección de avisos
    • Compatible con OpenAI → Enumeración de modelos, abuso de completado, extracción de avisos del sistema
  4. Observa los resultados en streaming en tiempo real a través de WebSocket
  5. Los resultados incluyen clasificaciones de severidad, pares solicitud/respuesta sin procesar y orientación sobre remediación

Explorar el globo

La página de inicio presenta un globo 3D interactivo que muestra todos los endpoints descubiertos:

  • Color del pin = tipo de protocolo (azul = MCP, verde = Ollama, púrpura = compatible con OpenAI, etc.)
  • Altura del pin = puntuación de riesgo
  • Pasar el ratón para ver un resumen del endpoint (IP, puerto, protocolo, riesgo, autenticación, herramientas, modelo, ubicación)
  • Hacer clic para navegar a la página de detalle del endpoint
  • Arrastrar el ratón para rotar, desplazar para hacer zoom

Plantillas Nuclei

Plantillas personalizadas en el directorio templates/:


Referencia de la API

Todos los endpoints tienen el prefijo /api/.


Estructura del proyecto

root@kitploit:~
aimap/
├── backend/
│   ├── app/
│   │   ├── main.py                  # Aplicación FastAPI, ciclo de vida, CORS, enrutadores
│   │   ├── config.py                # Configuración Pydantic desde variables de entorno
│   │   ├── auth.py                  # Verificación JWT de Clerk (omisión cuando CLERK_ISSUER está vacío)
│   │   ├── database.py              # Conexión asíncrona MongoDB (Motor)
│   │   ├── limiter.py               # Limitación de tasa SlowAPI
│   │   ├── routes/
│   │   │   ├── endpoints.py         # CRUD + búsqueda + globo + enriquecimiento
│   │   │   ├── scans.py             # Ciclo de vida del escaneo + ejecución + WebSocket
│   │   │   └── attack.py            # Despacho de ataques + Redis Streams + WebSocket
│   │   ├── discovery/
│   │   │   ├── orchestrator.py      # Pipeline de escaneo: Shodan → httpx → Nuclei → ingesta
│   │   │   ├── shodan_adapter.py    # 32 consultas Shodan seleccionadas + normalización de resultados
│   │   │   ├── nuclei_runner.py     # Ejecutor de subprocesos Nuclei + analizador de hallazgos
│   │   │   └── base.py              # Clase base abstracta SourceAdapter
│   │   └── services/
│   │       ├── attack_mcp.py        # Motor de ataque para protocolo MCP
│   │       ├── attack_ollama.py     # Motor de ataque para Ollama
│   │       ├── attack_openclaw.py   # Motor de ataque para OpenClaw/Clawdbot
│   │       ├── enrichment.py        # Enriquecimiento Shodan/Nuclei + puntuación de riesgo
│   │       ├── live_probe.py        # Sondeo HTTP para enumeración de modelos/herramientas
│   │       ├── search.py            # Analizador de consultas al estilo Shodan → filtros MongoDB
│   │       ├── redis_client.py      # Singleton Redis asíncrono con fallback
│   │       └── concurrency.py       # Semáforo + limitación de ranuras basada en Redis
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── App.tsx                  # Rutas + envoltura de autenticación Clerk
│   │   ├── pages/
│   │   │   ├── Marketing.tsx        # Página de inicio pública con globo 3D
│   │   │   ├── Landing.tsx          # Panel autenticado con globo
│   │   │   ├── Search.tsx           # Búsqueda de endpoints con sintaxis de consulta
│   │   │   ├── Explore.tsx          # Explorar/filtrar todos los endpoints
│   │   │   ├── AgentDetail.tsx      # Análisis profundo de un endpoint
│   │   │   ├── TestAgent.tsx        # Lanzador de pruebas de ataque
│   │   │   ├── Scans.tsx            # Gestión de escaneos
│   │   │   └── Ranges.tsx           # Gestión de rangos CIDR
│   │   ├── components/
│   │   │   ├── GlobeVisualization.tsx  # Globo 3D globe.gl + leyenda
│   │   │   ├── Layout.tsx           # Esqueleto de la aplicación (barra lateral + barra de navegación)
│   │   │   └── ui/                  # Componentes shadcn/ui
│   │   ├── hooks/useApi.ts          # Hooks SWR para todos los endpoints de la API
│   │   └── lib/api-client.ts        # Envoltorio Fetch con inyección de token Clerk
│   ├── Dockerfile
│   ├── nginx.conf
│   └── tailwind.config.js
├── templates/                       # Plantillas YAML de Nuclei
├── docs/                            # Sitio estático de GitHub Pages
├── docker-compose.yml
├── .env.example
└── README.md

Límites de concurrencia

La plataforma impone límites de concurrencia globales para evitar el abuso:

  • Máximo 3 escaneos concurrentes — los escaneos adicionales reciben HTTP 429
  • Máximo 5 ataques concurrentes — los ataques adicionales reciben HTTP 429
  • Limitación de tasa — 10 solicitudes/minuto en los endpoints de creación de escaneos y ataques

Cuando se usa Docker Compose, estos límites se aplican mediante contadores Redis (entre contenedores). En modo de desarrollo local, recurren a asyncio.Semaphore (un solo proceso).


Opcional: Modal Serverless

Para cargas de trabajo de escaneo pesadas, los escaneos y ataques pueden enviarse a contenedores Modal:

root@kitploit:~
MODAL_ENABLED=true

Cuando está habilitado, POST /scans/{id}/run y POST /attack llamarán a modal.Function.from_name("aimap", "run_scan_task") / run_attack_task en lugar de ejecutarse localmente. Recurre a la ejecución local si el envío a Modal falla.


Licencia

Licencia MIT. Consulta LICENSE para más detalles.

Este proyecto es mantenido por Bishop Fox.

Descargar herramienta
ProtocoloMétodo de detecciónConsultas Shodan
MCP (Model Context Protocol)Transporte SSE, JSON-RPC, rutas /mcp/sse4 consultas
OllamaPuerto por defecto 11434, huella del producto3 consultas
vLLM / LiteLLM / LocalAIEndpoints /v1/models, /v1/chat/completions4 consultas
LangServe / LangChainEndpoints de Playground, marcadores langserve2 consultas
OpenClaw / ClawdbotPanel de control, puerto 187893 consultas
Open WebUI / LibreChatDetección por título2 consultas
GradioTítulo, marca de agua en el pie de página, hash del favicon3 consultas
StreamlitTítulo, hash del favicon2 consultas
ComfyUI / Stable DiffusionTítulo, detección por puerto4 consultas
HuggingFace TGIMarcadores HTML1 consulta
Inferencia genéricaRutas /api/generate, /api/tags2 consultas
FactorImpacto en la puntuación
Sin autenticación+4.0
Estado de autenticación desconocido+1.0
10+ herramientas expuestas+2.0
5+ herramientas expuestas+1.0
Herramienta de riesgo crítico (ej., exec_code, run_shell)+1.0 cada una
Herramienta de alto riesgo (ej., query_db, file_read)+0.5 cada una
CORS abierto (*)+1.0
Sin TLS+0.5
Aviso del sistema filtrado+0.5
Modelos expuestos+1.0
Modelo sin censura detectado+2.0
Registro habilitado (sin invitación requerida)+1.5
Combinación peligrosa (ej., sin autenticación + herramienta de ejecución de código)+1.0 cada una
PlantillaPropósito
mcp-server-detect.yamlDetecta servidores MCP a través del transporte SSE y la respuesta de capacidades JSON-RPC
mcp-tool-enum.yamlEnumera las herramientas expuestas por servidores MCP (nombres, descripciones, esquemas de entrada)
openai-compat-detect.yamlDetecta endpoints compatibles con OpenAI a través de /v1/models
langserve-detect.yamlDetecta despliegues LangServe con playground expuesto
prompt-leak.yamlIntenta la extracción del aviso del sistema mediante técnicas comunes de inyección
MétodoRutaDescripción
GET/healthComprobación de estado
GET/endpointsListar endpoints (paginados, filtrables)
POST/endpoints/searchBúsqueda avanzada con sintaxis de consulta
GET/endpoints/globeDatos geográficos para el globo 3D
GET/endpoints/statsEstadísticas agregadas
GET/endpoints/{id}Detalle del endpoint
POST/endpoints/{id}/enrichActivar enriquecimiento para un endpoint
POST/endpoints/enrich-allEnriquecimiento masivo
GET/scansListar escaneos
POST/scansCrear un escaneo
POST/scans/{id}/runEjecutar un escaneo
GET/scans/query-presetsPresets de consulta Shodan disponibles
WS/scans/{id}/progressProgreso del escaneo en vivo
POST/attackLanzar una prueba de ataque
WS/attack/{id}/streamTransmisión en vivo del registro de ataque
GET/attack/{id}/statusEstado del ataque