
Investigación de la vulnerabilidad CVE-2024-3094.
Este repositorio contiene los resultados del análisis de la vulnerabilidad crítica CVE-2024-3094 (backdoor en la biblioteca liblzma del paquete xz-utils, que conduce a RCE a través del proceso OpenSSH).
En el marco del proyecto se preparó un entorno de prueba aislado, se desarrolló un modelo de amenazas y se escribieron comprobaciones automáticas.
Dockerfile — Script de construcción del entorno (Debian Bookworm) con todas las dependencias (OpenSSH, Python 3, venv, pytest, pwntools).tests/ — Directorio con pruebas automáticas (pytest):
test_vulnerability.py / tests_vulnerability.py — pruebas de integración de la funcionalidad SSH y pruebas Mock para verificar el comportamiento del sistema de detección del backdoor.exploit/ — Scripts Proof of Concept (PoC) para emular un ataque.docs/ — Modelo de amenazas (Threat Model) en formato Markdown y gráficos.reports/ — Informes sobre los resultados del análisis estático/dinámico.Todas las pruebas e investigaciones se realizan en un contenedor Docker aislado para no poner en riesgo el sistema anfitrión.
La imagen instala un servidor SSH (con contraseña root:screencast) y configura un entorno virtual de Python con todas las bibliotecas necesarias.
docker build -t cveanalysis:20243094 .
El contenedor se ejecuta en segundo plano. El puerto SSH interno (22) se redirige al puerto 2222 de la máquina anfitrión.
docker run -d -p 2222:22 --name cve-test cveanalysis:20243094
Para ejecutar todos los archivos de prueba (test_vulnerability.py y tests_vulnerability.py) ejecute el comando desde su máquina anfitrión:
docker exec -it cve-test pytest -v tests/*
Qué verifican las pruebas:
root:screencast).Si desea probar los scripts de la carpeta exploit/ (o conectarse por SSH manualmente) desde su máquina anfitrión, utilice el puerto redirigido 2222:
# Пример ручного входа
ssh [email protected] -p 2222
# Пароль: screencast
# Пример запуска вашего PoC скрипта (если он требует внешнего запуска)
python3 exploit/PoC.py 127.0.0.1
Después de completar el análisis, detenga y elimine el contenedor de prueba:
docker stop cve-test
docker rm cve-test