domingo, 1 de octubre de 2017

Wordlist para fuzzing web con Apache y Logrotate

Crear una wordlist para fuzzing web puede ser relativamente sencillo, efectivo y sin apenas esfuerzo aprovechando la tecnología y la "inteligencia" que nos brindan los diferentes actores que ponen a prueba nuestro servidor web Apache donde tenemos alojadas nuestras webs, honeypots, etc.

Los ingredientes necesarios son un servidor web Apache y Logrotate. Para el que no sepa que es Logrotate, como su nombre indica, nos permite realizar rotación de archivos evitando que crezcan y nos colapsen el espacio de disco duro. Para ello se vale de varias directivas y demás. Para nuestro propósito nos valdremos de la directiva "prerotate".

Abrimos el archivo "/etc/logrotate.d/apache2" y justo debajo de "prerotate", añadimos:

PATH_LOGS="/var/log/apache2/*.log"
PATH_WORDLIST="/home/cukz"
grep "HTTP/1.1\" 404" $PATH_LOGS | awk '{print $7 } ' | sort | uniq | sort >> $PATH_WORDLIST/wordlist.tmp && cat $PATH_WORDLIST/wordlist.tmp | sort | uniq > $PATH_WORDLIST/wordlist.txt

Modificar la variable "PATH_LOGS" y "PATH_WORDLIST" con los valores adecuados según nuestro sistema.

Quedaría algo así:


Logrotate se ejecutará diariamente gracias a cron y en la ruta "PATH_WORDLIST" tendremos un archivo ordenado con todas las peticiones 404 que se hayan realizado sobre nuestro servidor web.
Hay que tener en cuenta que no todas las peticiones nos valdrán para nuestro diccionario, nos tocará filtrarlo y eliminar lo que no nos interese.

Esta wordlist también nos puede valer para realizar un posterior análisis forense, estudiar tendencias de ataques, etc.

No hay comentarios:

Publicar un comentario