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.
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 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
Figura 2: magicRecon en GitHub
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.
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 Bounty. Antes 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.
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 Bounty. Antes 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!
Enhorabuena Agustín, por el merecido artículo. Es un placer tenerte como compañero en el máster de ciberseguridad de FP.
ResponderEliminarRamón
Un grande,el viernes los padawan te cubren duchan con birras
ResponderEliminarMuy buen articulo y sin duda muy interesante para particulares y empresas. Tienes alma de big bounty!
ResponderEliminarUn articulo muy interesante, herramienta útil para bounty como para muchos más campos de la ciberseguridad. Mi enhorabuena, sigue así!
ResponderEliminar