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.
- Confirma que el endpoint WebSocket y el host están dentro del alcance autorizado.
- Conecta primero sin payload para confirmar el handshake y cualquier header/cookie requerido.
- Envía un mensaje conocido y compara la respuesta con la que produjo el navegador.
- Pasa a entrada scripteada o fuzzed solo después de que la línea base manual coincida, y mantente dentro del ritmo acordado.
websocat wss://target.example/wsANTES 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.