Saltar al contenido
OPS // KITitspentest.sh

R-WEB

websocat

Una CLI al estilo netcat para conectar y sondear endpoints WebSocket a mano.

Sitio oficialVolver al catálogo

RESUMEN

websocat (github.com/vi/websocat) es un cliente WebSocket de línea de comandos al estilo de netcat: abre una conexión `ws://` o `wss://` y conecta stdin/stdout a los frames, así puedes escribir un mensaje y leer la respuesta sin una pestaña de navegador ni una sesión de proxy completa de por medio. Eso lo hace la herramienta rápida para un backend de chat, una API de actualizaciones en vivo o cualquier endpoint que hable WebSocket en vez de HTTP plano.

Como es scripteable, también encaja en un bucle de fuzzing — encadena una wordlist o un script generador pequeño a websocat y lee lo que vuelve, o fija `-t`/`-b` para framing de texto o binario cuando el objetivo es exigente. Para algo más que un puñado de sondas manuales, captura el tráfico con un proxy interceptor que soporte WebSocket (Burp, mitmproxy) para que peticiones y respuestas queden en el mismo rastro de evidencia que el resto de las pruebas HTTP.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Abrir un endpoint WebSocket a mano para enviar un mensaje y leer la respuesta en crudo.

  • 02

    Repetir un handshake de autenticación capturado en el navegador para confirmar que sigue funcionando desde la CLI.

  • 03

    Encadenar una wordlist pequeña o un set de payloads a un endpoint WebSocket como paso de fuzzing manual.

  • 04

    Enlazar un puerto TCP local con un WebSocket remoto (o al revés) para alcanzar un servicio que solo habla uno de los dos.

PRIMEROS PASOS

Cuando una app web en alcance usa un endpoint WebSocket y necesitas abrir, enviar y leer frames en crudo a mano en vez de depender de las devtools del navegador.

  1. Confirma que el endpoint WebSocket y el host están dentro del alcance autorizado.
  2. Conecta primero sin payload para confirmar el handshake y cualquier header/cookie requerido.
  3. Envía un mensaje conocido y compara la respuesta con la que produjo el navegador.
  4. Pasa a entrada scripteada o fuzzed solo después de que la línea base manual coincida, y mantente dentro del ritmo acordado.
websocat — bash
websocat wss://target.example/ws

ANTES DE USARLA

Qué revisar antes de lanzarla

Una conexión WebSocket a menudo salta los checks de auth aplicados al handshake HTTP inicial — confirma que no estás evitando un control de acceso al conectar directo en vez de por el flujo de la app.

El tráfico contra un servicio WebSocket de producción debe respetar el ritmo y alcance acordados del engagement; un bucle scripteado de mensajes es tan disruptivo como cualquier otra inundación.

Los frames capturados pueden llevar tokens de sesión o datos personales de otros usuarios si el servicio es compartido — trata las transcripciones guardadas bajo las mismas reglas que el resto de la evidencia del engagement.

SIGUE EXPLORANDO

Ver toda la fase →