2025-02-15
Karim Ouazmir
Hackeando WireGuard: Incrustando 25KB de Métricas en Mensaje Tipo 5
Cómo abusamos del protocolo WireGuard para transmitir telemetría rica sin abrir una conexión TCP lateral.
El Problema de los Canales Laterales
La mayoría de los agentes funcionan así:
- Canal de Control: TCP/WebSocket persistente.
- Canal de Datos: Flujo separado.
- Túnel: VPN (WireGuard/OpenVPN).
Queríamos una sola conexión.
Mensajes de WireGuard
WireGuard usa Tipos 1-4. ¿Y si añadimos el Tipo 5?
Protocolo Personalizado "Wantasticd"
Modificamos WireGuard en wantasticd para soportar Tipo 5 (Telemetría).
En lugar de abrir un stream HTTP/gRPC separado, el agente empaqueta estos datos directamente en el flujo UDP de WireGuard.
Magia de Compresión
Usamos Zstandard (zstd) para comprimir ~25KB de datos crudos (Interfaces, escaneo WiFi, señales LTE) a ~1.2KB.
Por Qué Importa
- Cero Sobrecarga: Sin paquetes TCP keep-alive.
- Estado Atómico: Si el túnel está activo, las métricas fluyen.
- Escalabilidad: Millones de paquetes por segundo.