DNS es como la "agenda telefónica" de Internet: traduce nombres de dominio en direcciones IP.
Por ejemplo: www.google.com → 8.8.8.8
📚 Conceptos clave
🔄 Resuelve nombres de dominio en IPs
🧠 No tiene una base de datos centralizada
🌍 Distribuido en miles de servidores por todo el mundo
❗ Casi todo el tráfico DNS viaja sin cifrar
🏗️ Tipos de servidores DNS
Tipo
Descripción
🌍 Root Server
Gestiona los dominios de nivel superior (TLD). Solo hay 13 globales.
✅ Authoritative NS
Tiene autoridad sobre su zona. Su respuesta es final.
❓ Non-authoritative NS
Devuelve info desde otros servidores, no tiene autoridad directa.
💾 Caching Server
Guarda temporalmente respuestas para acelerar futuras consultas.
🔁 Forwarding Server
Solo reenvía consultas a otro servidor DNS.
💻 Resolver
Local, realiza la resolución (e.g., tu PC o router).
🛡️ Seguridad y privacidad
🔓 El DNS tradicional es no cifrado, permitiendo ataques como:
🔍 Sniffing de tráfico DNS
🔁 DNS spoofing / poisoning
🔐 Soluciones modernas:
Protocolo
Descripción
🧪 DoT
DNS over TLS
🌐 DoH
DNS over HTTPS
🛡️ DNSCrypt
Cifra entre cliente y servidor
🧾 Tipos de registros DNS
Registro
Función
🅰️ A
Devuelve dirección IPv4
🧪 AAAA
Devuelve dirección IPv6
📬 MX
Servidores de correo
🧭 NS
Nameservers del dominio
🧾 TXT
Textos libres: SPF, DMARC, verificación
🔁 CNAME
Alias de otro dominio
🔄 PTR
Reverse DNS: IP → Nombre
🗂️ SOA
Información de zona y admin del dominio
🔧 Configuración DNS con BIND9
🐧 BIND9 es el servidor DNS más usado en Linux. Administra zonas DNS a través de varios archivos.
🔹 Archivos principales
Archivo
Función
/etc/bind/named.conf
📦 Configuración global del servidor BIND
/etc/bind/named.conf.local
📍 Define las zonas (archivos que representan dominios)
/etc/bind/db.domain.com
🌐 Zona directa → Asocia nombres a IPs (A, MX, CNAME, etc.)
/etc/bind/db.10.129.14
🔁 Zona inversa → Asocia IPs a nombres (PTR)
📍 ¿Qué es una zona DNS?
Una zona representa un dominio (por ejemplo, miempresa.com) y sus subdominios (como www.miempresa.com o ftp.miempresa.com).
Hay 2 tipos:
🌐 Zona directa: nombre → IP (www.domain.com → 10.0.0.1)
🔙 Zona inversa: IP → nombre (10.0.0.1 → www.domain.com)
🗃️ 1. Archivo named.conf.local
Aquí se le dice a BIND qué dominios debe manejar y qué archivos de zona usar.
zone "domain.com" {
type master; # Este servidor es el "master"
file "/etc/bind/db.domain.com"; # Archivo con registros de zona directa
allow-update { key rndc-key; }; # Permite actualizaciones con clave
};
📌 Esto le dice a BIND: “Ey, soy responsable del dominio domain.com, y los registros están en ese archivo de zona”
📄 2. Archivo de zona directa: db.domain.com
Este archivo contiene los registros DNS del dominio. Es decir, a qué IP apunta cada nombre.
$ORIGIN domain.com. ; Dominio base
@ IN SOA dns1.domain.com. hostmaster.domain.com. (
2001062501 ; Serial (fecha)
21600 ; Refresh (6h)
3600 ; Retry (1h)
604800 ; Expire (1 semana)
86400 ) ; TTL (1 día)
IN NS ns1.domain.com. ; Nameserver
IN MX 10 mx.domain.com. ; Servidor de correo
server1 IN A 10.129.14.5 ; server1.domain.com → 10.129.14.5
ftp IN CNAME server1 ; ftp.domain.com → alias a server1
🔁 3. Archivo de zona inversa: db.10.129.14
Este archivo permite hacer una búsqueda inversa: saber qué nombre de host corresponde a una IP.
$ORIGIN 14.129.10.in-addr.arpa. ; Dominio invertido para reverse DNS
@ IN SOA dns1.domain.com. hostmaster.domain.com. (
2001062501
21600
3600
604800
86400 )
IN NS ns1.domain.com.
5 IN PTR server1.domain.com. ; 10.129.14.5 → server1.domain.com
📌 El nombre del archivo y dominio están al revés para representar IPs (10.129.14.5 → 5.14.129.10.in-addr.arpa)
✅ Resumen visual
Tarea
Archivo
Qué hace
🔧 Configurar zonas
named.conf.local
Define dominios y archivos de zona
🌐 Zona directa
db.domain.com
Nombres → IP
🔙 Zona inversa
db.10.129.14
IPs → Nombres
🧭 DNS — Footprinting en ofensiva
El fingerprinting DNS revela información crítica del objetivo, incluyendo hosts internos, servidores de correo, subdominios y más.
📌 ¿Qué podemos obtener?
🎯 Identificación de servidores de nombres
🕵️ Subdominios y hosts internos
📨 Servidores de correo (MX)
🔍 Versión del software DNS
🗺️ Transferencias de zonas (AXFR)
💥 IPs internas expuestas
📡 Consultas con dig
🔎 Obtener NS (Name Server)
dig ns inlanefreight.htb @10.129.29.218
📚 Consultar todos los registros visibles (ANY)
dig any inlanefreight.htb @10.129.29.218
⚠️ No siempre devuelve todo, depende de la configuración del servidor DNS.
💣 Transferencia de zona (AXFR) — Jackpot total
dig axfr inlanefreight.htb @10.129.29.218
Una transferencia de zona (AXFR) es un mecanismo del protocolo DNS que permite copiar todos los registros de una zona DNS desde un servidor primario a uno secundario.
👉 Está pensada para sincronizar datos entre servidores autorizados... pero si no está protegida, tú también puedes pedirle esa info. 😈
🔍 También prueba con subzonas:
Una de las herramientas más completas para la enumeración DNS automática es dnsenum.
Hace fuerza bruta, intenta AXFR, consulta versión de BIND y más — todo en un solo comando.