
Pruebas colaborativas de seguridad de aplicaciones entre humanos y agentes mediante CLI y MCP
<img width="400" height="160" alt="go-appsec/toolbox" src="https://assets.kitploit.com/production/public/readmes/12195/899658aaebd95d74c5a2eb8eff64d2234300b95d43084d8dd1153d2edb6a9107.png" /> [](https://github.com/go-appsec/toolbox/blob/main/LICENSE) [](https://github.com/go-appsec/toolbox/actions/workflows/tests-main.yml) [-Significant%20AI%2C%20fully%20reviewed-1f77b4)](https://github.com/vibesdk/vibe-scale/blob/main/scale/vibe-1.md#v2-u0-t0-score-10--significant-ai-fully-reviewed) **Herramientas de pruebas de seguridad de aplicaciones basadas en MCP para tu agente de programación.** No es un escáner, sino un banco de trabajo colaborativo. Los agentes tienen dificultades con las interfaces de usuario y las API con estado; tú eres bueno en ambas. Sectool te permite explorar una aplicación a través de su proxy mientras un agente analiza y manipula el mismo tráfico autenticado que generas. Tú te encargas de la autenticación y las interacciones con la interfaz de usuario; el agente consulta flujos, modifica solicitudes, encuentra reflexiones, monitoriza interacciones fuera de banda e intenta otras permutaciones. Combinar vuestras capacidades hace que las tareas rutinarias sean más fáciles, que los indicadores ocultos tengan menos probabilidades de pasar desapercibidos y que las pruebas complejas sean más exhaustivas. ## Primeros pasos ### 1. Instalar sectool ```bash go install github.com/go-appsec/toolbox/sectool@latest ``` **¿No tienes Go?** Descarga el binario para tu plataforma (Linux, macOS, Windows — amd64 y arm64) desde la [última versión](https://github.com/go-appsec/toolbox/releases). ### 2. Iniciar el servidor MCP (Model Context Protocol) ```bash sectool mcp ``` Esto inicia un servidor MCP en el puerto 9119 con un proxy HTTP integrado en el puerto 8080. ### 3. Configurar tu navegador Configura el proxy de tu navegador en `127.0.0.1:8080` (o el puerto especificado con `--proxy-port`). Para la interceptación HTTPS, instala el certificado CA desde `~/.sectool/ca.pem` (generado automáticamente en la primera ejecución). La mayoría de los navegadores lo aceptan a través de su configuración de certificados; en macOS también puedes añadirlo al llavero del sistema. **¿Usas Burp?** Sigue la [configuración de proxy de Burp](https://portswigger.net/burp/documentation/desktop/external-browser-config) en su lugar, y luego inicia sectool con `sectool mcp --burp`. ### 4. Conectar tu agente **Claude Code:** ```bash claude mcp add --transport http sectool http://127.0.0.1:9119/mcp ``` **Codex** (`~/.codex/config.toml`): ```toml [mcp_servers.sectool] url = "http://127.0.0.1:9119/mcp" ``` ### 5. Colaborar Trabaja con el agente para crear un plan de pruebas y ejecutarlo juntos. El agente puede consultar el historial del proxy, reproducir solicitudes modificadas, rastrear endpoints y probar interacciones fuera de banda mientras tú te encargas de las acciones basadas en el navegador, como la autenticación o la interacción y revisión de la interfaz de usuario. ## Opciones del servidor ### Backends de proxy **Nativo:** Proxy integrado con fidelidad de cable y soporte para HTTP/1.1, HTTP/2 y WebSocket. Diseñado para ser tan capaz como Burp para pruebas MITM. Un único binario proporciona el servidor MCP, el proxy y la CLI — totalmente autónomo y utilizable en entornos sin interfaz gráfica. **Burp (opcional):** Si prefieres una interfaz gráfica para revisar las acciones del agente o ya tienes Burp en ejecución, instala la extensión MCP desde el BApp Store y asegúrate de que el servidor MCP se ejecute en `http://127.0.0.1:9876/`. | Opción | Descripción | |--------|-------------| | (predeterminado) | Detección automática: intenta primero Burp MCP, recurre al proxy nativo | | `--proxy-port 8080` | Fuerza el proxy nativo en el puerto especificado | | `--burp` | Fuerza Burp MCP (falla si no está disponible) | ### Opciones de sesión #### Flujo de trabajo Sectool determina automáticamente el flujo de trabajo adecuado cuando el agente llama a la herramienta `workflow` al inicio de una sesión. Puedes omitir este paso y ahorrar tokens especificando el flujo de trabajo de antemano: ```bash sectool mcp # Predeterminado: el agente selecciona el tipo de tarea mediante la herramienta workflow sectool mcp --workflow explore # Modo de exploración preestablecido sectool mcp --workflow test-report # Modo de validación preestablecido sectool mcp --workflow none # Sin instrucciones de flujo de trabajo sectool mcp --workflow multi # Varios agentes comparten el servidor ``` | Modo | Descripción | |------|-------------| | (predeterminado) | El agente selecciona el tipo de tarea llamando a la herramienta `workflow` y recibe instrucciones de colaboración | | `explore` | Pruebas de seguridad exploratorias; todas las herramientas disponibles | | `test-report` | Validación de un informe de vulnerabilidad específico; herramientas de rastreo excluidas | | `none` | Sin instrucciones de flujo de trabajo, todas las herramientas disponibles de inmediato | | `multi` | Para cuando varios usuarios o agentes comparten el servidor; oculta funciones en las que un agente puede confundir a otro | Las instrucciones de flujo de trabajo guían a los agentes hacia pruebas colaborativas en lugar de intentar hacerlo todo de forma autónoma o guiarte por un proceso sin aportar valor. Si tienes ideas para mejorar la colaboración de los agentes, [abre una incidencia](https://github.com/go-appsec/toolbox/issues). #### Notas El flag `--notes` habilita las herramientas `notes_save` y `notes_list` para guardar observaciones vinculadas a flujos. Deshabilitado por defecto para mantener el uso de contexto al mínimo en sesiones cortas. Habilítalo cuando esperes múltiples hallazgos o compactaciones de conversación. ### Transportes MCP El servidor expone dos endpoints: - `/mcp` - HTTP en streaming (recomendado) - `/sse` - SSE (heredado, para clientes antiguos) ## Ejemplo de uso de la CLI La CLI comparte estado con el agente y proporciona una interfaz amigable para humanos para revisar, reproducir y crear scripts. Todos los comandos de la CLI se corresponden con herramientas MCP, por lo que el agente comparte el mismo estado. ```bash # Review what the proxy captured while you browsed sectool proxy summary sectool proxy list --host example.com sectool proxy cookies --name session_id # Crawl an app to discover endpoints and forms sectool crawl create --url https://example.com sectool crawl summary <session_id> # Replay a captured request with modifications sectool replay send --flow <flow_id> --set-header "X-Test: value" # Set up out-of-band interaction testing and check for callbacks sectool oast create sectool oast poll <oast_id> sectool oast get <event_id> # Compare two flows, detect reflections, inspect JWTs sectool diff <flow_a> <flow_b> --scope response sectool reflected <flow_id> sectool jwt <token> # Export a flow, edit it offline, and resend sectool proxy export <flow_id> # ... edit ./sectool-requests/<flow_id>/request.http ... sectool replay send --bundle <flow_id> ``` Usa `sectool <command> --help` para ver las opciones detalladas. ## Características principales - **Proxy con fidelidad de cable** - MITM para HTTP/1.1 y HTTP/2 que preserva el orden de las cabeceras, el uso de mayúsculas y minúsculas y las anomalías del protocolo - **Reproducción y mutación** - Reescribe tráfico en vivo mediante reglas de coincidencia/reemplazo o reenvía solicitudes capturadas con modificaciones a través de una API optimizada para agentes - **Diferenciación de flujos** - Comparación estructurada y consciente del tipo de contenido de dos flujos (a nivel de ruta JSON, texto unificado, tamaño binario) para una validación rápida de informes - **Análisis de superficie JS** - Extrae endpoints, rutas y secretos de paquetes JavaScript/HTML, y luego expande cualquier punto de llamada en sus solicitudes utilizables - **Detección de reflexiones** - Encuentra valores de parámetros de solicitud reflejados en las respuestas en múltiples variantes de codificación para descubrir puntos de inyección - **OAST** - Pruebas de interacción fuera de banda mediante Interactsh; crea dominios, sondea callbacks DNS/HTTP/SMTP - **Sondeo de redirecciones** - Las sesiones OAST pueden devolver redirecciones 307 para detectar si un objetivo sigue redirecciones, útil para cadenas SSRF y elusión de validaciones - **Rastreo** - Descubre endpoints, formularios y estructura de la aplicación; siembra desde el historial del proxy o URLs - **Soporte de WebSocket** - Interceptación a nivel de trama, proxy y coincidencia/reemplazo para mensajes WebSocket - **Modos de flujo de trabajo** - Guía específica para el agente según la tarea (explore, test-report) para mejorar la calidad de la colaboración y reducir el desperdicio de tokens - **Utilidades de codificación** - Codificación/decodificación URL, Base64, HTML, hashing (MD5/SHA/HMAC), inspección de JWT - **Integración con Burp Suite** - Interfaz gráfica opcional mediante la extensión Burp MCP; o ejecución totalmente sin interfaz gráfica con el proxy nativo ## Escaneo automatizado Combina sectool con [sidenuclei](https://github.com/go-appsec/toolbox-sidenuclei), un sidecar de primera parte que ejecuta [Nuclei](https://github.com/projectdiscovery/nuclei) contra cada endpoint que tocas. Inicia sectool con `--notes`, adjunta `sidenuclei` junto a tu sesión, y escaneará cada endpoint usando la solicitud capturada real, de modo que las pruebas se ejecutan con tus parámetros, cookies y sesión autenticada reales. Los hallazgos se registran como notas `finding` vinculadas al flujo que los desencadenó, dándote cobertura adicional mientras tú y tu agente os centráis en las pruebas manuales. ## Soporte de protocolos personalizados Más allá de HTTP y WebSocket, sectool admite protocolos personalizados y binarios (generalmente solicitud / respuesta) a través de un modelo de adaptador sidecar. Escribe un adaptador para conectar y comunicarte usando nuestra API sidecar. El tráfico del sidecar llega a la misma línea de tiempo unificada de flujos, por lo que `flow_get`, `diff_flow`, `replay_send` y otras herramientas funcionan sin modificaciones. Los adaptadores se pueden escribir en cualquier lenguaje sobre la API JSON-RPC 2.0, o en Go con el cliente SDK que gestiona el registro, la caché de reglas y la emisión de flujos. El [SDK y protocolo sidecar](https://github.com/go-appsec/toolbox/blob/main/sidecar/README.md) documenta ambos.