[SOLUCIONADO] Gobuster

Iniciado por Codigo7809, Abril 07, 2021, 01:26:38 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Abril 07, 2021, 01:26:38 PM Ultima modificación: Abril 08, 2021, 07:34:34 PM por AXCESS
Hola amigos ¿alguien sabe si hay algún tipo de protección contra estas herramientas como gobuster?

Buenas.
Primero hay que saber cómo funciona Gobuster, lo que hace esta increíble herramienta, es un ataque de fuerza bruta con diccionarios de nombres de carpetas y archivos comunes.
Por ejemplo, tenes la web No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Supongamos que @ANTRAX le colocó una carpeta escondida llamada /passwords, si en el diccionario que le colocamos a gobuster se encuentra /passwords nos dará la alerta.
Pero cómo? sencillo, envía solicitudes, y nos muestra como carpetas y archivos todo aquello que no da un 404 Not Found.
Tengamos acceso o no al archivo, gobuster sabe que ahí hay algo porque le dió una respuesta que no es 404.

Una forma de prevenir, aunque no sé realmente si funcionaría, es buscar algun método para frenar estas solicitudes que hace gobuster a las webs. Una especie de anti DDoS para url(?(?(? no se.

Pero viendo cómo funciona Gobuster, la mejor forma es, si queres evitar que salga en los resultados de gobuster es simplemente nombrando el archivo/carpeta de forma que las chances de que el atacante tenga el nombre de la carpeta en su diccionario no esté tú archivo/carpeta.
Ejemplo:
diccionario del atacante.txt
Citar
/password
/admin
/assets
/robots.txt

Supongamos que tu archivo/carpeta que queres ocultar se llame /akjJLK2s2SlQ1SdklgSLq2
las probabilidades de que se encuentre en un diccionario para hacer una enumeración es casi nula.

Espero que te haya servido un poco, saludos!

A ver, seguramente existira automatización. La forma mas simple de implementar lo que te dicen arriba es mediante el access.log si estás usando apache. Pones un script que detecte los accesos a paginas que no existen, filtras con un grep por 404, haces un sort de las IPS que hacen la peticion y un uniq, y las que veas con mas de X peticiones, por ejemplo 20 por poner un número las metes en tu filtro de iptables como DROP y ya.

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

Así es @animanegra, es por eso que intenté rebuscarla. Pero como mencionas, si le buscamos la quinta pata al gato seguro encontramos soluciones para encontrar las direcciones. Estuve investigando y no encontré soluciones como la gente.

De todos modos @Codigo7809, la mejor forma es tener una buena política de control de accesos. No tiene nada de malo que se sepa que existe un directorio /password, mientras que esté protegido como se debe y no dejes más info que esa por ahí no deberías preocuparte.

Saludos

Hola @Codigo7809

Tal y como te han comentado anteriormente lo mejor es lo siguiente (aplica cuántas más mejor):

1. Deshabilitar el listado de directorios, redirigir los errores 404 (Not Found) y 403 (Forbidden) al mismo endpoint, de esta forma las herramientas no serán capaz de detectar si el directorio realmente existe o no. Aunque esto evita que la tool funcione correctamente, no impide que te lancen este tipo de herramientas.


2. Te recomiendo que bloquees todos los User-Agents nativos de las herramientas más famosas (esto obviamente se puede bypassear, pero te quitarás gran parte de los escaneos automáticos). Esto puedes hacerlo de varias formas, como por ejemplo directamente en el fichero del sitio de tu servidor web o, por ejemplo con un .htaccess.

3. Deberías instalar algún tipo de AntiDDoS/Antifuerza bruta, como por ejemplo, fail2ban, aquí te dejo un artículo que escribí para el CERT de Incibe dónde explico como instalar fail2ban y configurarlo para que capture los logs de un apache y bloquee en consecuencia ya sea por algún patrón en particular o por exceso de peticiones. (No tienes permitido ver enlaces. Registrate o Entra a tu cuenta)


Es importante que el baneo se realice a nivel de red evitando que el servidor web procese la petición (nivel de aplicación). Esto es debido, a que si bloqueamos las IPs desde el nivel de aplicación es ineficaz, ya que, el servidor, en este caso Apache, recibe la petición igualmente. Si utilizamos algún firewall como iptables, bloqueamos las conexiones a nivel de red y de este modo Apache nunca procesa la petición.

Aunque Fail2ban limita el impacto de un ataque de este tipo no es una solución definitiva, ya que el servidor sigue recibiendo las peticiones. En caso de que un ataque genere un gran volumen podría provocar igualmente una denegación de servicio en nuestro servidor.

Espero haberte ayudado,
Un saludo.



No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Así es @animanegra, es por eso que intenté rebuscarla. Pero como mencionas, si le buscamos la quinta pata al gato seguro encontramos soluciones para encontrar las direcciones. Estuve investigando y no encontré soluciones como la gente.

De todos modos @Codigo7809, la mejor forma es tener una buena política de control de accesos. No tiene nada de malo que se sepa que existe un directorio /password, mientras que esté protegido como se debe y no dejes más info que esa por ahí no deberías preocuparte.

Saludos

No hablaba de buscar, hablaba de como implementarlo. Es scripting muy básico.

Mayormente con un:

Código: text

sudo cat /var/log/apache2/access.log | grep 404 | awk '{print $1}' | sort | uniq -c


tienes todas las IPs que han provocado ese tipo de errores.

Si le añades un umbral, yo he puesto 10, podrías sacar todas las que han generado mas de 10 peticiones con error 404:

Código: text

sudo cat /var/log/apache2/access.log | grep 404 | awk '{print $1}' | sort | uniq -c | awk '{if($1>10){print $2}}'


Si codificas para que esa IP saque la regla de DROP para iptables, sería algo así:

Código: text

sudo cat /var/log/apache2/access.log | grep 404 | awk '{print $1}' | sort | uniq -c | awk '{if($1>10){print "iptables -A INPUT -s " $2 " -j DROP"; print "iptables -A OUTPUT -d " $2 " -j DROP";}}'


Esto saca por pantalla directamente reglas de baneo para las IPs que excedan ese umbral. Si ejecutas esas reglas pues actualiza el iptables para que no te den la murga mas. Puedes redireccionarlo a un fichero y ejecutarlo despues. El script quedaría algo así:

Código: text

#! /bin/bash
sudo cat /var/log/apache2/access.log | grep 404 | awk '{print $1}' | uniq -c | awk '{if($1>10){print "iptables -A INPUT -s " $2 " -j DROP"; print "iptables -A OUTPUT -d " $2 " -j DROP";}}' > quitamierda.sh;
chmod +x quitamierda.sh
./quitamierda.sh


En el cat he quitado el sort para forzar que las peticiones sucesivas a paginas no encontradas se hagan seguidas. El script esta hecho muy on the fly, verificalo. Pero el tema es que es sencillo de hacer con 4 comandos de scripting. Que es a lo que iba yo.

Saludos :)

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
...si le buscamos la quinta pata al gato...

Nada más que agregar. Me ha gustado muchísimo las respuestas.

Mi gato agradece el detalle que se destaca arriba.

Buenos deseos a todos.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta