DNS Port (53)
Introduction
El Domain Name System (DNS) traduce nombres de dominio (por ejemplo, hackthebox.com) a direcciones IP numéricas (por ejemplo, 104.17.42.72). DNS utiliza principalmente UDP/53, pero con el tiempo dependerá más de TCP/53.
Desde el inicio, DNS fue diseñado para usar tanto UDP como TCP en el puerto 53, siendo UDP el predeterminado. Si no puede comunicarse por UDP, recurre a TCP, generalmente cuando el tamaño del paquete es demasiado grande para enviarse en un solo paquete UDP.
Como casi todas las aplicaciones de red usan DNS, los ataques contra servidores DNS representan una de las amenazas más comunes y significativas hoy en día.
Enumeration
DNS contiene información interesante sobre una organización. Como se mencionó en la sección de Domain Information del módulo de Footprinting, podemos entender cómo opera una empresa, los servicios que ofrece, así como identificar proveedores externos como los de correo electrónico.
Las opciones -sC
(scripts por defecto) y -sV
(escaneo de versiones) de Nmap pueden utilizarse para realizar una enumeración inicial sobre los servidores DNS objetivo:
DNS Zone Transfer
Una zona DNS es una porción del espacio de nombres DNS que está gestionada por una organización o administrador específico. Dado que DNS está compuesto por múltiples zonas, los servidores DNS utilizan las transferencias de zona (zone transfers) para copiar parte de su base de datos a otro servidor DNS.
A menos que un servidor DNS esté configurado correctamente (limitando qué IPs pueden realizar una transferencia de zona), cualquiera puede solicitar una copia de la información de la zona, ya que estas transferencias no requieren autenticación. Aunque el servicio DNS usa normalmente el puerto UDP, al realizar transferencias de zona utiliza TCP para asegurar una transmisión fiable.
Un atacante puede aprovechar esta vulnerabilidad para obtener información detallada del espacio de nombres DNS de la organización objetivo, ampliando la superficie de ataque.
Para explotarlo, podemos usar la utilidad dig
con el tipo de consulta AXFR
para intentar volcar todas las entradas DNS desde un servidor vulnerable:
DIG - AXFR Zone Transfer
FIERCE - AXFR Zone Transfer
Domain Takeovers & Subdomain Enumeration
La toma de dominio (domain takeover) consiste en registrar un nombre de dominio inexistente para tomar control sobre otro dominio. Si un atacante encuentra un dominio expirado, puede reclamarlo para realizar ataques como alojar contenido malicioso en un sitio web o enviar correos de phishing aprovechando ese dominio ya reclamado.
La toma de control también es posible con subdominios, lo que se conoce como subdomain takeover. Un registro CNAME en DNS se usa para apuntar un dominio a otro. Muchas organizaciones utilizan servicios de terceros como AWS, GitHub, Akamai, Fastly y otras CDNs para alojar contenido. En estos casos, se suele crear un subdominio que apunte a dichos servicios. Por ejemplo
El nombre de dominio sub.target.com
utiliza un registro CNAME que apunta a anotherdomain.com
. Si anotherdomain.com
expira y queda libre para ser registrado, cualquier persona puede reclamarlo. Dado que el servidor DNS de target.com
aún tiene ese registro CNAME apuntando allí, quien registre anotherdomain.com
tendrá control total sobre sub.target.com
hasta que el registro DNS sea actualizado.
Subdomain Enumeration
Subbrute
Una excelente alternativa es una herramienta llamada Subbrute. Esta herramienta nos permite usar resolvers definidos por nosotros mismos y realizar ataques de fuerza bruta DNS puros, ideal para pruebas internas en máquinas sin acceso a Internet.
A veces, las configuraciones físicas internas están mal protegidas, lo que podemos aprovechar para subir nuestras herramientas desde un USB. Otro escenario sería que hayamos llegado a un host interno haciendo pivoting y queramos trabajar desde ahí. Por supuesto, hay otras alternativas, pero no está de más conocer diferentes formas y posibilidades.
La herramienta ha encontrado cuatro subdominios asociados con inlanefreight.com. Usando el comando nslookup
o host
, podemos enumerar los registros CNAME de esos subdominios.
El subdominio support
tiene un registro alias apuntando a un bucket de AWS S3. Sin embargo, al acceder a la URL https://support.inlanefreight.com
, se muestra un error NoSuchBucket, lo que indica que este subdominio podría ser vulnerable a un Subdomain Takeover.
Ahora, podríamos tomar el control del subdominio creando un bucket S3 en AWS con el mismo nombre del subdominio: support.inlanefreight.com
.
Es muy útil para saber, por ejemplo, si un servicio como GitHub Pages, Heroku, AWS S3, entre otros, permite el takeover cuando un recurso ha sido eliminado, pero el subdominio sigue apuntando hacia él.
DNS Spoofing
El DNS spoofing, también conocido como envenenamiento de caché DNS (DNS Cache Poisoning), es un ataque que consiste en alterar registros DNS legítimos con información falsa para redirigir el tráfico hacia sitios fraudulentos. Algunos ejemplos de cómo se puede llevar a cabo este ataque son:
Ataque Man-in-the-Middle (MITM): El atacante intercepta la comunicación entre un usuario y un servidor DNS para redirigir al usuario a un destino fraudulento en lugar del legítimo.
Explotación de vulnerabilidades en el servidor DNS: Si un atacante logra comprometer un servidor DNS, podría modificar sus registros y redirigir el tráfico de múltiples usuarios hacia sitios maliciosos.
Local DNS Cache Poisoning
Desde una red local, un atacante también puede llevar a cabo un DNS Cache Poisoning utilizando herramientas de MITM como Ettercap o Bettercap.
Para explotar esta técnica con Ettercap, primero debemos editar el archivo /etc/ettercap/etter.dns
para mapear el nombre de dominio que se quiere suplantar (por ejemplo, inlanefreight.com
) hacia la dirección IP del atacante (por ejemplo, 192.168.225.110
):
A continuación, iniciamos la herramienta Ettercap y escaneamos los hosts activos en la red navegando a Hosts > Scan for Hosts. Una vez completado el escaneo, añadimos la dirección IP de la máquina víctima (por ejemplo, 192.168.152.129
) como Target1, y la IP de la puerta de enlace (por ejemplo, 192.168.152.2
) como Target2.
Luego activamos el ataque dns_spoof
desde Plugins > Manage Plugins. Esto provocará que la máquina víctima reciba respuestas DNS falsas, haciendo que el dominio inlanefreight.com
se resuelva a la dirección IP 192.168.225.110
:
Después de un spoofing exitoso, si un usuario víctima desde la IP 192.168.152.129
visita inlanefreight.com
en su navegador, será redirigido a una página falsa alojada en 192.168.225.110
.
Además, un simple ping desde la máquina víctima mostrará que inlanefreight.com
ahora se resuelve a la IP maliciosa:
Última actualización