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í:

  1. Canal de Control: TCP/WebSocket persistente.
  2. Canal de Datos: Flujo separado.
  3. 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

  1. Cero Sobrecarga: Sin paquetes TCP keep-alive.
  2. Estado Atómico: Si el túnel está activo, las métricas fluyen.
  3. Escalabilidad: Millones de paquetes por segundo.

Ver las Métricas en Acción