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
masq — Reconocimiento en vivo y auditoría de postura para la infraestructura de agentes de IA: escanea configuraciones de MCP, registros de sesión y APIs en busca de secretos, catálogos envenenados y fugas de CoT. | Kitploit
Herramientas/GitLabGitLab/wattocyber/masq
ReconocimientoAnálisis EstáticoAnálisis de VulnerabilidadesPruebas de Seguridad de APIsAuditoría de ConfiguraciónDetección de SecretosSeguridad de Cadena de SuministroSeguridad de IAAnálisis de Registros
GitLabwattocyber/masq

masq

Reconocimiento en vivo y auditoría de postura para la infraestructura de agentes de IA: escanea configuraciones de MCP, registros de sesión y APIs en busca de secretos, catálogos envenenados y fugas de CoT.

hace 2 díasAún no revisado

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 RepositorioSitio web

masq: siéntate en el asiento del agente

Mascarada renacentista. Siéntate en el asiento del agente.

masq

Siéntate en el asiento del agente.

Una CLI que habla MCP y OpenAI-compat como lo hace el modelo, y luego informa como linpeas. Hallazgos más remediaciones. Sin payloads de explotación. Sin descifrado de CoT.

QuéReconocimiento en vivo de la infraestructura del agente: configuraciones MCP, listeners, registros de sesión, eco de cadena de pensamiento cifrada, APIs sin autenticación, envenenamiento de catálogo, árboles de habilidades.
Para quiénOperadores de Hermes, Grok, Claude, Cursor, VS Code, Codex y stacks de modelos locales que necesitan ver lo que el agente puede ver.
Lo que no esNo es un generador de jailbreaks. No es el decodificador de modelos más débiles arXiv:2608.09867. No es una puerta de enlace en tiempo de ejecución.
EstadoBeta. El cargo test offline es la puerta pública. El --lab en vivo es para hosts que posees.
LicenciaMIT

pipeline license rust

Por qué existe

Los escáneres estáticos de MCP (Invariant mcp-scan, mcp-security-scan) hacen lint de esquemas y configuraciones. Los chequeos de salud hacen ping a initialize. El hueco está en el asiento:

  1. Los blobs de razonamiento cifrado se devuelven al cliente y se guardan en los registros de sesión. Son portables entre sesiones, usuarios y modelos hermanos más débiles (arXiv:2608.09867). Al raspar 315k blobs públicos se recuperaron 182 credenciales. masq detecta esos blobs. No los decodifica.
  2. Una gran parte de los servidores MCP públicos no tienen autenticación. Si puedes initialize, eres el agente.
  3. Los puertos de modelos locales (:11434, :8000) suelen vincularse a 0.0.0.0 sin bearer.

Usamos ruedas existentes, no las reescribimos: detectores de catálogo existentes + pin/check, netstat, ureq solo-GET, OWASP MCP Top 10 como taxonomía de hallazgos. No clonamos mcp-scan ni mcp-security-scan.

Instalación

root@kitploit:~
git clone https://gitlab.com/WattoCyber/masq.git
cd masq
cargo install --path .
# binary: masq
cargo test
# expect: exit 0

Suite mundial (binario contra fixtures, mocks locales, reconocimiento de este host):

root@kitploit:~
python scripts/world_suite.py
# field = ~/.grok/sessions  lab = allowlisted hosts  bench = frozen-corpus wall
python scripts/world_suite.py --lanes all

Máquina remota estilo Kali, desde el escritorio:

root@kitploit:~
MASQ_REMOTE_HOST=user@host bash scripts/deploy_kali.sh
# on the box:
~/.local/bin/masq --plain
MASQ_LAB_HOSTS=... ~/.local/bin/masq --lab --plain

Ruta feliz

root@kitploit:~
masq                         # live stream + posture report (includes skills)
masq --lab                   # same, plus allowlisted homelab hosts
masq tui                     # boxed TUI, stays until Ctrl+C
masq --plain                 # report only, no live stream
masq --json                  # machine report
masq recon                   # same dump, recon only
masq sniff ~/.grok/sessions  # CoT / secrets in session logs
masq sniff --timeline PATH   # file-order blob/secret/reason lines (no decrypt)
masq api                     # GET /v1/models on local (and --lab) ports
masq sit --url http://127.0.0.1:4443/mcp
masq chameleon --url http://127.0.0.1:4443/mcp -o /tmp/chameleon
masq chameleon --url ws://127.0.0.1:9000/mcp -o /tmp/chameleon
masq chameleon --url unix:///tmp/mcp.sock -o /tmp/chameleon
masq chameleon --token-file ~/.secrets/mcp.txt --url http://127.0.0.1:9/mcp -o /tmp/chameleon
masq chameleon -- python -m their_mcp -o /tmp/chameleon
# then: npx -y @copilotkit/aimock --config /tmp/chameleon/aimock.json
masq discover                # find VS Code / Cursor / Claude / Grok / Hermes MCP configs
masq proxy --upstream http://127.0.0.1:4443/mcp --block
masq sast ./server           # local sinks (semgrep if present)
masq classify --url http://127.0.0.1:4443/mcp --lab
masq overnight --lab --hours 6
masq map --from reports/overnight-YYYYMMDD/latest.json

# catalog
masq fixtures/t3_line_jump.json
masq fixtures/clean_calculator.json --trusted
masq pin fixtures/clean_calculator.json -k calc
masq check fixtures/clean_calculator.json -k calc
masq detectors

Salida: 0 limpio · 2 hallazgos ≥ --fail-on (por defecto high) · 1 error.

La TUI es opt-in (masq tui o --tui). En una tty el valor por defecto es un stream en vivo estilo linpeas y luego el informe. Cron usa --plain / --no-color.

Comandos

Alias: doctor / audit → scan. chameleon → mimic. posture → seat.

Módulos vs OWASP MCP Top 10

Transportes y autenticación

sit / chameleon hablan:

  • Streamable HTTP (http://)
  • HTTP+SSE (evento del endpoint GET, luego POST)
  • ws://
  • unix: y npipe:
  • stdio (--framing auto prueba NDJSON y luego Content-Length)

Autenticación (nunca se vuelca al informe):

  • --token-file PATH (la primera línea se convierte en Authorization: Bearer …)
  • --token-env VAR
  • --header "Name: value" (repetible)

wss:// no está integrado. Stunnel a ws:// o usa HTTP. HTTP sigue cero redirecciones.

El initialize de stdio no publicita sampling. Marca el sampling / elicitation del servidor. Las URLs de documentación (model-catalog.json, /docs/) se ignoran a propósito.

Hosts que masq descubre

Raíces de config + skills bajo $HOME / %USERPROFILE%:

VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Grok, Hermes, Codex, Continue, Gemini CLI, Amp, Kiro, OpenCode, Amazon Q, Antigravity, OpenClaw.

Además, .mcp.json en el cwd y MASQ_EXTRA_CONFIG (lista de rutas del SO).

Lista de permitidos del lab (--lab)

--lab es una lista de permitidos, no un escaneo /24. Está configurada por el operador. Nada está compilado más allá del loopback.

  • Variable de entorno MASQ_LAB_HOSTS: host:port o hosts separados por coma, espacio o nueva línea.
  • Archivo .masq/lab-hosts: un host por línea, comentarios #.

Ejemplo:

root@kitploit:~
export MASQ_LAB_HOSTS="192.0.2.10,192.0.2.11"
masq --lab

MASQ_LAB_HOSTS se lee para las sondas de API y la consolidación de flota de la TUI. MASQ_SIT_URLS (o un --mcp-url) suministra URLs MCP sobre las que tomar asiento con --lab.

sit --url fuera de loopback necesita --lab y un host en la lista de permitidos. El initialize sin autenticar en loopback es High. Fuera de la máquina es Critical.

No apuntes proxy a un host en el que no te sentarías.

Límites estrictos

Prioridad de sniff: primero chat_history.jsonl, luego request_dump_* de Hermes, después otros jsonl. El walk termina. No conserva los primeros 300 resultados de WalkDir. Usa masq sniff <one-session-dir> para ir más a fondo.

Overnight

root@kitploit:~
masq overnight --lab --hours 6 --interval-mins 20
# writes <cwd>/reports/overnight-YYYYMMDD/{latest.json,latest.md,latest.txt,delta.txt}

No muta configuraciones. No hace tools/call al servidor en vivo. delta.txt es baseline / no_change / CHANGE más + título de severidad y - título de severidad.

classify --llm y el complemento de triaje de la TUI son los únicos POST de completions (Grok /v1/chat/completions, confirmación del operador). Sin clave: solo remediaciones locales. La clave proviene de XAI_API_KEY o ~/.secrets/xai.txt. Nunca se vuelca.

Arquitectura

root@kitploit:~
CLI (clap)  masq
  → seat | recon | sniff | api | sit | chameleon
  → discover | proxy | sast | classify | overnight | map
  → scan | multi | pin | check | detectors | tui
  → client (HTTP / SSE / ws / unix / npipe / stdio)
  → normalize (full-schema walk, caps)
  → detectors + sniff + recon + sit findings
  → report (text / JSON / Markdown) + optional TUI

Crate de librería: masq (scan_from_tools_list, scan_stdio, run_seat, PostureReport).

Alcance honesto

No vuelques ~/.secrets. Recon cuenta archivos. Ruta + "loaded".

Pruebas offline

root@kitploit:~
cargo test
cargo clippy --all-targets -- -D warnings

Se espera salida 0.

Fixtures: T1 envenenamiento de descripción, T3 line-jump, T6 nombres de parámetros, T8 ANSI, T13 nombres duplicados, rugpull de pin, multi-lista, mock NDJSON en vivo en tests/mock_mcp_server.py.

Los secretos se mantienen fuera de git (reports/, data/, .env, *.key, secrets/, .masq/).

Licencia

MIT. Copyright 2026 SamsonCyber.

Descargar herramienta
ComandoQué hace
seat (por defecto)Postura completa: recon + sniff + api + skills + sit opcional.
reconArchivos de configuración, listeners, shadow URLs, argv de sudo, npx/uvx sin pin.
sniffRegistros de sesión en busca de secretos, razonamiento en texto plano, eco de CoT cifrado.
sniff --timelineLíneas T0001 en orden de archivo. Sin descifrado. Tope de 200 eventos/archivo.
apiSolo-GET /v1/models (y similares) en loopback; --lab añade peers de la lista de permitidos.
sitHabla MCP: initialize, notifications/initialized, tools/list, prompts/list, resources/list. Nunca origina tools/call.
chameleon / mimicToma asiento en un catálogo en vivo o de archivo, escribe catalog.json + aimock.json + calls.json. Los sobres de ejemplo de tools/call son solo para aimock.
discoverImprime las rutas conocidas de configs MCP de agentes. Sin spawn.
proxyReenvía el JSON-RPC del agente. --block rechaza parámetros/resultados de tools/call con forma de secreto. Listen por defecto 127.0.0.1:9877.
sastSinks locales de código fuente. Usa semgrep si está instalado.
classifyRevisión local de IPI / envenenamiento de un tools/list en vivo. --llm pregunta a Grok (clave del operador).
overnightRepite seat hasta que transcurran --hours. Escribe informes. No muta configuraciones.
mapConsultas de texto de rutas de ataque sobre un JSON de postura guardado. Sin diagrama.
scan / multiLint estático de catálogo (las rutas .json desnudas se reescriben a este comando).
pin / checkAlmacén de pines por hash de contenido (.masq/pins.json) para CI anti rug-pull.
detectorsImprime el paquete de reglas del catálogo.
tuiSeat en modo caja. Permanece hasta Ctrl+C.
MóduloCubre
reconMCP01 ruta de secretos, MCP04 npx/uvx sin pin, MCP07/09 listeners y shadow URLs, MCP05 argv de sudo
catalogMCP03 envenenamiento / sombreado / rugpull de esquema
skillsLos mismos detectores de catálogo en SKILL.md (Hermes, Grok, Claude, Cursor, Codex, Gemini, Amp, Kiro, OpenCode, OpenClaw). Sin Snyk cloud.
sitMCP02 ampliación del alcance (scope creep), MCP03 tools/list en vivo, MCP07 initialize sin autenticar, publicidad de sampling/elicitation por el servidor, Streamable HTTP (2025-06-18) y luego HTTP+SSE (2024-11-05), Origin DNS-rebinding
sniffMCP01 + MCP10 + eco de CoT cifrado arXiv:2608.09867 (incluido thinkingSignature)
apiMCP07 /v1/models sin autenticar, MCP09 bind LAN
watchpin-diff en .masq/pins.json + skills. Overnight lo activa. No es un proxy.
fleetConsolidación de la lista de permitidos de lab en una sección FLEET
mapConsultas de texto de rutas sobre un informe de postura
LímiteValor
Archivo tools/list8 MiB
Archivo sniff8 MiB (se muestrean los primeros 2 MiB si es mayor)
Archivos sniff / raíz300 (mtime más reciente dentro de la prioridad)
Eventos de timeline / archivo200, luego timeline truncated
Líneas T del timeline500 (inspect y collapse siguen ejecutándose)
Profundidad de recorrido del esquema64
Herramientas por inventario5_000
Sonda HTTPSolo GET, 2s API / 5s sit
Handshake de sittimeout + kill
Esta herramientaLo que no es
Tomar asiento como el cliente del agente (initialize + list)Originar tools/call contra un servidor en vivo
Detectar eco de CoT cifrado en los registrosDescifrar CoT o reproducirlo en un modelo más débil
GET /v1/modelsPOST de completions (excepto el triaje opcional de la TUI / classify --llm)
Rugpull por pin-hash en un catálogoPKI firmada / bóveda de pines empresarial
Reenviar el tools/call del agente en proxy --blockPuerta de enlace DLP completa en tiempo de ejecución / plano de control SaaS
Lint local del árbol de habilidadesSnyk / SCA en la nube
ComprobaciónEsperado
masq fixtures/clean_calculator.json --trustedexit 0
masq fixtures/t3_line_jump.jsonexit 2
masq fixtures/t13_duplicate_names.jsonexit 2 (sombreado de herramientas)
masq sniff --timeline fixtures/ (sin TTY / --json)solo T0001 con la bandera
masq chameleon fixtures/clean_calculator.json -o <tmpdir>catalog.json, aimock.json, calls.json
masq --no-color en vivotokens redactados (…, no el sk- completo)