Realizar un Escaneo Básico de VHost en Gobuster

Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a usar Gobuster para realizar un escaneo básico de hosts virtuales (vhost). Los hosts virtuales son una forma común para que los servidores web alojen múltiples sitios web en una única dirección IP. Descubrir estos vhosts ocultos puede revelar superficies de ataque adicionales o información sensible durante una prueba de penetración o una evaluación de seguridad. Gobuster es una herramienta potente para la fuerza bruta de URIs, subdominios DNS y nombres de hosts virtuales.

Comprender qué son los Hosts Virtuales (VHosts)

En este paso, aprenderá sobre los hosts virtuales (vhosts) y por qué son importantes en la seguridad web.

Un host virtual permite que un único servidor aloje múltiples nombres de dominio en la misma dirección IP. Por ejemplo, www.example.com y blog.example.com podrían ser alojados en el mismo servidor, distinguidos por la cabecera Host en la solicitud HTTP. Cuando un navegador web envía una solicitud a un servidor, incluye una cabecera Host que especifica el nombre de dominio al que desea acceder. El servidor web utiliza entonces esta cabecera para determinar qué sitio web debe servir.

Descubrir estos hosts virtuales es crucial para las evaluaciones de seguridad porque:

  • Contenido Oculto: Un vhost podría alojar una aplicación antigua y sin parches, una versión de desarrollo de un sitio o una interfaz administrativa que no está enlazada desde el sitio web principal.
  • Superficie de Ataque Ampliada: Cada vhost descubierto representa un nuevo punto de entrada potencial para ataques, como inyección SQL, scripting entre sitios (XSS) o recorrido de directorios.
  • Divulgación de Información: A veces, los vhosts pueden revelar estructuras de red internas, archivos sensibles o configuraciones erróneas.

Herramientas como Gobuster pueden automatizar el proceso de probar nombres de vhost comunes contra un objetivo para identificar los activos.

Seleccionar una Dirección IP o Dominio de Destino

En este paso, identificará el objetivo para su escaneo de vhost con Gobuster.

Para este laboratorio, utilizaremos localhost como nuestro objetivo, específicamente http://127.0.0.1:8080. Hemos configurado un servidor web simple en el puerto 8080 que simula múltiples hosts virtuales. En un escenario del mundo real, reemplazaría 127.0.0.1:8080 con la dirección IP o el nombre de dominio real de su objetivo.

Para confirmar que el servidor web está en funcionamiento, puede usar curl para realizar una solicitud al mismo.

curl http://127.0.0.1:8080

Debería ver una salida similar a esta, indicando que el servidor está activo:

This is vhost1 content.

Esta salida proviene del vhost predeterminado (o el primero servido por el servidor Python simple). Nuestro objetivo es encontrar otros vhosts "ocultos".

Construir el Comando Básico de gobuster para Vhost

En este paso, aprenderá a construir el comando básico de gobuster para un escaneo de vhost.

El comando gobuster para escaneo de vhost utiliza el modo vhost. Las banderas esenciales para un escaneo de vhost son:

  • -u: Especifica la URL de destino.
  • -w: Especifica la lista de palabras (wordlist) a utilizar para la fuerza bruta de nombres de vhost.

La sintaxis básica será gobuster vhost -u <target_url> -w <wordlist_path>.

Para nuestro laboratorio, la URL de destino es http://127.0.0.1:8080. También hemos preparado una lista de palabras en /tmp/vhost_wordlist.txt que contiene nombres potenciales de hosts virtuales.

Examinemos el contenido de la lista de palabras:

cat /tmp/vhost_wordlist.txt

Debería ver la siguiente salida:

vhost1
vhost2
hidden_vhost
test
dev
admin

Esta lista de palabras contiene algunos nombres de vhost comunes y otros específicos que esperamos encontrar.

Ejecutar el Escaneo con las Banderas -u y -w

En este paso, ejecutará el escaneo de vhost de gobuster utilizando la URL de destino y la lista de palabras proporcionada.

Ahora, combine la URL de destino y la ruta de la lista de palabras en el comando gobuster.

gobuster vhost -u http://127.0.0.1:8080 -w /tmp/vhost_wordlist.txt

Presione Enter para ejecutar el comando. Gobuster comenzará a iterar a través de la lista de palabras, enviando solicitudes con cada palabra como encabezado Host, e informando sobre cualquier host virtual descubierto.

La salida mostrará el progreso y cualquier hallazgo exitoso. Podría parecerse a esto:

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                    http://127.0.0.1:8080
[+] Wordlist:               /tmp/vhost_wordlist.txt
[+] Threads:                10
[+] Timeout:                10s
[+] User Agent:             gobuster/3.6
===============================================================
2024/07/30 10:00:00 Starting gobuster in vhost mode
===============================================================
Found: vhost1 (Status: 200) [Size: 20]
Found: vhost2 (Status: 200) [Size: 20]
Found: hidden_vhost (Status: 200) [Size: 27]
===============================================================
2024/07/30 10:00:05 Finished
===============================================================

Puede ver que gobuster encontró con éxito vhost1, vhost2 y hidden_vhost.

Revisar la Salida de los Hosts Virtuales Descubiertos

En este paso, analizará la salida del escaneo de gobuster para comprender los hosts virtuales descubiertos.

La salida de gobuster proporciona información clave para cada host virtual descubierto:

  • Found:: El nombre del host virtual que se resolvió con éxito.
  • (Status: 200): El código de estado HTTP devuelto por el servidor. Un 200 OK generalmente indica que el vhost existe y sirvió contenido con éxito. Otros códigos de estado (por ejemplo, 301, 302, 403, 404) también pueden ser relevantes dependiendo de la configuración del servidor.
  • [Size: XX]: El tamaño del cuerpo de la respuesta en bytes. Esto a veces puede ayudar a distinguir entre diferentes tipos de contenido o páginas predeterminadas.

De la salida del paso anterior, debería haber visto:

  • Found: vhost1 (Status: 200) [Size: 20]
  • Found: vhost2 (Status: 200) [Size: 20]
  • Found: hidden_vhost (Status: 200) [Size: 27]

Estas entradas indican que gobuster identificó con éxito tres hosts virtuales en http://127.0.0.1:8080 utilizando la lista de palabras proporcionada. En un escenario del mundo real, investigaría estos vhosts descubiertos más a fondo navegando a ellos (por ejemplo, curl -H "Host: vhost1" http://127.0.0.1:8080) o utilizando otras herramientas de seguridad web.

Esto concluye el laboratorio básico de escaneo de vhost. Ha utilizado con éxito gobuster para identificar hosts virtuales.

Resumen

En este laboratorio, aprendió a realizar un escaneo básico de hosts virtuales utilizando Gobuster. Comprendió el concepto de hosts virtuales, seleccionó un objetivo, construyó el comando gobuster con las banderas -u (URL) y -w (wordlist), ejecutó el escaneo e interpretó los resultados. Esta habilidad es fundamental para descubrir aplicaciones web ocultas y expandir la superficie de ataque durante las evaluaciones de seguridad.