🪬
Gzzcoo Pentest Notes
HomeWalkthroughs
  • Home
  • ACTIVE DIRECTORY PENTESTING
    • Initial Enumeration
      • Enumerating users
    • Abusing Active Directory ACLs/ACEs
      • Shadow Credentials
      • GenericWrite
      • ForceChangePassword
    • Active Directory Certificate Services (ADCS)
    • Attacking Kerberos
    • BloodHound
    • Tools
      • bloodyAD
      • Kerbrute
      • Impacket
      • ldapsearch
      • PowerView.py
  • WINDOWS PENTESTING
    • Windows Privilege Escalation
      • Abusing Tokens
      • AD Recycle Bin Group
      • DnsAdmins to DomainAdmin
      • Dumping credentials
        • Credential Hunting
        • LSASS
        • NTDS.dit
        • SAM and SYSTEM
      • Server Operators Group
  • Windows Lateral Movement
    • Pass the Hash (PtH)
    • Pass the Ticket (PtT)
      • From Windows
      • From Linux
    • Pass the Cert (PtC)
  • File Transfer
    • PowerShell
    • Remote Desktop Protocol (RDP)
    • LOLBAS
    • Protected File Transfers
    • Catching Files over HTTP/S
    • Detection and Evading Detection
  • Reverse Shell
  • PowerShell
  • LINUX PENTESTING
    • Basic Enumeration
    • Linux Privilege Escalation
  • File Transfer
    • Protected File Transfers
    • Catching Files over HTTP/S
    • GTFOBins
  • Shells
  • Reverse Shell
  • Credential Hunting
  • Passwd, Shadow & Opasswd
  • NETWORK SERVICES PENTESTING
    • FTP Port (21)
    • SSH Port (22)
    • DNS Port (53)
    • SMB Port (139, 445)
    • MSSQL Port (1433)
    • MySQL Port (3306)
    • RDP Port (3389)
  • PostgreSQL Port (5432, 5433)
  • Attacking Email Services
  • Pivoting, Tunneling and Port Forwarding
  • WEB PENTESTING
    • Local File Inclusion (LFI)
  • LaTeX Injection
  • Cypher Injection
  • Cross-Site Scripting (XSS)
  • TOOLS
    • John The Ripper
    • NetExec
    • Smbmap
    • Evil-WinRM
  • REVERSING
    • Windows executables and DLL's
    • Android APK
Con tecnología de GitBook
LogoLogo

© 2025 Gzzcoo Corp.

En esta página
  • Introduction
  • Enumeration
  • DNS Zone Transfer
  • Domain Takeovers & Subdomain Enumeration
  • DNS Spoofing

¿Te fue útil?

Exportar como PDF
  1. NETWORK SERVICES PENTESTING

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:

gzzcoo@htb[/htb]$ nmap -p53 -Pn -sVC 10.10.110.213

Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-29 03:47 EDT
Nmap scan report for 10.10.110.213
Host is up (0.017s latency).

PORT    STATE  SERVICE     VERSION
53/tcp  open   domain      ISC BIND 9.11.3-1ubuntu1.2 (Ubuntu Linux)

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

gzzcoo@htb[/htb]$ dig AXFR @ns1.inlanefreight.htb inlanefreight.htb

; <<>> DiG 9.11.5-P1-1-Debian <<>> axfr inlanefrieght.htb @10.129.110.213
;; global options: +cmd
inlanefrieght.htb.         604800  IN      SOA     localhost. root.localhost. 2 604800 86400 2419200 604800
inlanefrieght.htb.         604800  IN      AAAA    ::1
inlanefrieght.htb.         604800  IN      NS      localhost.
inlanefrieght.htb.         604800  IN      A       10.129.110.22
admin.inlanefrieght.htb.   604800  IN      A       10.129.110.21
hr.inlanefrieght.htb.      604800  IN      A       10.129.110.25
support.inlanefrieght.htb. 604800  IN      A       10.129.110.28
inlanefrieght.htb.         604800  IN      SOA     localhost. root.localhost. 2 604800 86400 2419200 604800
;; Query time: 28 msec
;; SERVER: 10.129.110.213#53(10.129.110.213)
;; WHEN: Mon Oct 11 17:20:13 EDT 2020
;; XFR size: 8 records (messages 1, bytes 289)

FIERCE - AXFR Zone Transfer

gzzcoo@htb[/htb]# fierce --domain zonetransfer.me

NS: nsztm2.digi.ninja. nsztm1.digi.ninja.
SOA: nsztm1.digi.ninja. (81.4.108.41)
Zone: success
{<DNS name @>: '@ 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 '
               '172800 900 1209600 3600\n'
               '@ 300 IN HINFO "Casio fx-700G" "Windows XP"\n'
               '@ 301 IN TXT '
               '"google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"\n'
               '@ 7200 IN MX 0 ASPMX.L.GOOGLE.COM.\n'
               '@ 7200 IN MX 10 ALT1.ASPMX.L.GOOGLE.COM.\n'
               '@ 7200 IN MX 10 ALT2.ASPMX.L.GOOGLE.COM.\n'
               '@ 7200 IN MX 20 ASPMX2.GOOGLEMAIL.COM.\n'
               '@ 7200 IN MX 20 ASPMX3.GOOGLEMAIL.COM.\n'
               '@ 7200 IN MX 20 ASPMX4.GOOGLEMAIL.COM.\n'
               '@ 7200 IN MX 20 ASPMX5.GOOGLEMAIL.COM.\n'
               '@ 7200 IN A 5.196.105.14\n'
               '@ 7200 IN NS nsztm1.digi.ninja.\n'
               '@ 7200 IN NS nsztm2.digi.ninja.',
 <DNS name _acme-challenge>: '_acme-challenge 301 IN TXT '
                             '"6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI"',
 <DNS name _sip._tcp>: '_sip._tcp 14000 IN SRV 0 0 5060 www',
 <DNS name 14.105.196.5.IN-ADDR.ARPA>: '14.105.196.5.IN-ADDR.ARPA 7200 IN PTR '
                                       'www',
 <DNS name asfdbauthdns>: 'asfdbauthdns 7900 IN AFSDB 1 asfdbbox',
 <DNS name asfdbbox>: 'asfdbbox 7200 IN A 127.0.0.1',
 <DNS name asfdbvolume>: 'asfdbvolume 7800 IN AFSDB 1 asfdbbox',
 <DNS name canberra-office>: 'canberra-office 7200 IN A 202.14.81.230',
 <DNS name cmdexec>: 'cmdexec 300 IN TXT "; ls"',
 <DNS name contact>: 'contact 2592000 IN TXT "Remember to call or email Pippa '
                     'on +44 123 4567890 or pippa@zonetransfer.me when making '
                     'DNS changes"',
 <DNS name dc-office>: 'dc-office 7200 IN A 143.228.181.132',
 <DNS name deadbeef>: 'deadbeef 7201 IN AAAA dead:beaf::',
 <DNS name dr>: 'dr 300 IN LOC 53 20 56.558 N 1 38 33.526 W 0.00m',
 <DNS name DZC>: 'DZC 7200 IN TXT "AbCdEfG"',
 <DNS name email>: 'email 2222 IN NAPTR 1 1 "P" "E2U+email" "" '
                   'email.zonetransfer.me\n'
                   'email 7200 IN A 74.125.206.26',
 <DNS name Hello>: 'Hello 7200 IN TXT "Hi to Josh and all his class"',
 <DNS name home>: 'home 7200 IN A 127.0.0.1',
 <DNS name Info>: 'Info 7200 IN TXT "ZoneTransfer.me service provided by Robin '
                  'Wood - robin@digi.ninja. See '
                  'http://digi.ninja/projects/zonetransferme.php for more '
                  'information."',
 <DNS name internal>: 'internal 300 IN NS intns1\ninternal 300 IN NS intns2',
 <DNS name intns1>: 'intns1 300 IN A 81.4.108.41',
 <DNS name intns2>: 'intns2 300 IN A 167.88.42.94',
 <DNS name office>: 'office 7200 IN A 4.23.39.254',
 <DNS name ipv6actnow.org>: 'ipv6actnow.org 7200 IN AAAA '
                            '2001:67c:2e8:11::c100:1332',
...SNIP...

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

sub.target.com.   60   IN   CNAME   anotherdomain.com

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

gzzcoo@htb[/htb]$ ./subfinder -d inlanefreight.com -v       
                                                                       
        _     __ _         _                                           
____  _| |__ / _(_)_ _  __| |___ _ _          
(_-< || | '_ \  _| | ' \/ _  / -_) '_|                 
/__/\_,_|_.__/_| |_|_||_\__,_\___|_| v2.4.5                                                                                                                                                                                                                                                 
                projectdiscovery.io                    
                                                                       
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using subfinder, you also agree to the terms of the APIs used. 
                                   
[INF] Enumerating subdomains for inlanefreight.com
[alienvault] www.inlanefreight.com
[dnsdumpster] ns1.inlanefreight.com
[dnsdumpster] ns2.inlanefreight.com
...snip...
[bufferover] Source took 2.193235338s for enumeration
ns2.inlanefreight.com
www.inlanefreight.com
ns1.inlanefreight.com
support.inlanefreight.com
[INF] Found 4 subdomains for inlanefreight.com in 20 seconds 11 milliseconds

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.

gzzcoo@htb[/htb]$ git clone https://github.com/TheRook/subbrute.git >> /dev/null 2>&1
gzzcoo@htb[/htb]$ cd subbrute
gzzcoo@htb[/htb]$ echo "ns1.inlanefreight.com" > ./resolvers.txt
gzzcoo@htb[/htb]$ ./subbrute inlanefreight.com -s ./names.txt -r ./resolvers.txt

Warning: Fewer than 16 resolvers per process, consider adding more nameservers to resolvers.txt.
inlanefreight.com
ns2.inlanefreight.com
www.inlanefreight.com
ms1.inlanefreight.com
support.inlanefreight.com

<SNIP>

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.

gzzcoo@htb[/htb]$ host support.inlanefreight.com

support.inlanefreight.com is an alias for inlanefreight.s3.amazonaws.com

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):

gzzcoo@htb[/htb]$ cat /etc/ettercap/etter.dns

inlanefreight.com      A   192.168.225.110
*.inlanefreight.com    A   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:

C:\>ping inlanefreight.com

Pinging inlanefreight.com [192.168.225.110] with 32 bytes of data:
Reply from 192.168.225.110: bytes=32 time<1ms TTL=64
Reply from 192.168.225.110: bytes=32 time<1ms TTL=64
Reply from 192.168.225.110: bytes=32 time<1ms TTL=64
Reply from 192.168.225.110: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.225.110:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
AnteriorSSH Port (22)SiguienteSMB Port (139, 445)

Última actualización hace 2 meses

¿Te fue útil?

Herramientas como también pueden utilizarse para enumerar todos los servidores DNS del dominio raíz y escanear si es posible realizar una transferencia de zona DNS:

Antes de realizar un subdomain takeover, debemos enumerar los subdominios del dominio objetivo utilizando herramientas como . Esta herramienta recopila subdominios desde fuentes abiertas como . También se pueden usar otras herramientas como para realizar fuerza bruta de subdominios utilizando una wordlist predefinida:

El repositorio también es una excelente referencia para identificar vulnerabilidades de subdomain takeover. Este recurso indica si los servicios utilizados por el subdominio objetivo son susceptibles de ser tomados, y proporciona guías para evaluar si realmente existe la vulnerabilidad.

Fierce
Subfinder
DNSdumpster
Sublist3r
can-i-take-over-xyz