
Determine si su cómputo es realmente vulnerable a una vulnerabilidad específica teniendo en cuenta todos los factores que afectan la *explotabilidad real* (ejecución en tiempo de ejecución, configuración, permisos, existencia de una mitigación, SO, etc..)
Autor: 2022 - Actualidad, Rezilion
Descripción: Validación de vulnerabilidades
Desarrollo: Enero de 2022 - Actualidad
Documentación: Ver sitio web, README
‘Am I Exploitable?’ es un proyecto de código abierto en Python que surge para satisfacer la necesidad de validar si tu sistema es explotable frente a vulnerabilidades específicas. El proyecto te ayuda a entender si eres explotable frente a una vulnerabilidad específica y te explica cuál es el componente vulnerable o no vulnerable de tu sistema. El proyecto puede crear un grafo que presenta el flujo de validación según las comprobaciones de vulnerabilidad que realizamos. MI-X admite salida legible por máquina. Los resultados se pueden exportar a tres formatos de archivo diferentes: json, csv y text. Después de ejecutar la herramienta, verás el flujo de validación: imprimirá qué comprobaciones se realizaron en el host/contenedor, seguidas de recomendaciones de remediación y mitigación. Queremos crear una comunidad de investigadores y programadores que puedan añadir comprobaciones de vulnerabilidades nuevas, críticas o conocidas. Siempre que surja una nueva vulnerabilidad, podemos ofrecer este servicio que ayuda a las personas a validar si son explotables o no. Además, las comprobaciones de vulnerabilidades que hemos escrito hasta ahora pueden ampliarse con algunas que podríamos haber pasado por alto.
Un ejemplo de grafo de flujo para CVE-2021-4034 (también conocido como PwnKit):
Todo el mundo es libre de usar 'Am I Exploitable?' bajo las condiciones de la Licencia AGPL-3.0 (consulte el archivo LICENSE).
am_i_exploitable.py - El archivo principal que gestiona la entrada del usuario y las llamadas a los CVEs.cves - Paquete de Python que contiene un archivo Python para cada vulnerabilidad actualmente soportada.modules - Paquete de Python que contiene módulos.
Los módulos son implementaciones de código que se utilizan en diferentes archivos de CVE.La herramienta es compatible con las siguientes distribuciones de Linux:
Ubuntu, Debian, Red Hat, Centos, Fedora, SUSE, SLES, Amazon
Soporte parcial para Alpine
Soporte parcial para Windows
Antes de instalar MI-X, asegúrate de que tu máquina tenga lo siguiente:
openjdk10)Para instalar los requisitos:
Comprueba la distribución de tu sistema operativo; puedes usar el siguiente comando:
cat /etc/os-release
Determina qué gestor de paquetes utiliza tu distribución:
apt - Ubuntu, Debian
yum - Red Hat, CentOS, Fedora, SUSE, SLES, Amazon
apk - Alpine
Instala los paquetes correspondientes con el gestor de paquetes de tu distribución
Para ejecutar MI-X correctamente, debes instalar los módulos de Python graphviz y packaging usando pip:
pip install -r requirements.txt
Los desarrollos más recientes se pueden obtener a través de git.
git clone https://github.com/Rezilion/mi-x.git
cd mi-x && python3 am_i_exploitable.py
Plantilla del comando de escaneo
python3 am_i_exploitable.py -v cve_yyyy_xxxx -c True -g True -f json
Escanea la máquina que ejecuta contenedores en busca de log4shell.
python3 am_i_exploitable.py -v log4shell -c True -f json

Especifica la vulnerabilidad que se comprobará (no establecido por defecto).
Sintaxis:
Si el argumento no se establece, aparecerá un mensaje de menú que presenta las vulnerabilidades actualmente soportadas.
Escanea todos los contenedores en ejecución en el host (False por defecto).
Escanea contenedores específicos en el host introduciendo los nombres de los contenedores en ejecución separados por espacios (no establecido por defecto).
Exporta los resultados a uno de tres formatos de salida posibles: json, csv, text
Especifica si se debe mostrar la descripción de la vulnerabilidad o no (True por defecto).
Especifica si se debe mostrar el diagrama de flujo de validación (False por defecto).
Ayuda para entender cómo ejecutar el código
¿Encontraste un problema o tienes una gran idea? Cuéntanoslo:
Las contribuciones son bienvenidas y se pueden realizar a través de GitHub.
Consulta CONTRIBUTING.md para obtener más información sobre cómo enviarlas.
'Am I Exploitable?' se prueba en Windows y en los sistemas operativos Linux más comunes. La documentación (README) y la información de depuración (establece el parámetro debug en 'True') deberían resolver la mayoría de las preguntas y problemas.
Los errores se pueden reportar a través de GitHub, o enviando un correo electrónico a la dirección indicada anteriormente.
Gracias a la comunidad por usar y apoyar el software de código abierto.
Muchos comentarios, errores/parches y preguntas son la clave del éxito y la motivación continua para desarrollar herramientas como esta.