← Todas las entradas

El Topo DNS: diseño de una intrusión silenciosa con túnel DNS

Una máquina DFIR para reconstruir una intrusión a partir de logs, con entrada web, un canal C2 por DNS y exfiltración por el mismo túnel.

Principiante · Linux
URL del reto: labs.thehackerslabs.com/machines/146


Por qué la diseñé

El Topo DNS es una máquina de análisis, no de explotación. La monté para que la resolución obligara a reconstruir una intrusión entera a partir de artefactos sueltos, leyendo los logs como lo haría un analista DFIR. La dificultad está en separar la señal del ruido y unir las piezas hasta cerrar la kill chain, más que en lanzar un exploit complicado.

La idea de fondo es que muchas intrusiones destacan por su normalidad aparente más que por ser espectaculares. Un solo POST entre miles de peticiones, unas consultas DNS que parecen anodinas y un acceso interno con credenciales reutilizadas bastan para comprometer más de un activo si nadie conecta los indicios.


La máquina de un vistazo

Aquí se investiga leyendo. La resolución se apoya en tres artefactos, el access.log del servidor web, el dns.log y el ftp.log. Juntos describen una intrusión completa, entrada por una web expuesta, descarga de un stager, canal de mando y control sobre DNS, exfiltración por ese mismo túnel y movimiento lateral a un sistema interno.


Cómo la monté, paso a paso

La anomalía mínima en el access.log

La entrada inicial se apoya en una rareza estadística más que en una firma evidente. En el access.log casi todo son peticiones GET, y dejé una sola POST contra /upload.php. Ese desequilibrio no demuestra la explotación por sí solo, pero marca el punto por donde arranca el análisis. Quería enseñar el valor de detectar qué evento rompe el patrón normal del servicio, que es como empiezan muchos incidentes fuera del laboratorio, con una funcionalidad de subida expuesta sin controles.

El stager traído desde fuera

Justo después de la entrada, el log muestra la descarga de un stager, p.sh, desde una IP externa. Ese salto es la señal de post-compromiso que quería dejar, el servidor comprometido pasa a comportarse como cliente de un recurso remoto. Esa inversión de rol es una pista muy útil cuando se leen logs de acceso con mentalidad defensiva.

El beaconing por DNS

El corazón de la máquina está en el dns.log. Ahí sembré un patrón de beaconing con subdominios numerados hacia un dominio de control (1.beacon.c2.eltopo.thl, 2.beacon...). El patrón es legible a propósito, para que se vea la transición del compromiso inicial al control remoto. Lo que quería enseñar es reconocer cuándo el DNS deja de parecer resolución legítima y empieza a encajar con telemetría de C2, porque casi todo sistema lo usa constantemente y conserva una falsa pátina de normalidad.

La exfiltración por el mismo túnel

Con el canal montado, la exfiltración reutiliza el DNS. Fragmenté el contenido de un fichero tipo shadow dentro de las etiquetas de subdominio, con los datos codificados a la izquierda y el dominio de control fijo a la derecha (data.eltopo.thl). Quería que dependiera de leer el patrón más que de una herramienta concreta. El aprendizaje es que la exfiltración puede reciclar un protocolo imprescindible para la operación normal en lugar de abrir un canal nuevo y ruidoso.

El pivote interno por FTP

El último tramo saca la intrusión de la máquina comprometida. El ftp.log muestra el frontal web alcanzando un sistema interno (10.0.0.50) por FTP, con un login en claro y la descarga de un backup de base de datos de clientes. Elegí FTP porque se lee fácil en bruto y representa bien un problema muy común, servicios internos heredados que un atacante sigue pudiendo usar en cuanto pisa el perímetro. El activo expuesto a internet rara vez es el objetivo final, casi siempre es solo el primer punto de apoyo.


Qué quería enseñar

El Topo DNS premia reconstruir contexto. Cada artefacto, aislado, dice poco. Juntos describen una intrusión completa con canal encubierto, movimiento lateral y robo de información.

FaseQué enseñaError que representa
POST en el access.logBuscar la anomalía en un log con mucho ruidoSuperficie web expuesta y abusable
Descarga del stagerRelacionar la entrada con el post-compromisoEjecución de contenido remoto en un host comprometido
Beaconing DNSDistinguir resolución legítima de C2Falta de visibilidad sobre el DNS saliente
Exfiltración por DNSLeer el DNS como canal de salida de datosProtocolos básicos reutilizados como transporte
Pivote por FTPLeer el activo expuesto como puente a la red internaSegmentación débil y confianza excesiva

Una intrusión silenciosa no necesita técnicas sofisticadas si encuentra una cadena razonable de decisiones débiles. El atacante solo tiene que enlazarlas, y el defensor, leerlas en orden.

ciberseguridadlaboratorioCTFescalada de privilegiosDFIRLinux