miércoles, junio 09, 2021

MagicRecon: herramienta para la recolección de datos y la búsqueda de vulnerabilidades en un objetivo

En el mundo del pentesting la fase de reconocimiento, o también conocida como recolección de información, es una de las más importantes para poder llevar a cabo un proceso de Ethical Hacking efectivo, y de manera cómoda. La principal misión de esta fase es conocer todos los detalles de nuestro objetivo. Si utilizamos de ejemplo algún programa de Bug Bounty, nuestra fase de recolección de información se centrará principalmente en conocer todos los activos que tiene el objetivo, que tecnologías y servicios utilizan, en qué puertos están los servicios, etcétera.

Figura 1: MagicRecon: herramienta para la recolección de datos
y la búsqueda de vulnerabilidades en un objetivo

Para realizar esta fase de manera cómoda en el ámbito del Bug Bounty y también del Ethical Hacking en general, hemos creado la herramienta MagicRecon. La puedes encontrar en su repositorio de GitHub oficial: https://github.com/robotshell/magicRecon


MagicRecon es una herramienta escrita en bash cuya principal finalidad es maximizar el proceso de recolección de datos sobre un objetivo y la búsqueda de vulnerabilidades comunes. Ejecutando la herramienta e introduciendo la URL del objetivo, podemos empezar a obtener información sobre el objetivo así como comprobar si es vulnerable a varias vulnerabilidades comunes como puedan ser Cross-Site Scripting (XSS), SQL Injection o Open Redirect

Figura 3: Libro de Ethical Hacking 2ª Edición
de Pablo González en 0xWord

También podemos comprobar otro tipo de vulnerabilidades como por ejemplo la falta de cabeceras, vulnerabilidades en certificados SSL, la falta de los registros SPF y DMARC en la configuración del correo o vulnerabilidades CORS. Todo ello, almacenado en diferentes formatos para que el usuario pueda posteriormente manejar los datos extraídos de forma fácil. A continuación, vamos a detallar cada una de las opciones de la herramienta.

Figura 4: Ejecución de MagicRecon

1) Install dependencies: La primera vez que descarguemos la herramienta desde su repositorio oficial, tendremos que utilizar esta opción para instalar todas las dependencias que hacen falta para utilizar la herramienta. Entre las dependencias encontramos muchas herramientas conocidas como Subfinder o Nuclei y lenguajes de programación como Go.

2) Massive vulnerability analysis with notifications via Discord, Telegram or Slack: La segunda opción que encontramos en la herramienta, es quizás unas de las opciones más interesantes para los usuarios que utilizan la herramienta en programas de Bug BountyAntes de poder lanzar esta opción, deberemos de configurar la herramienta Notify para poder recibir las alertas en alguna de las tres aplicaciones disponibles, Slack, Discord o Telegram. Una vez configurado, podremos lanzar esta opción de la herramienta. Lo primero que se nos pedirá es una URL objetivo y un número de segundos.

La herramienta empezará a realizar una enumeración de subdominios sobre la URL objetivo introducida por el usuario y posteriormente a cada uno de los subdominios activos encontrados se le pasarán todas las  plantillas de la herramienta Nuclei en busca de vulnerabilidades. Si en alguno de los subdominios se descubre alguna vulnerabilidad, se nos enviará una notificación a la herramienta que hayamos configurado (Slack, Discord o Telegram) para recibir las alertas. 

Figura 6: La app Slack recibiendo notificaciones

Este proceso de enumeración de subdominios y posteriormente la búsqueda de vulnerabilidades se repetirá cada X segundos, donde X es el número de segundos que ha introducido el usuario.En resumen, con esta opción de la herramienta podemos tener un escáner automático de vulnerabilidades que está constantemente buscando nuevos subdominios y vulnerabilidades sobre un objetivo.

3) Subdomain enumeration: La tercera opción que encontramos en la herramienta nos permite realizar una enumeración de subdominios completa utilizando la herramienta Subfinder y Gobuster. Con httpx comprobaremos que subdominios están vivos y finalmente, con Aquanote, la herramienta realizará una captura de pantalla de cada uno de los subdominios para poder visualizar de forma fácil su contenido.

Figura 7: Aquatone realizando capturas de pantalla sobre
algunos subdominios de Hackerone.

4) Subdomain enumeration and vulnerability scanning with nuclei: Con esta opción de la herramienta podremos realizar la misma función que la opción anterior, pero cada uno de los subdominios activos descubiertos se ejecutará con la herramienta Nuclei para buscar vulnerabilidades.

5) Subdomain enumeration with common vulnerabilities scanning: Con esta opción de la herramienta realizaremos todos los pasos de la opción 3 pero incluiremos la comprobación de una serie de vulnerabilidades como la falta de cabeceras en los dominios, la falta de los registros SPF y DMARC en la configuración del correo, vulnerabilidades CORS, Open Redirect, XSS, SQL Injection, etcétera.

6) Scan for javascript files: Los ficheros JavaScript pueden esconder información interesante para un atacante como usuarios, contraseñas, endpoints o API keys. Con esta opción lo que hará la herramienta es analizar todos los ficheros JavaScript que se encuentren en el dominio y analizar su contenido en busca de datos de interés.

Figura 8: Libro de Hacking Web Technologies 2ª Edición en 0xWord de
Chema Alonso, Enrique Rando, Amador Aparicio, Pablo González y Ricardo Martín

7) Scan for files and directories: Mediante esta opción, podremos realizar un escaneo de directorios y ficheros usando la herramienta Wfuzz, para ello, el usuario deberá introducir un diccionario en las variables de configuración del script.

8) All in one!: Esta es sin duda la opción más usada de la herramienta ya que junta la opción 3, 5, 6 y 7 en una sola. Inicialmente esta opción era el core del proyecto MagicRecon ya que simplemente introduciendo una URL objetivo, la herramienta nos devuelve todos los subdominios posibles, las vulnerabilidades que se encuentran en cada subdominio, se analizan todos los ficheros JavaScripts encontrados y se realiza un escaneo de ficheros y directorios. Todo ello, almacenado de forma ordenada y en diferentes formatos para que el usuario pudiera manejar los resultados de la herramienta de forma fácil.

Figura 9: Resultados de utilizar la opción Subdomain Enumeration.

Acabamos de ver en detalle cada una de las opciones disponibles dentro de la herramienta, cabe destacar que la herramienta está en continuo desarrollo y es posible que se añadan nuevas funcionalidades o se mejoren algunas de las que ya había. Actualmente se está trabajando en mejorar el rendimiento de la herramienta y en la función de reporting para que los usuarios dispongan de un resumen más cómodo y llamativo, para ello, se está trabajando en poder almacenar los resultados en formatos como PDF, CSV y JSON.

Sin duda, se trata de una herramienta muy interesante y fácil de utilizar que hay que incluir en nuestra mochila de Red-Team, ya que con ella podemos abordar diferentes ámbitos del proceso de Ethical hacking, como la fase de recolección de información o la fase de búsqueda de vulnerabilidades.

HAPPY HUNTING!

4 comentarios:

Ramón dijo...

Enhorabuena Agustín, por el merecido artículo. Es un placer tenerte como compañero en el máster de ciberseguridad de FP.
Ramón

Rafa pardo dijo...

Un grande,el viernes los padawan te cubren duchan con birras

Rafa Vidal dijo...

Muy buen articulo y sin duda muy interesante para particulares y empresas. Tienes alma de big bounty!

Ismael dijo...

Un articulo muy interesante, herramienta útil para bounty como para muchos más campos de la ciberseguridad. Mi enhorabuena, sigue así!

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares