Descripción

BeaconDNS es un listener de tipo externo que utiliza el protocolo DNS como canal de comunicación. Los agentes codifican sus datos en consultas DNS (típicamente registros TXT o A) y el servidor responde con las tareas pendientes codificadas en las respuestas DNS.

Características

PropiedadValor
Nombre internoBeaconDNS
TipoExterno
ProtocoloDNS
DirecciónAgente → Servidor
Agente compatibleBeacon
Pluginbeacon_listener_dns.so

Caso de uso

BeaconDNS es ideal cuando:

  • HTTP/HTTPS está bloqueado o fuertemente inspeccionado
  • El tráfico DNS es permitido (prácticamente siempre)
  • Se necesita máxima discreción en la exfiltración
  • El agente está en una red con proxy restrictivo que solo permite DNS
Red restrictiva                     Internet

[Agente] ──DNS──► [DNS Resolver] ──DNS──► [Servidor DNS] ──► [JustServer]
                  (corporativo)           (tu dominio)

Configuración

Prerequisitos

Para usar BeaconDNS necesitas:

  1. Un dominio registrado — Por ejemplo, mi-dominio.com
  2. Registros NS configurados — Que apunten al servidor JustC2

Configurar DNS

En tu proveedor de dominio, crea estos registros:

ns1.mi-dominio.com    A      <IP_del_servidor_JustC2>
data.mi-dominio.com   NS     ns1.mi-dominio.com

Todas las consultas a *.data.mi-dominio.com serán resueltas por tu servidor JustC2.

Crear un listener BeaconDNS

  1. Abre el panel de Listeners en JustClient
  2. Haz clic en Create Listener
  3. Selecciona BeaconDNS
  4. Configura el dominio y el puerto

Parámetros

ParámetroDescripciónEjemplo
NameNombre del listenerdns-covert
DomainDominio para las consultas DNSdata.mi-dominio.com
Bind PortPuerto DNS (debe ser 53)53

Flujo de comunicación

1. El agente codifica datos en subdominios
   Ejemplo: abcdef123.data.mi-dominio.com
2. La consulta DNS viaja a través de la infraestructura DNS
3. Llega al servidor JustC2 que actúa como servidor DNS autoritativo
4. JustC2 decodifica los datos y encola las tareas en la respuesta DNS
5. El agente decodifica la respuesta y ejecuta las tareas

Limitaciones

  • Ancho de banda bajo — DNS tiene un límite práctico de ~250 bytes por consulta
  • Latencia alta — El TTL y los resolvers DNS añaden latencia
  • No apto para transferencias grandes — Usa HTTP para archivos grandes
  • Puerto 53 — Requiere permisos de root para escuchar en puerto 53

Consideraciones OPSEC

  • Las consultas DNS excesivas o con subdominios largos pueden generar alertas
  • Algunos IDS detectan tunneling DNS por entropía de los subdominios
  • Ajusta el sleep del agente para reducir el volumen de consultas
  • Usa DNS over HTTPS (DoH) si es posible para cifrar las consultas
  • Registra el dominio con información WHOIS privada