FakeDNS

Vamos a ir publicando aquí en DragonJAR diferentes artículos relacionados con el FakeDNS y es que los usos que se le pueden dar son variados.

FakeDNS

FakeDNS ¿Qué entendemos por DNS?

Actualización 2026 — El proyecto sigue vivo, pero cambió por dentro

El repositorio original de Crypt0s (github.com/Crypt0s/FakeDns) no está archivado y sigue disponible, aunque con un desarrollo pausado: el cambio importante llegó en abril de 2020, cuando el código migró de Python 2 a Python 3. El script de 2013 no corre tal cual en un sistema moderno; hay que usar la versión actual del repositorio. Y ojo con un detalle que rompe el tutorial original: el formato del `dns.conf` cambió. Ahora cada regla exige primero el tipo de registro, por ejemplo `A google.* 127.0.0.1`, y las reglas son expresiones regulares de Python. La versión actual soporta registros A, TXT, AAAA, PTR y SOA, incluye round-robin (alternar varias IP por regla) y reglas de DNS rebinding, y trae un `docker-compose.yml` para probarla aislada sin pelear con el resolvedor del sistema en el puerto 53.

Pues entendemos como DNS aquel servicio que utiliza una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet.

Aunque como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.

Peticiones de una máquina infectada

Ahora nos ponemos en la situación de que queremos ver que peticiones DNS realiza una máquina infectada.

Sabemos que esta máquina realiza peticiones contra ciertos dominios, lo que queremos hacer es ver que hace la muestra cuando no puede resolver ninguno de sus dominios.

Existen varios scripts y escenarios que nos ayudarán en ello, aquí usaremos un script en python de fakedns, basado en un archivo de configuración.

Bajamos del repositorio de github los archivos necesarios

darkmac:malware marc$ git clone https://github.com/Crypt0s/FakeDns.git
Cloning into ‘FakeDns’…
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 18 (delta 3), reused 15 (delta 2)
Unpacking objects: 100% (18/18), done

Para usar dicho script no necesitaremos configurar muchas cosas, miramos el archivo de configuración:

darkmac:FakeDns marc$ cat dns.conf
google.* 127.0.0.1
yahoo.* 9.9.9.9
facebook.* 4.4.4.4

El archivo de configuración ya viene preconfigurado para unos dominios en concreto.

Ejecutamos FakeDNS en nuestro entorno controlado, cualquier petición DNS a los dominios

  • Google
  • Yahoo
  • Facebook

Será contestada por las direcciones IP especificadas en el fichero de configuración.

google_dns

FakeDNS, como podeis comprobar hay solicitudes que si que han hecho match con las del fichero de configuración, pero hay otras solicitudes que no estaban en el fichero de configuración por lo tanto serán tratadas como se tratarían normalmente.

Uso de un Script en python

Para usar este script en python podemos ir al repositorio en GitHub:

https://github.com/Crypt0s/FakeDns

Actualización 2026 — Cuándo basta un FakeDNS y cuándo pedir algo más completo

Si tu objetivo es el análisis dinámico de malware en un laboratorio aislado, FakeDNS sigue siendo una opción ligera y válida: finge las respuestas DNS para observar a dónde intenta llamar la muestra, tal como describe el artículo original. Pero si necesitas simular la red completa (HTTP, FTP, SMTP y demás servicios), el estándar actual es FakeNet-NG, del equipo FLARE de Mandiant: mantenido, multiplataforma y con reportes en HTML de los indicadores de red capturados. INetSim sigue siendo el clásico de ese mismo terreno, muy usado junto a REMnux en laboratorios de análisis. Y una nota para no confundirse: en PyPI existe otro paquete llamado fakedns (instalable con `pip`), un proyecto distinto al FakeDns de Crypt0s aunque con la misma filosofía. En cualquier caso, corre estas herramientas solo en entornos aislados: un DNS falso mal configurado en tu red real puede envenenar la resolución de nombres de máquinas legítimas.

Si tu empresa necesita entender a dónde llama realmente el software que analiza, qué dominios expone su infraestructura o cómo responde su red ante muestras sospechosas, en DragonJAR realizamos auditorías de seguridad profesionales para organizaciones en Colombia y Latinoamérica: análisis de malware, pruebas de penetración y evaluación de infraestructura con hallazgos accionables. Conversemos sobre el alcance que tu organización necesita.