Skip to main content
Enumeración por fuerza bruta con gobuster

Enumeración por fuerza bruta con gobuster

Gobuster es una herramienta de fuerza bruta muy potente y con el objetivo de enumerar uris en sitios web, es decir, directorios y ficheros, subdominios dns y nombres de host virtuales en servidores web

Bienvenidos a un nuevo post en Byte Mind, en este caso vamos a hablar de Gobuster, una herramienta muy potente y muy utilizada hoy en día para el proceso de enumeración en aplicaciones web, además dejaremos una cheat sheet muy útil para hacer más sencillo el trabajo en esta fase del pentesting. Así que vamos a explicar en que consiste esta herramienta, cómo es posible su instalación, cual es su funcionamiento y también vamos a ver las posibilidades de evitar que hagan estos escaneos a nuestra propia infraestructura.

 

Qué es gobuster

Gobuster es una herramienta open source que permite la identificación de contenido web como directorios o ficheros que pudiesen estar accesibles u ocultos en un portal web. Esto lo realiza a través de solicitudes http con un diccionario o por fuerza bruta, y detectará la existencia de las mismas en función del código de respuesta obtenido.

Resumiendo tiene la capacidad de realizar las siguientes enumeraciones:

  • URIs (directorios y ficheros) en portales web
  • Subdominios DNS con soporte para wildcard
  • Nombres de virtual hosts en servidores web
  • Buckets S3 de Amazon públicos

 

Instalación de gobuster

La instalación de gobuster puede realizarse de varias formas.

Si disponemos de una distribución basada en debian podemos hacerlo con apt

En caso contrario se puede descargar desde su página de github e instalar y compilar con go

O hacer todo directamente desde go

 

Ejemplos de uso

Como ya indicábamos se pueden hacer 4 tipos de enumeraciones, de URIs, DNS, vhosts y buckets S3 así que vamos a ver cada una de ellas.

 

Enumeración de URIs

Para la enumeración de directorios y ficheros utilizaremos la palabra clave dir, que como todo comando tiene su propia ayuda

 

Por ejemplo podemos escanear directorios

Al anterior le podemos indicar el número de hilos que queremos utilizar para que sea más rápido el escaneo

O los códigos de respuesta que esperamos obtener

Si quisiéramos buscar ficheros, tendríamos que añadir la opción -x con las extensiones que se desea buscar, por ejemplo:

 

Enumeración de DNS

Para la enumeración de subdominios dns utilizaremos la palabra clave dir, que como todo comando tiene su propia ayuda

 

Veamos un ejemplo de enumeración de subdominios

Es posible añadir la opción -i para que muestra la dirección ip del subdominio

 

Enumeración de Virtual Hosts

Para la enumeración de virtual hosts utilizaremos la palabra clave vhost, que como todo comando tiene su propia ayuda

 

Para la enumeración de virtualhost podemos ver un simple ejemplo

Al cual, entre los ya vistos, podemos añadir autenticación si es necesaria

O el método GET o POST a utilizar aunque por defecto ya utiliza GET

 

Enumeración de Bucket S3

Para la enumeración de buckets S3 utilizaremos la palabra clave s3, que como todo comando tiene su propia ayuda

 

Que podemos ver una forma simple de hacerlo con 

 

 

Cómo es posible protegerse

Bueno, como se ha visto a lo largo de la entrada, gobuster hace una enumeración en base a los códigos de respuesta HTTP obtenidos durante el proceso, y gracias a esto es capaz de predecir si por ejemplo, existiese un fichero o un directorio.

Visto esto, se comprende que si la aplicación devuelve un código 404 (Not Found) gobuster entenderá que no existe la misma, por lo que si hay páginas que no se desee el acceso, es posible configurar el servidor web para que devuelva dicho código de error si el acceso no se hace desde una IP previamente configurada.

Otra opción a tener en cuenta sería limitar el número de peticiones que se pueden realizar desde una IP en un intervalo de tiempo determinado, lo que podría ayudar a identificar un posible intento de ataque de enumeración.

 

 

Bueno, hasta aquí por ahora, espero que les ayude en sus tareas de auditoría y pentesting, y recordar que esto sólo se debe de realizar si el portal es de nuestra propiedad o, si tenemos el consentimiento explícito del propietario del mismo.

Espero que les haya servido de utilidad y cualquier duda, aporte o sugerencia pueden indicarla en la sección de comentarios. 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.