Muy buenas a todos!

Esta semana vamos a poner a prueba una herramienta llamada reconFTW, que nos permitirá automatizar el reconocimiento de un dominio objetivo, mediante la ejecución del mejor conjunto de herramientas posible. Será tan bueno como promete?


Una de las tareas más habituales de un pentester o bug hunter, es la parte de enumeración y reconocimiento de un dominio. Para ello, existen todo tipo de herramientas y técnicas para ayudarnos en este complejo propósito.

Durante este ejercicio, es muy habitual pasar por alto muchas cosas, ya que la información de un dominio en internet puede ser, simplemente y llanamente, abrumadora. Os imagináis cuánta información sobre cualquier dominio existe en cualquier buscador?

Por eso (y muchos otros motivos) es conveniente automatizar el proceso de recolección de información y búsqueda de vulnerabilidades en la medida de lo posible. Esto nos permitirá ganar tiempo y esfuerzo, en el que podremos buscar otro tipo de vulnerabilidades más críticas de forma manual, o simplemente, mientras nos tomamos un café.

Parece sencillo y efectivo, verdad? Solo necesitamos coger un poco de allí y un poco de allá.. cualquiera puede hacerse un script en bash y listo. No¿? 😜

Pues precisamente esta «sencillez aparente» es la que complica ahora las cosas. Si no tuviéramos ya bastantes problemas con el exceso de información sobre cualquier dominio en internet, ahora también tenemos un exceso de herramientas para cualquiera de nuestros propósitos.

No importa si buscamos un sencillo script para encontrar vulnerabilidades o simplemente queremos un framework automático y repleto de estas herramientas. La cantidad de proyectos de este tipo, de nuevo, vuelve a ser abrumadora.

Entonces, cómo podemos solucionar este problema? Supongo que, esto fue lo que pensó el creador de la herramienta: six2dez

Seguro que llegados a este punto os preguntaréis: Y qué hace a reconFTW tan especial? Si existen tantas tools como esta, qué le hace tan diferente al resto?

Sencillamente, «el secreto está en la masa». Antes de crear la herramienta, su creador realizó una completísima tarea de investigación, en la que puso a prueba y comparó fuzzers, suites de reconocimiento y herramientas de enumeración de subdominios. Podéis echarle un vistazo a los resultados en los siguientes enlaces:

https://six2dez.gitbook.io/pentest-book/others/web-fuzzers-comparision
https://six2dez.gitbook.io/pentest-book/others/recon-suites-review
https://six2dez.gitbook.io/pentest-book/others/subdomain-tools-review

Una vez obtenidos los resultados de las pruebas, el objetivo era sencillo:

Utilizar la mejor herramienta de la comparativa para cada uno de sus respectivos propósitos. De esta forma, el resultado sería el mejor framework posible, utilizando como base las herramientas más eficientes.

Para más información, os dejo el link del proyecto a continuación:
https://github.com/six2dez/reconftw

Ahora que ya conocemos un poco mejor a reconFTW, vayamos a la parte que nos gusta, la práctica 😋

En primer lugar, clonaremos el proyecto como de costumbre:

git clone https://github.com/six2dez/reconftw.git

A partir de aquí, podríamos tomar dos caminos diferentes: Instalar todas las tools y dependencias que necesita reconFTW para funcionar correctamente, o bien, descargar y ejecutar un docker preparado por el creador y listo para funcionar.

En mi caso particular, por facilidad de uso y por mantener el sistema lo más limpio posible, me decanto por la segunda opción. En caso de querer instalarlo directamente sobre el sistema operativo, podéis seguir los pasos de la guía de instalación de su propio GitHub: https://github.com/six2dez/reconftw/wiki

Para llevar a cabo la descarga y ejecución con docker, utilizaremos el siguiente comando:

docker run -ti --mount src="/root/Tools/reconftw",target="/root/Tools/reconftw",type=bind --name reconftw --privileged six2dez/reconftw:main

Es importante tener en cuenta que, en este caso, estamos realizando un bind mount sobre el contenedor, por lo que la carpeta «reconftw» ubicada en la ruta «/root/Tools» de nuestro host, está sobreescribiendo la del contenedor. Esto es necesario para poder acceder a los resultados de la herramienta desde fuera de docker, de una forma fácil y cómoda (aunque no imprescindible).

Una vez tengamos el contenedor operativo, dentro de la carpeta «Docker» podremos configurar nuestras API keys con el fin de obtener, aún más si cabe, toda la información posible del dominio objetivo que vamos a analizar.

Si todo ha salido bien, nos aparecerá una shell interactiva, desde la que solo nos quedará ejecutar la herramienta contra nuestro host objetivo. Para ello, lo haremos de la siguiente forma:

./reconftw.sh -d dominio-objetivo.com -a

Una vez terminada la ejecución de la herramienta (puede llegar a tardar varias horas), buscaremos la carpeta «Recon» dentro de la ruta «/root/Tools/reconftw» o la ruta que hayáis utilizado para clonar el proyecto. Aquí, encontraremos una carpeta con el nombre del dominio objetivo y toda la información obtenida durante la prueba, ordenada de forma sencilla y entendible.

Por último, solo nos quedaría estudiar detenidamente todas las pruebas en búsqueda de vulnerabilidades o cualquier otro tipo de información valiosa, que pueda servirnos para nuestra auditoría o bug bounty.

Sin duda alguna, se trata de una herramienta muy potente y sencilla de utilizar. Además, el uso a través de Docker nos permite ejecutarla desde cero en pocos minutos desde cualquier entorno imaginable. Incluso, sin configurar ninguna API, los resultados obtenidos son sorprendentemente buenos.

Como conclusión final, pese a que existen muchas otras soluciones para realizar este mismo proceso, la sencillez y compatibilidad de la herramienta nos permite conseguir nuestro objetivo de reconocimiento con el mínimo esfuerzo posible. Sin duda, una de las mejores opciones posibles actualmente, si no la mejor.

Espero que os haya gustado y os resulte útil en vuestras próximas auditorías.

Nos vemos en la próxima!