….
Información
Hoy veremos como podemos descubrir subdominios desde un dominio que hemos obtenido en un proceso de pentesting.
El ataque se puede considerar activo, ya que interactuamos con el objetivo directamente y es mediante fuerza bruta con un diccionario.
La estructura de la URL sería la siguiente:
Laboratorio
la mejor opción para realizar las pruebas, es montar en local una máquina virtual un laboratorio y así poder realizar nuestras propias pruebas.
Dependencias
la única dependencia requerida es Apache2
apt-get install -y apache2
Configuración
lo primero es dirigirse a la carpeta de configuración de Apache2
relacionada con el mapeo de los sitios sites-available
cd /etc/apache2/sites-available/
creamos el archivo de configuración vhost.conf
para el subdominio
(la configuración para un dominio seria exactamente la misma)
- Dominio:
test.lab
- Subdominio:
admin.test.lab
<VirtualHost *:80>
ServerName admin.test.lab
ServerAdmin webmaster@localhost
DocumentRoot /var/www/site
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
la carpeta para el subdominio admin.test.lab
es /var/www/site
y si accedemos desde la IP es /var/www/html
(configuración por default)
registramos con a2ensite
el archivo de configuración vhost.conf
, así Apache2
en base a la solicitud pueda resolver hacia un sitio o otro.
/usr/sbin/a2ensite vhost.conf
Enabling site vhost.
To activate the new configuration, you need to run:
systemctl reload apache2
Reinicio
para que los cambios se apliquen reiniciamos el servicio Apache2
systemctl reload apache2
Verificaciones
probamos si el archivo de configuración vhost.conf
contiene errores
/usr/sbin/apache2ctl configtest
Syntax OK
hacemos un volcado de los VHOST
cargados en Apache2
para verificar que se cargo correctamente el subdominio admin.test.lab
/usr/sbin/apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
*:80 is a NameVirtualHost
default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost admin.test.lab (/etc/apache2/sites-enabled/zone.conf:1)
Preparación
/etc/hosts
agregamos el dominio test.lab
al archivo /etc/hosts
para que la IP objetivo apunte al dominio y pueda resolver correctamente.
echo -n '192.168.1.2 test.lab' >> /etc/hosts
Wordlist
utilizamos el diccionario de SecLists subdomains-top1million-5000.txt
Fuzzing
Gobuster
# apt install -y gobuster
gobuster vhost -w /opt/subdomains-top1million-5000.txt -u 'http://test.lab' --append-domain
Wfuzz
# apt install -y wfuzz
wfuzz -c -w /opt/subdomains-top1million-5000.txt -H 'Host: FUZZ.test.lab' -u 'http://test.lab/' --hh=10700
Ffuf
# apt install -y ffuf
ffuf -c -w /opt/subdomains-top1million-5000.txt -H 'Host: FUZZ.test.lab' -u 'http://test.lab/' -fs 10700
hemos visto montando un pequeño laboratorio, como mediante fuzzing y haciendo uso de un diccionario con las diferentes herramientas: Gobuster
, Wfuzz
, Ffuf
obtener el subdominio: admin.test.lab
.
hasta aquí el artículo de hoy, espero que os resulte de utilidad.
Happy Hacking!