• Carlos Loyo

Recon & Attack Surface (Parte I)- OWASP AMASS

Hola amigos blogueros,


Después de estar un tiempo alejado dedicándome más a aprender, vengo con las energías puestas para generar nuevos contenidos, espero que los mismos sean más frecuentes y empezar a publicar material para YouTube


En esta oportunidad voy a escribir sobre un procedimiento que desde hace tiempo tenía en mente, utilizar técnicas de OSINT para armar una tabla en excel y posteriormente diferentes dashboard en Kibana que permitan conocer periódicamente lo publicado en Internet sobre su organización, vinculado a:


- Subdominios

- Direcciones IP

- Puertos y Servicios

- CVEs vinculados

- Emails de empleados expuestos en

- Data Breach


Todo esto va a permitir generar un inventario de activos de la compañía (Inicialmente de website) y por otro lado conocer superficies de ataques


Seguramente se preguntaran ¿Para qué nos sirve esto Carlos? En particular, yo lo veo necesario en:


  • Conocer los activos web que están siendo publicados y son desconocidos por seguridad

  • Generar un test plan de escaneos y/o pentest

  • Poder tener un valor de entrada para generar una clasificación de activos

  • Saber que debo priorizar en la defensa

  • Tener más información para tareas de gestión de incidentes e informática forense

  • Comparar boletines de advisory de vulnerabilidades con versiones de servicios


Yo siempre evangelizó que para ser ordenados es bueno contar con un norte en los objetivos, en este caso, yo recomiendo:


  • CIS Controls Top 20 (Donde los primeros dos controles básicos están vinculados a inventario)

  • Kill Chain y Mitre ATT&CK (Para lo cual generamos información en el harvester o recon)


Ya para cerrar la introducción, recuerden que una buena defensa requiere de una buena ofensiva


Manos a la obra


Antes que nada me gustaría aclarar que aunque ya venia con esta idea en mente, este artículo tiene muchos datos consultados de una presentación en la Black Hat https://www.blackhat.com/us-19/arsenal/schedule/index.html#attack-surface-mapper-automate-and-simplify-the-osint-process-16713, la cual recomiendo


¿Qué debemos hacer en este procedimiento?


  • Encontrar direcciones IPs desde ASN

  • Subdominios

  • BruteForce de Subdominios

  • Port Scanning

  • Consultas a registros de CVEs

  • Hostname Discovery

  • Obtención de Passive & Active DNS Record

  • WHOIS records

  • Consultas en motores sobre correos expuestos

  • Análisis en sitios pastes y base de brechas


Para trabajar en este procedimiento solo necesitamos los dominios de la compañía


ADVERTENCIA: PARA QUE LA PRÁCTICA TENGA SENTIDO UTILIZAREMOS UN DOMINIO. RECUERDEN QUE VAMOS A OBTENER SOLO DATOS PÚBLICOS


Dado que el fin es académico, utilizaremos universidades como ejemplo


Empecemos por las herramientas (Utilizaremos la versión de Ubuntu 18.04 LTS):


1.- OWASP AMASS


Como lo describen en su repositorio oficial https://github.com/OWASP/Amass. El Proyecto Amass de OWASP realiza un mapeo de red de superficies de ataque y descubrimiento de activos externos utilizando técnicas de recolección de información de código abierto y reconocimiento activo.


Amass está respaldado por OWASP, que debería proporcionar prestigio y confianza en los resultados. Se mantiene activamente y es probable que sea compatible durante mucho tiempo, lo que significa que cualquier error futuro se resolverá. Además, la tasa de adopción de Amass es alta, lo que potencialmente significa una mejor consistencia de datos e integración con otras herramientas. Como tal, puede constituir una herramienta mejor y más confiable para usar como prueba de conceptos y compromisos, y puede ser más fácil convencer a sus clientes o gerente de usarla para el mapeo periódico de la superficie de ataque de la organización.


El software esta programado en el lenguaje Go, y es totalmente portátil en otros sistemas operativos, tanto para Windows, GNU/Linux, MacOS, FreeBSD, etc.


Las técnicas de recopilación de información utilizadas.


  • DNS: enumeración básica, fuerza bruta (a solicitud), barrido de DNS inverso,

alteraciones/permutaciones de nombre de subdominios, transferencias de zona (a solicitud).

  • Scraping: Ask, Baidu, Bing, CommonCrawl, DNSDB, DNSDumpster, DNSTable,Dogpile, Exalead, FindSubdomains, Google, IPv4Info, Netcraft, PTRArchive,Riddler, SiteDossier, ThreatCrowd, VirusTotal y Yahoo.

  • Certificados: Censys, CertDB, CertSpotter, Crtsh y Entrust.

  • API: BinaryEdge, BufferOver, CIRCL, HackerTarget, PassoveTotal, Robtex,

SecurityTails, Shodan, Twitter, Umbrella y URLScan.

  • Archivos Web: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback.


Para la instalación utilizaremos el comando snap, aunque pueden utilizar el comando go o instalar desde docker


Instalación # sudo snap install amass # sudo apt install snapd # sudo systemctl start snapd # sudo systemctl enable snapd # sudo systemctl start apparmor # sudo systemctl enable apparmor


Viene con 5 subcomandos, en otras palabras, funciones:


  • amass intel - Descubre objetivos para enumeraciones

  • amass enum - Realizar enumeraciones y mapeo de redes

  • amasar viz - Visualizar resultados de enumeración

  • amasar track: rastrea las diferencias entre enumeraciones

  • amass db: manipula la base de datos de gráficos de Amass


Los subcomandos de Amass se pueden usar conjuntamente, en algunos casos, lo que podría permitirle crear scripts que realicen múltiples operaciones de Amass.


Admite 55 fuentes, como API y sitios web, en el momento de la escritura como parte de sus técnicas de descubrimiento de subdominios y recopilación de información.


Estos se pueden enumerar con el siguiente comando:


# amass enum -list



Amass emplea diferentes tipos de técnicas:


  • Recopilación de información para la enumeración de DNS

  • Fuerza bruta de subdominios usando listas de palabras de nombres de dominio y listas de palabras de alteración

  • Identificación de subdominios leyendo certificados SSL / TLS, realizando transferencias de zona DNS o verificando registros de transparencia de certificados

  • Descubrimiento recursivo de subdominios en dominios identificados

  • Máscaras de estilo Hashcat para fuerza bruta de subdominios (esto puede ser muy útil si tiene información interna sobre convenciones de nomenclatura, etc.)

  • Se puede configurar mediante un archivo de configuración que facilita el mantenimiento, el uso o la integración con scripts.


Por lo que es la herramienta ideal para realizar recon de nuestro organización


Siguiendo con las practicas, si queremos enumerar solo los dominios que estén vinculado a un puerto en particular. Por ejemplo 443


# amass enum -active -d uba.ar net -p 443


Si desean buscar mas de un dominio, amass nos proporciona la variable df, para este caso agregamos palermo.edu y uba.ar donde se guardara la información en el directorio resultado_amass


# amass enum -ip -df dominios.txt -dir ./resultado_amass/


En la próxima publicación vamos a realizar llamadas más avanzadas y obtener el recon completo de los dominios consultados


Recuerden que el objetivo final es poder integrar todo a Kibana y armar sus propios KPIs y métricas de recon y attack surface


Saludos