Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
promptmap — un escáner de seguridad para aplicaciones LLM personalizadas | Kitploit
Herramientas/GitHubGitHub/utkusen/promptmap
Escáneres de VulnerabilidadesSeguridad WebPruebas de PenetraciónAprendizaje y EducaciónSeguridad de IATop en Seguridad de IA #8
GitHubutkusen/promptmap

promptmap

un escáner de seguridad para aplicaciones LLM personalizadas

Ver Repositorio
1.2k13467hace 10 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

_________ O O o.-. ¡Humanos, no os resistáis! |/ ,-'-.() / /_, / /_|.-.| _____ / --O-- (.--""" /\ _/\ |
( o.o ) / De Utku Sen /|\ -'--'
/
/
|

| - | / _ __ _ _ ___ _ __ _ | | _ __ __ _ _ | \
/| | | '
\ '
/ _ \ ' | '
\ | ' / ` | ' \ ) |
/ | | | .
/
| ___/
||| ./_|||_,| .// /
/ |-----| || || |_| |
___|


promptmap2 es un escáner automatizado de inyección de instrucciones para aplicaciones LLM personalizadas. Soporta dos modos de prueba:

- **Prueba de caja blanca:** Proporcione sus instrucciones del sistema y la información del modelo. promptmap2 ejecuta el propio LLM objetivo y lo prueba.

- **Prueba de caja negra:** Apunte promptmap2 a un endpoint HTTP externo. Envía instrucciones de ataque por HTTP e inspecciona las salidas devueltas.

Opera utilizando una arquitectura de dos LLM:

- **LLM objetivo:** La aplicación LLM que se está probando en busca de vulnerabilidades
- **LLM controlador:** Un LLM independiente que analiza las respuestas del objetivo para determinar si los ataques han tenido éxito

La herramienta envía instrucciones de ataque a su LLM objetivo y utiliza el LLM controlador para evaluar si el ataque fue exitoso en función de condiciones predefinidas.

Incluye reglas de prueba exhaustivas en múltiples categorías, incluyendo robo de instrucciones, jailbreak, generación de contenido dañino, pruebas de sesgo y más.

> [!IMPORTANTE]  
> promptmap fue lanzado inicialmente en 2023 pero reescrito por completo en 2025.

📖 ¿Quiere asegurar sus aplicaciones LLM? [Puede comprar mi libro electrónico](https://utkusen.gumroad.com/l/securing-gpt-attack-defend-chatgpt-applications)

## Características

- **Soporte para múltiples proveedores de LLM**:
  - Modelos OpenAI GPT
  - Modelos Anthropic Claude
  - Modelos Google Gemini
  - Modelos XAI Grok
  - Modelos de código abierto mediante Ollama (Deepseek, Llama, Mistral, Qwen, etc.)
- **Reglas de prueba exhaustivas**: Más de 50 reglas predefinidas en 6 categorías
- **Evaluación flexible**: Criterios de aprobado/rechazo basados en condiciones para cada prueba
- **Reglas personalizables**: Reglas basadas en YAML con condiciones de aprobado/rechazo
- **Objetivos HTTP externos**: Apunte escaneos de caja negra a cualquier endpoint mediante configuraciones YAML ligeras

![promptmap2 en acción](https://assets.kitploit.com/production/public/readmes/6057/01999b2124c4cdf335fca2f422e41748bffc5d57fff07762ea9d92c7aa411ea8.png)

## Instalación

1. Clone el repositorio:
```bash
git clone https://github.com/utkusen/promptmap.git
cd promptmap
  1. Instale los paquetes de Python requeridos:
pip install -r requirements.txt

Claves de API

Establezca la clave de API adecuada para el proveedor elegido.

export OPENAI_API_KEY="su-clave-openai"

Otros proveedores compatibles utilizan ANTHROPIC_API_KEY, GOOGLE_API_KEY y XAI_API_KEY.

Instalación de Ollama

Si desea utilizar modelos locales, necesita instalar Ollama.

Vaya a la página de descarga de Ollama y siga las instrucciones de instalación.

Uso

Prueba de caja blanca

Debe proporcionar su archivo de instrucciones del sistema. El archivo predeterminado es system-prompts.txt. Puede especificar su propio archivo con la bandera --prompts. Se proporciona un archivo de ejemplo en el repositorio.

Uso básico

  1. Probar modelos OpenAI:
python3 promptmap2.py --target-model gpt-3.5-turbo --target-model-type openai

Los proveedores Anthropic, Google y XAI siguen el mismo patrón: elija el nombre de modelo correcto y establezca --target-model-type como anthropic, google o xai.

  1. Probar modelos locales mediante Ollama:
python3 promptmap2.py --target-model "llama2:7b" --target-model-type ollama
# Si el modelo no está instalado, promptmap le pedirá que lo descargue. Si desea descargarlo automáticamente, puede usar la bandera `-y`.
  1. Probar con una ubicación de servidor Ollama personalizada:
# Por defecto, promptmap2 se conecta a Ollama en http://localhost:11434
# Puede especificar una URL personalizada si su servidor Ollama se ejecuta en otro lugar
python3 promptmap2.py --target-model "llama2:7b" --target-model-type ollama --ollama-url http://192.168.1.100:11434

Uso de diferentes modelos controladores

Por defecto, se utiliza el mismo modelo como objetivo y controlador.

[!IMPORTANTE]
Para el modelo controlador, se recomienda encarecidamente utilizar uno de estos modelos potentes para una evaluación precisa:

  • OpenAI GPT-5
  • Google Gemini 2.5 Pro
  • Anthropic Claude 4 Sonnet
  • gpt-oss:20b (mediante Ollama)

Los modelos más débiles pueden no analizar los resultados con precisión y podrían provocar falsos positivos o negativos.

# Utilizar GPT-4o como controlador para probar un objetivo GPT-3.5
python3 promptmap2.py --target-model gpt-3.5-turbo --target-model-type openai \
  --controller-model gpt-4o --controller-model-type openai

# Utilizar Claude 4 Opus como controlador para probar un modelo local Llama
python3 promptmap2.py --target-model llama2:7b --target-model-type ollama \
  --controller-model claude-4-opus-20240229 --controller-model-type anthropic

Prueba de caja negra

Si no controla la instrucción del sistema del LLM objetivo, aún puede atacarlo proporcionando un esquema de solicitud HTTP. Establezca --target-model-type http y suministre --http-config apuntando a un archivo YAML que describa cómo enviar cada carga útil. Campos clave:

  • url: Destino de la solicitud. Por ejemplo: https://assistant.example.com/chat
  • method: Verbo HTTP, por defecto POST.
  • headers: Puede añadir cualquier cabecera que desee. Por ejemplo: Content-Type: application/json, Authorization: Bearer <token>
  • payload_placeholder: La instrucción de ataque se insertará aquí (se admiten múltiples posiciones): "{PAYLOAD_POSITION}"
  • payload_encoding: Puede ser none, url o form para controlar cómo se codifican las cargas útiles antes de la inserción.
  • json o body: Defina la carga útil de la solicitud.
  • verify_ssl: Establézcalo en true para habilitar la verificación TLS (deshabilitado por defecto por conveniencia al interceptar tráfico).
  • proxy: Configuración de proxy opcional (scheme, host, port y credenciales opcionales) utilizada tanto para tráfico HTTP como HTTPS.
  • answer_focus_hint: Fragmento de cadena opcional que señala dónde se encuentra la respuesta del asistente dentro de respuestas HTTP ruidosas.

Ejemplo de solicitud JSON (consulte http-examples/http-config-example.yaml):

name: Example External Chat Endpoint
method: POST
url: https://chat.example.com/v1/messages
headers:
  Content-Type: application/json
json:
  messages:
    - role: user
      content: "{PAYLOAD_POSITION}"
answer_focus_hint: '"content": "{ANSWER_POSITION}"'
proxy:
  scheme: https
  host: 127.0.0.1
  port: 8080

Ejemplo de solicitud POST clásica con codificación de carga útil (http-examples/http-config-form.yaml):

name: Form Endpoint
method: POST
url: https://legacy.example.com/api/submit
headers:
  Content-Type: application/x-www-form-urlencoded
payload_encoding: form
body: "username=qa_tester&payload={PAYLOAD_POSITION}&mode=probe"
answer_focus_hint: '"message={ANSWER_POSITION}"'

promptmap2 reemplaza cada entrada {PAYLOAD_POSITION} con la instrucción de ataque actual, realiza la solicitud HTTP y alimenta el cuerpo de la respuesta de vuelta al LLM controlador para su evaluación. Cuando se proporciona answer_focus_hint, se indica al LLM evaluador que se centre en ese fragmento de la respuesta.

Descargar herramienta