Vulnerabilidades explotables conocidas: cómo detectarlas todas
En este artículo descubriremos herramientas esenciales y conclusiones empíricas para identificar vulnerabilidades críticas, de alta severidad y explotadas activamente, procedentes de fuentes reconocidas como CISA KEV, Tsunami de Google y el innovador Asteroid Project de Ostorlab.
Resumen
Este artículo comparte datos empíricos y herramientas para detectar vulnerabilidades críticas y de alta severidad, explotables de forma remota y de forma activa. Estas vulnerabilidades se han recopilado de fuentes como CISA KEV, Tsunami de Google y nuestra nueva incorporación, el proyecto Asteroid de Ostorlab. En este artículo publicamos como código abierto nuevas herramientas para detectar a escala una gran proporción de estas vulnerabilidades.
Introducción
No todas las vulnerabilidades «nacen» iguales: tienen impactos distintos y requieren condiciones diferentes para ser explotadas. Las vulnerabilidades críticas y de alto impacto, explotables de forma remota y sin autenticación, se cuentan entre las más peligrosas, ya se trate de ejecución remota de código, toma de control de cuentas o credenciales predeterminadas y débiles, pues todas pueden tener un impacto devastador.
Este artículo se centra en identificar estas vulnerabilidades críticas, distinguirlas del resto y presentar un conjunto de nuevas herramientas de código abierto (agentes) para detectarlas en cualquier sistema.
Además, se compartirán y analizarán los resultados de emplear estas herramientas a la escala de un programa de bug bounty.
Las vulnerabilidades
La severidad de una vulnerabilidad varía según diversos factores, entre ellos los vectores de ataque (locales o remotos), el nivel de privilegios necesario y la necesidad de interacción del usuario. Otro criterio importante que puede añadirse para evaluar estas vulnerabilidades es si han sido explotadas en entornos reales. Estos criterios ayudan a identificar y priorizar las vulnerabilidades que representan las amenazas más críticas, que exigen atención y corrección inmediatas.
Este proceso de priorización resulta más viable con la ayuda de varias fuentes, como CISA KEV y Tsunami de Google. CISA KEV es un catálogo de vulnerabilidades que registra los CVE explotados activamente, mientras que Tsunami se especializa en vulnerabilidades críticas y de alta severidad priorizadas por el Security Automated Team de Google.
CISA KEV :
La lista CISA KEV contenía 1054 CVE en total:
-
680 no son explotables de forma remota o requieren interacción del usuario o autenticación.
-
374 vulnerabilidades se explotan de forma remota sin interacción del usuario ni privilegios.

De las 374 vulnerabilidades analizadas, 264 tenían exploits públicos confirmados. Para el resto, algunas contaban con análisis técnicos que aportaban información, mientras que otras carecían de cualquier información asociada.
De las pruebas de concepto investigadas, no todas eran auténticas: algunas eran parciales, erróneas, maliciosas o meras bromas.
Otro ejemplo es CVE-2022-28958, que no es una vulnerabilidad real. Los atacantes utilizaron un payload falso en sus ataques, lo que indica que el exploit público se empleó sin verificarlo.

La descripción de la vulnerabilidad es: «DIR816L_FW206b01 shareport.php has an issue that attackers can use to execute commands via value parameter».
Sin embargo, tras la investigación, la prueba de concepto del investigador resultó no ser funcional, y las pruebas adicionales realizadas por VulnCheck sobre el firmware no lograron hallar ninguna evidencia que respaldara la existencia de la vulnerabilidad.
El análisis también reveló una gran diversidad entre los fabricantes y productos incluidos en la lista.
A continuación se muestra la distribución de CVE (explotables de forma remota frente a no explotables de forma remota) por fabricante

Puntos destacables:
Microsoft: lidera la lista con 275 CVE, pero solo 16 son explotables de forma remota sin autenticación.Apache: ocupa el primer lugar en CVE explotables de forma remota sin autenticación, con 31 vulnerabilidades.
Distribución por producto de los CVE que requieren credenciales o no son explotables de forma remota :

Distribución por producto de los CVE explotables de forma remota sin autenticación:

La lista completa está disponible en el siguiente repositorio y se actualiza constantemente: repositorio KEV de Ostorlab.

Nuevas herramientas de código abierto
El framework de escaneo de seguridad de código abierto de Ostorlab desempeñó un papel fundamental para establecer una solución de escaneo centralizada. Permitió ejecutar simultáneamente varios agentes con capacidades diversas para probar estas vulnerabilidades a escala.
Por ejemplo, probar la presencia de estas vulnerabilidades contra rangos de IP arrojó malos resultados. Varias de estas vulnerabilidades solo son accesibles mediante nombres de dominio válidos.
Los agentes creados y utilizados para detectar estas vulnerabilidades son:
Nuclei agent: un agente de código abierto que envuelve el escáner Nuclei, lo que permite escanear cualquier objetivo y utilizar cualquier plantilla especificada.
Para más información, consulte: https://github.com/Ostorlab/agent_nuclei.
Tsunami agent: un agente de código abierto que envuelve el escáner Tsunami, con la capacidad de ejecutar todos los plugins que proporciona el escáner.
Para más información, consulte: https://github.com/Ostorlab/agent_tsunami.
Metasploit agent: un agente de código abierto diseñado para utilizar los módulos de Metasploit contra cualquier objetivo y comprobar la presencia de vulnerabilidades.
Para más información sobre su uso, consulte: https://github.com/Ostorlab/agent_metasploit.
Agent Asteroid: un nuevo agente que permite ejecutar comprobaciones complejas que requieren protocolos personalizados o lógica compleja, como el descifrado de claves criptográficas, que sería más difícil de implementar con una plantilla de Nuclei. El agente está disponible en https://github.com/Ostorlab/agent_asteroid.

La carpeta 'exploits' contiene las distintas pruebas de concepto implementadas, a las que seguiremos añadiendo otras.
En el momento de publicar este informe, nuestro conjunto de herramientas abarca 18 comprobaciones distintas para diversos CVE. Además, hemos desarrollado comprobaciones personalizadas específicas, como la que detecta la exposición de Android Debug Bridge (ADB).
Nmap agent: un agente de código abierto para ejecutar el descubrimiento de puertos. El agente de Nmap es el que puede descubrir qué puertos deben ser objetivo del agente de detección, de modo que se escaneen una sola vez y todos los agentes los prueben.
Amass agent: un agente de código abierto para enumerar subdominios. Este agente se ha utilizado durante las pruebas a gran escala para cubrir todos los objetivos de acceso público de un dominio determinado.
Subfinder agent: otro agente de código abierto para enumerar subdominios. Este agente complementa a amass para mejorar la enumeración de dominios.
Cómo juntarlo todo
Para ejecutar todos estos agentes simultáneamente, Ostorlab ofrece la funcionalidad de definir un grupo de agentes y especificar los agentes deseados.
Para ver la definición completa del grupo de agentes, puede consultar vulnerabilidades explotables conocidas.
Para ejecutar este grupo de agentes:
oxo scan run --install -g agent_group.yaml domain-name example.com
Los agentes se empaquetan como imágenes de docker y el indicador –-install garantiza que se descargue la última versión.
Para visualizar cómo colaboran estos agentes sin fricciones, puede utilizar la herramienta disponible en: https://report.ostorlab.co/library/agent/group.

Ofrece una funcionalidad de arrastrar y soltar que permite generar un archivo YAML para el grupo de agentes. Además, permite visualizar la comunicación entre los agentes, sus entradas y salidas, y su posición en el flujo de trabajo.
Pruebas a escala
Ejecutar las herramientas desarrolladas contra diversos objetivos de bug bounty proporcionó resultados empíricos sobre la presencia de estas vulnerabilidades en objetivos con una postura de seguridad madura.
De los 1500 objetivos, se obtuvieron los siguientes resultados: veinticinco (25) de los objetivos contenían vulnerabilidades críticas que conducían a la ejecución remota de código.
Por ejemplo:
La vulnerabilidad Jboss Application Server - Remote Code Execution, con una puntuación CVSS de 9.8.

Once de los objetivos (11) contenían vulnerabilidades de alta severidad, que iban desde RCE previo a la autenticación y credenciales débiles en servicios como FTP e IMAP, hasta omisión del control de acceso.
Esto significa que, de estos objetivos, que se presupone que tienen una postura de seguridad madura, el 2.5% seguía sufriendo vulnerabilidades explotables públicamente.
Conclusiones
Las vulnerabilidades suponen un desafío constante y su priorización sigue siendo compleja, por decir lo menos. Una herramienta centralizada de código abierto para detectar amenazas conocidas ofrece una ventaja (y un primer paso) para proteger los entornos.
No dude en contribuir a este proyecto de código abierto. Puede crear un pull request con su prueba de concepto en: