Introducción
En el ámbito de la ciberseguridad y las pruebas de penetración, el descubrimiento de subdominios es un paso crucial en el reconocimiento. Los subdominios a menudo alojan diferentes aplicaciones, servicios o entornos de desarrollo que podrían exponer superficies de ataque o vulnerabilidades adicionales que no están presentes en el dominio principal. Gobuster es una herramienta popular utilizada para la fuerza bruta de URIs (directorios y archivos), subdominios DNS, buckets de Amazon S3 y nombres de hosts virtuales.
Este laboratorio lo guiará a través del proceso de realización de un escaneo básico de subdominios DNS utilizando Gobuster. Aprenderá a seleccionar un objetivo, elegir una lista de palabras (wordlist) efectiva, construir el comando de Gobuster con las banderas (flags) necesarias, ejecutar el escaneo e interpretar los resultados para identificar subdominios activos. Al final de este laboratorio, tendrá una comprensión fundamental de cómo utilizar Gobuster para la enumeración de subdominios, una habilidad vital para cualquier profesional o entusiasta de la seguridad.
Seleccionar un Dominio Objetivo
En este paso, seleccionará un dominio objetivo para su escaneo de subdominios. Para fines educativos, utilizaremos scanme.nmap.org como nuestro objetivo. Este dominio es proporcionado por Nmap para fines de prueba y es seguro escanearlo.
Primero, asegúrese de que Gobuster esté instalado. Si no lo está, puede instalarlo usando apt.
sudo apt update
sudo apt install -y gobuster
Después de la instalación, puede verificarla comprobando su versión:
gobuster -v
Debería ver una salida similar a esta, indicando que Gobuster está instalado:
gobuster v3.x
Ahora, confirmemos nuestro dominio objetivo. Utilizaremos scanme.nmap.org.
echo "Nuestro dominio objetivo es: scanme.nmap.org"
Este comando simplemente imprime el dominio objetivo en su terminal, confirmando su selección.
Elegir una Lista de Palabras (Wordlist) para Subdominios
En este paso, elegirá una lista de palabras (wordlist) adecuada para su escaneo de subdominios. Una lista de palabras es un archivo que contiene una lista de nombres de subdominios comunes (por ejemplo, www, mail, dev, admin). Gobuster intentará resolver cada nombre de la lista de palabras combinado con su dominio objetivo (por ejemplo, www.scanme.nmap.org, mail.scanme.nmap.org).
Para este laboratorio, utilizaremos una lista de palabras común que a menudo se encuentra en distribuciones de pruebas de penetración, o podemos descargar una. Utilizaremos la lista de palabras dns.txt del proyecto SecLists, que es una buena lista de propósito general para la enumeración de DNS.
Primero, asegurémonos de tener clonado el repositorio SecLists o de tener disponible una lista de palabras similar. Si no es así, podemos descargar una lista de palabras específica.
wget -nc https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/dns.txt -P ~/project/
La bandera -nc asegura que wget no volverá a descargar el archivo si ya existe, lo cual es útil si ejecuta el comando varias veces. La bandera -P ~/project/ especifica el directorio donde se guardará el archivo.
Después de descargar, verifique que el archivo de lista de palabras exista en su directorio ~/project/:
ls -l ~/project/dns.txt
Debería ver una salida similar a esta, confirmando la presencia del archivo:
-rw-r--r-- 1 labex labex XXXX Month Day HH:MM ~/project/dns.txt
Esto confirma que dns.txt está listo para ser utilizado como nuestra lista de palabras.
Construir el Comando Básico de gobuster dns
En este paso, construirá el comando básico de Gobuster para realizar un escaneo de subdominios DNS. Gobuster utiliza diferentes modos para diferentes tipos de fuerza bruta. Para la enumeración de subdominios DNS, utilizamos el modo dns.
Las banderas esenciales para un escaneo DNS son:
-d: Especifica el dominio objetivo.-w: Especifica la ruta a la lista de palabras (wordlist).
Por lo tanto, la estructura básica del comando será gobuster dns -d <dominio_objetivo> -w <ruta_lista_palabras>.
Ensamblemos el comando utilizando nuestro objetivo elegido scanme.nmap.org y la lista de palabras ~/project/dns.txt.
echo "El comando Gobuster será: gobuster dns -d scanme.nmap.org -w ~/project/dns.txt"
Este comando imprimirá el comando Gobuster completo que está a punto de ejecutar. Comprender el comando antes de ejecutarlo es crucial para el uso efectivo de cualquier herramienta.
Ejecutar el Escaneo con las Banderas -d y -w
En este paso, ejecutará el escaneo de subdominios DNS de Gobuster utilizando el comando construido en el paso anterior. Esto iniciará el proceso de fuerza bruta, donde Gobuster intenta resolver cada entrada de la lista de palabras como un subdominio del dominio objetivo.
Ejecute el siguiente comando en su terminal:
gobuster dns -d scanme.nmap.org -w ~/project/dns.txt
A medida que se ejecuta el escaneo, Gobuster mostrará los subdominios que resuelve con éxito. La salida mostrará los subdominios resueltos junto con sus direcciones IP.
Ejemplo de salida:
===============================================================
Gobuster v3.x
===============================================================
[+] Url: scanme.nmap.org
[+] Threads: 10
[+] Wordlist: /home/labex/project/dns.txt
[+] Status codes: 200,204,301,302,307,401,403,405,500
[+] Timeout: 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in DNS mode
===============================================================
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
...
El escaneo puede tardar algún tiempo dependiendo del tamaño de la lista de palabras y las condiciones de la red. Déjelo completar para obtener una lista completa de los subdominios encontrados.
Analizar la Lista de Subdominios Encontrados
En este paso final, analizará la salida del escaneo de Gobuster. Las líneas Found: en la salida indican subdominios resueltos con éxito. Estos son los subdominios que existen y tienen registros DNS correspondientes.
Revise la salida del paso anterior. Busque líneas que comiencen con Found: seguidas de un subdominio y su dirección IP.
Por ejemplo, podría ver:
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
Cada uno de estos representa un punto de entrada potencial o un activo interesante relacionado con el dominio objetivo. En un escenario del mundo real, investigaría estos subdominios más a fondo, quizás visitándolos en un navegador web, realizando escaneos de puertos o buscando vulnerabilidades web.
Para confirmar que ha analizado la salida, busquemos un subdominio común como www.
echo "Busque 'www.scanme.nmap.org' en la salida de Gobuster."
Este paso enfatiza la importancia de revisar los resultados de sus herramientas de reconocimiento. La salida bruta de Gobuster proporciona información valiosa que puede guiar sus evaluaciones de seguridad posteriores.
Resumen
En este laboratorio, realizó con éxito un escaneo básico de subdominios DNS utilizando Gobuster. Aprendió a:
- Seleccionar un dominio objetivo (
scanme.nmap.org). - Elegir y descargar una lista de palabras apropiada (
dns.txt). - Construir el comando de Gobuster utilizando el modo
dnsy las banderas-d(dominio) y-w(lista de palabras). - Ejecutar el escaneo y observar la salida en tiempo real de los subdominios descubiertos.
- Analizar los resultados para identificar subdominios activos y comprender su importancia.
Esta habilidad fundamental es crucial para el reconocimiento en ciberseguridad, ya que le permite ampliar su comprensión de la superficie de ataque de un objetivo. Puede mejorar aún más sus escaneos de Gobuster experimentando con diferentes listas de palabras, aumentando el número de hilos (-t) o especificando servidores DNS personalizados (--resolver).
