Silent Harvest — Exfiltración por DNS tunneling
Una estación filtra un fichero de nóminas fuera de la red usando solo DNS. Demostrarlo, cuantificarlo y reconstruir lo robado.
No hay subida HTTP ni correo, pero sí un pico de DNS. Hipótesis: DNS tunneling, con datos codificados en las etiquetas de subdominio hacia un dominio del atacante.
Rankear los dominios padre que reciben más consultas y buscar etiquetas largas de alta entropía:
# dominios más consultados en el PCAP tshark -r dns-exfil.pcap -Y 'dns.flags.response==0' -T fields -e dns.qry.name \ | rev | cut -d. -f1-2 | rev | sort | uniq -c | sort -rn | head
Las consultas con datos usan prefijo dNNNN y alfabeto base32 (a-z, 2-7). Contarlas, y luego ordenar, unir y decodificar en base32 para reconstruir el fichero:
tshark -r dns-exfil.pcap -Y 'dns.flags.response==0' -T fields -e dns.qry.name \ | grep -E '^d[0-9]{4}\.' | sort -t. -k1.2n | awk -F. '{print $2}' \ | tr -d '\n' | python3 -c 'import sys,base64;s=sys.stdin.read().upper();print(base64.b32decode(s+"="*((-len(s))%8)).decode("utf-8","replace"))'
Alertar sobre nombres DNS con etiquetas muy largas y de alta entropía hacia un mismo dominio padre — tunneling clásico.
detection:
selection_long_label:
dns.query.name|re: '([a-z2-7]{40,})\.'
condition: selection_long_label
level: high # tags: attack.t1048.003, attack.t1071.004Exfiltración confirmada y cuantificada; fichero robado reconstruido desde la captura. Lab completo, reglas y capa ATT&CK:
silent-harvest ↗