
Plantilla educativa y no funcional de exploit del kernel de Linux para CVE-2024-1086 — solo para investigación y enseñanza en laboratorio (usar solo en máquinas virtuales controladas).
🛡️ Exploit educativo pulido del kernel de Linux para investigación en seguridad
Este proyecto proporciona una plantilla robusta y no funcional para estudiar CVE-2024-1086, una vulnerabilidad de use-after-free en el componente netfilter: nf_tables del kernel de Linux, que permite escalada local de privilegios. Diseñado para investigadores de seguridad y estudiantes, combina una plantilla de exploit en C con un envoltorio mejorado en Java para diagnóstico fiable, configuración y ejecución, destinado únicamente para su uso en un entorno de laboratorio controlado (p. ej., una máquina virtual con un kernel vulnerable).
⚠️ Advertencia: El código en C no es funcional, utiliza valores de marcador de posición y requiere modificaciones significativas para funcionar. El uso no autorizado en sistemas de producción o sin permiso es ilegal y poco ético. Úselo con responsabilidad para avanzar en el conocimiento de la seguridad del kernel.
nf_tables--check, --run, --dry-run, --payload y --confignf_tables┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔍 Diagnóstico Java │───▶│ 💻 Ejecutor Exploit │───▶│ 🔐 Plantilla C Exploit│
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔒 Validación Sistema│───▶│ 📝 Motor de Registro│───▶│ 🛡️ Netlink del Kernel│
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ 🧪 Suite de Pruebas │ │ 📜 Gestión Config │
└─────────────────────┘ └─────────────────────┘
El proyecto integra un envoltorio Java para diagnóstico seguro, registro y configuración con una plantilla de exploit en C que simula la interacción con el kernel a través de sockets Netlink, respaldado por una suite de pruebas para validación.
Asegúrese de tener las siguientes herramientas instaladas:
sudo apt install build-essential)sudo apt install openjdk-11-jdk)org.json:json:20230227 (a través de Maven o JAR)commons-cli:commons-cli:1.5.0 (a través de Maven o JAR)Sistema operativo:
CONFIG_USER_NS=y)nf_tables habilitado (CONFIG_NF_TABLES=y)Entorno de laboratorio:
Clonar el repositorio
git clone https://github.com/karim4353/CVE-2024-1086-Exploit.git
cd CVE-2024-1086-Exploit
Instalar dependencias
sudo apt update
sudo apt install build-essential openjdk-11-jdk
# Descargar bibliotecas o agregar a Maven
wget https://repo1.maven.org/maven2/org/json/json/20230227/json-20230227.jar
wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.5.0/commons-cli-1.5.0.jar
Compilar el exploit en C
make
Ejecutar el envoltorio Java
javac -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" -d . src/main/java/com/example/cve20241086/ExploitRunner.java
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
Opciones: --check, --run, --dry-run, --payload <ruta>, ,
Para una configuración detallada, consulte Guía de configuración.
CVE-2024-1086-Exploit/
├── src/
│ ├── main/
│ │ ├── c/
│ │ │ └── exploit.c # 🔐 Plantilla de exploit en C
│ │ ├── java/
│ │ │ └── com/example/cve20241086/
│ │ │ └── ExploitRunner.java # 🔍 Envoltorio Java
│ │ └── resources/
│ │ └── config.json # 📜 Configuración del exploit
│ └── test/
│ ├── c/
│ │ └── test_exploit.c # 🧪 Casos de prueba en C
│ └── java/
│ └── com/example/cve20241086/
│ └── ExploitRunnerTest.java # 🧪 Casos de prueba en Java
├── Makefile # 🛠️ Script de compilación
├── README.md # 📝 Este archivo
├── CONTRIBUTING.md # 🤝 Directrices de contribución
├── LICENSE # 📄 Licencia MIT
└── tests/
└── run_tests.sh # 🧪 Script ejecutor de pruebas
Pruebe el proyecto en un entorno de laboratorio seguro:
# Verificar vulnerabilidad del sistema
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --check
# Ejecutar exploit (no funcional)
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
# Ejecutar pruebas
./tests/run_tests.sh
# Limpiar artefactos de compilación
make clean
¡Agradecemos las contribuciones para mejorar este proyecto educativo! Consulte Directrices de contribución para obtener detalles sobre:
nf_tablesexploit_log.txtConfigure a través de src/main/resources/config.json:
{
"exploitBinary": "./exploit",
"targetKernel": "5.15",
"payloadPath": "/tmp/payload.sh",
"logLevel": "DEBUG",
"timeoutSeconds": "30"
}
Consulte Guía de configuración.
Problemas comunes:
make clean && make.sysctl -w kernel.unprivileged_userns_clone=1 y lsmod | grep nf_tables.json-20230227.jar y commons-cli-1.5.0.jar estén en el classpath.Consulte FAQ o abra un issue.
Licenciado bajo la Licencia MIT - consulte LICENSE.
🛡️ Construido con ❤️ para la comunidad de investigación en seguridad
--config <archivo>--helpEjecutar pruebas
./tests/run_tests.sh
| Componente | Mínimo | Recomendado |
|---|
| Versión del kernel | 5.14 | 5.15.x < 5.15.148 |
| RAM | 512MB | 1GB+ |
| CPU | 1GHz | 2GHz+ |
| Espacio en disco | 100MB | 500MB+ |
| Versión de Java | JDK 11 | JDK 17 |