Azure Notebooks para Red Teams: Footprinting y Reconocimiento. Fierce

En un post anterior iniciamos esta serie sobre el uso de Azure Notebooks para Red Teams presentando un ejemplo muy sencillo de cómo ejecutar una herramienta:
https://www.azurebrains.com/?p=19987
Cuando se trata de llevar a cabo pruebas de penetración, suele hacerse uso de un enfoque sistemático dividido en fases que se denomina Cyber Kill Chain:

Nuestro objetivo en esta serie de posts es presentar en qué fases de este proceso podemos utilizar Azure Notebooks como herramienta, y en este caso vamos a empezar por la fase de Reconocimiento, también llamada a veces Footprinting.
La fase de Reconocimiento consiste en recopilar toda la información que sea posible sobre el objetivo, de forma que con esa información podamos detectar vectores de ataque. Podemos encontrar esta información en buscadores como Google, Bing o Shodan, escaneando puertos, analizando la información de DNS, recorriendo las redes sociales, …, el límite en esta fase es la imaginación del atacante.

Por supuesto, para ayudarnos en esta recopilación podemos encontrar multitud de herramientas que tratan de automatizar el proceso. Vamos a instalar y ejecutar desde Azure Notebooks una herramienta que nos va a devolver información DNS que puede ser muy útil sobre el objetivo del pentesting, Fierce.

El primer paso en nuestro Notebook es clonar el proyecto Fierce desde GitHub:

La URL del proyecto es la siguiente:
https://github.com/mschwager/fierce.git
Una vez clonado, y para evitar que nos dé problemas de permisos de los archivos y de localización debido al uso de rutas relativas, movemos los archivos clonados a la raíz:

Y ya podemos utilizar el archivo requirements.txt que se ha clonado con el proyecto para instalar los requisitos de esta aplicación:

Definimos una variable para parametrizar el notebook. En esta variable introduciremos la URL del dominio objetivo. Debemos tener en cuenta que tenemos que estar autorizados a escanear el objetivo:

Y ya podemos ejecutar el script para que nos devuelva el resultado:

Vemos que nos devuelve rangos de IPs usados por el dominio hackthissite.org y otros dominios y subdominios relacionados. Conociendo estos rangos, el siguiente paso podría ser escanear puertos en esas IPs para obtener información sobre los servidores que están detrás.
En próximos posts seguiremos añadiendo herramientas a nuestro arsenal en Azure Notebooks.