Hola a todos.

En el post de hoy os traemos la herramienta Amass. Esta herramienta, desarrollada en Go, nos permite definir la superficie externa de ataque de una organización. Es decir, con ella podemos mapear los activos externos mediante la recopilación de información de código abierto (OSINT). A está acción se le conoce como reconocimiento pasivo. Amass también incluye una serie de técnicas de reconocimiento activo.

Ojo, esto último es importante. El reconocimiento activo quiere decir que se va a interactuar directamente con el objetivo en cuestión. Es decir, quedará registrado que se han realizado ciertas peticiones y demás. Por tanto, este tipo de reconocimiento sólo lo debemos de utilizar si tenemos permiso.

Además, debemos tener en cuenta que algunas de las técnicas, que van a ser mencionadas más adelante en el post, utilizan fuerza bruta por diccionario. Es por ello que debemos ir con cuidado a la hora de realizar este tipo de reconocimiento. Por supuesto, no nos hacemos responsables del uso indebido que se le dé a esta herramienta.

¿Por qué utilizar Amass?

Existen una gran cantidad de herramientas de código abierto disponibles para la enumeración de subdominios, ASNs (Autonomous System Numbers) y otro tipo de activos pertenecientes a las organizaciones. Sin embargo, muchas de estas herramientas no son mantenidas y actualizadas. Esto a día de hoy deriva en que dichas herramientas se dejen por el camino algunas metodologías o técnicas recientes. Por tanto, no es de extrañar que muchas de ellas no estén completas.

Figura 1: Banner de bienvenida
Figura 1: Banner de bienvenida

El motivo de utilizar Amass es que se trata de un proyecto respaldado por la entidad OWASP. Lo cual le da prestigio a la herramienta, confiando así en los resultados que ésta facilita al Auditor/Pentester/Bug bounty hunter, etc. Es por ello que la herramienta está en un desarrollo y mantenimiento constante. Además, OWASP tiene como objetivo mantener este proyecto durante un largo periodo de tiempo.

Por otro lado, permite la creación de scripts que hagan uso de la herramienta. Y, además, permite exportar los resultados obtenidos a diferentes formatos, entre ellos se encuentra el formato correspondiente al software Maltego (https://www.maltego.com/).

Instalando Amass

Disponemos de varias opciones para instalar la herramienta. En el siguiente enlace podemos encontrar todas las formas posibles para instalar el software en nuestro entorno preferido: https://github.com/OWASP/Amass/blob/master/doc/install.md

Como podéis ver en el enlace, tenemos desde una imagen en Docker hasta paquetes ya preparados para las distribuciones Kali o Parrot, pasando por los paquete precompilados. En esta ocasión, la herramienta se va a probar en una máquina Kali que dispone de la siguiente versión de kernel: 5.7.0.

Por tanto, en el caso de que no se encuentre instalada la herramienta en Kali, con ejecutar los siguientes comandos ya sería suficiente. Por defecto, en las últimas versiones de Kali linux ya debe de estar instalada:

apt update
apt install amass 

Como se ha dicho ya previamente, algunas técnicas de Amass utilizan fuerza bruta haciendo uso de diccionarios. Es por ello que el paquete SecLists es altamente recomendable. A continuación, se facilita el enlace al repositorio: https://github.com/danielmiessler/SecLists

¿Cómo funciona Amass?

Esta herramienta utiliza las siguientes técnicas relacionadas con DNS: Brute forcing, Reverse DNS sweeping, FQDN alterations/permutations, FQDN Similarity-based Guessing & Zone transfers.

Por otro lado, es capaz de realizar Scraping a partir de los siguientes recursos: Ask, Baidu, Bing, BuiltWith, DNSDumpster, HackerOne, RapidDNS, Riddler, SiteDossier, ViewDNS & Yahoo.

También es capaz de consultar los certificados a partir de los siguientes orígenes de datos: Censys, CertSpotter, Crtsh, FacebookCT, GoogleCT más los pulls activos que son opcionales.

Por otra parte, para hacer todavía más potente la herramienta, se le ha incluido la posibilidad de consultar distintas API’s. Es totalmente recomendable obtener la API Key de todas las API’s posibles para poder sacarle el mayor partido posible a la herramienta.

Simplemente recordar que algunas de las API Keys de los servicios que se van a mostrar a continuación son gratuitas, y que se puede encontrar información sensible para la organización objetivo en sitios como Twitter, Pastebin, etc.

Estas son las API’s que se pueden configurar en la herramienta: AlienVault, BinaryEdge, BufferOver, C99, CIRCL, Cloudflare, CommonCrawl, DNSDB, GitHub, HackerTarget, IPToASN, Mnemonic, NetworksDB, PassiveTotal, Pastebin, RADb, ReconDev, Robtex, SecurityTrails, ShadowServer, Shodan, Spyse, Sublist3rAPI, TeamCymru, ThreatCrowd, ThreatMiner, Twitter, Umbrella, URLScan, VirusTotal, WhoisXML & ZETAlytics.

Por último, la herramienta también puede recolectar información de los históricos web como son: ArchiveIt, LoCArchive, UKGovArchive & Wayback.

¿Cómo hacemos uso de todo ello?

Para poder utilizar todas estás técnicas y recursos, el usuario dispone de 5 subcomandos encargados de realizar las distintas funciones.

  • amass intel → Este subcomando es el encargado de descubrir los objetivos a enumerar. Para ello recolectará información OSINT.
  • amass enum → El subcomando enum lleva a cabo la enumeración y mapeo de red del objetivo en cuestión.
  • amass viz → Este es el responsable de visualizar los datos que hemos obtenido en las enumeraciones previas.
  • amass db → Para poder modificar la base de datos, de la cual se nutre el gráfico que nos mostrará la herramienta con el comando anterior, debemos utilizar el subcomando db.
  • amass track → Con este subcomando podemos encontrar las diferencias entre una enumeración y otra. Este puede ser interesante para, por ejemplo, monitorizar los dominios de nuestra compañía/entidad.
  • amass dns → Este comando sirve para poder realizar consultas DNS con un alto rendimiento.

Todos estos subcomandos tienen sus propias flags para especificar determinados parámetros. Para poder consultarlas, debemos añadir -h en cualquiera de los comandos anteriormente listados. De esta manera podemos afinar lo necesario para obtener los resultados deseados.

En el caso de querer utilizar las API’s anteriormente mencionadas, debemos configurar un fichero en el cual le indicaremos la API Key de dicho servicio. Aquí se deja el enlace al fichero de ejemplo proporcionado por los responsables del proyecto:

https://github.com/OWASP/Amass/blob/master/examples/config.ini

Obtenida la información con el subcomando intel, pasamos a la enumeración de los activos. Para ello, debemos tener en cuenta qué tipo de enumeración queremos aplicar con el comando enum. Si la activa o la pasiva. Recordemos, que en el caso de la enumeración activa necesitamos tener permiso. En el caso de ser pasiva debemos hacer uso de la flag -passive. A continuación, se muestra un ejemplo de ésta última:

Figura 2: Resultado de la enumeración pasiva
Figura 2: Resultado de la enumeración pasiva

Como se puede apreciar en la imagen, solo se han hecho uso de las API’s predeterminadas en el caso de enumeración pasiva. Ya que no se ha modificado el fichero de configuración con las API Keys de aquellos servicios que las necesitan. Como ya se ha comentado, es interesante hacerse con algunas de estas Keys para poder sacar el máximo partido de Amass.

Para poder visualizar los datos en un gráfico, se debe el usar el subcomando viz con los parámetros deseados. Es este el comando que permite exportar los resultados de forma que Maltego los pueda entender. Para ello debemos hacer uso de la flag -maltego. Sin embargo, en esta ocasión se ha obtenido un grafico d3. Para obtener el gráfico que se muestra a continuación se ha utilizado el siguiente comando: amass viz -d3 -dir derechodelared

Figura 3: Gráfico obtenido tras la enumeración
Figura 3: Gráfico obtenido tras la enumeración

Amass da para mucho más de lo que se muestra en este documento. No obstante, este post es simplemente para dar a conocer la herramienta. Por tanto, no se va a profundizar más en ella en esta entrada del blog.

Espero que la herramienta os haya gustado, ya que considero que Amass es una herramienta a tener en nuestro arsenal. Os recomiendo, a aquellos que os interese, que juguéis con ella en vuestros laboratorios para ver de que es capaz.

Saludos!

___________________________________

Recordaros que podéis seguirnos en nuestro Twitter, Instagram y Telegram.

Si te gusta la labor que realizamos a diario…

AUTOR