
Modelo de exploit não funcional e educacional do kernel Linux para CVE-2024-1086 — pesquisa e ensino de segurança apenas em laboratório (uso apenas em VMs controladas).
🛡️ Exploit educacional polido do kernel Linux para pesquisa em segurança
Este projeto fornece um modelo robusto e não funcional para estudar CVE-2024-1086, uma vulnerabilidade de use-after-free no componente netfilter: nf_tables do kernel Linux, possibilitando escalonamento de privilégios locais. Projetado para pesquisadores de segurança e estudantes, combina um modelo de exploit em C com um wrapper Java aprimorado para diagnósticos confiáveis, configuração e execução, destinado ao uso apenas em ambiente de laboratório controlado (ex.: uma VM com kernel vulnerável).
⚠️ Aviso: O código C não é funcional, utilizando valores placeholders, e requer modificações significativas para funcionar. O uso não autorizado em sistemas de produção ou sem permissão é ilegal e antiético. Use com responsabilidade para avançar o conhecimento em segurança de kernel.
nf_tables--check, --run, --dry-run, --payload e --confignf_tables┌────────────────────────┐ ┌──────────────────────────┐ ┌─────────────────────────┐
│ 🔍 Diagnósticos Java │───▶│ 💻 Executor de Exploit │───▶│ 🔐 Modelo de Exploit C │
└────────────────────────┘ └──────────────────────────┘ └─────────────────────────┘
│ │ │
▼ ▼ ▼
┌────────────────────────┐ ┌──────────────────────────┐ ┌─────────────────────────┐
│ 🔒 Validação do Sistema │───▶│ 📝 Mecanismo de Log │───▶│ 🛡️ Kernel Netlink │
└────────────────────────┘ └──────────────────────────┘ └─────────────────────────┘
│ │
▼ ▼
┌────────────────────────┐ ┌──────────────────────────┐
│ 🧪 Suíte de Testes │ │ 📜 Gerenciamento de Config│
└────────────────────────┘ └──────────────────────────┘
O projeto integra um wrapper Java para diagnósticos seguros, logging e configuração com um modelo de exploit em C simulando interação com o kernel via sockets Netlink, suportado por uma suíte de testes para validação.
Certifique-se de ter as seguintes ferramentas instaladas:
sudo apt install build-essential)sudo apt install openjdk-11-jdk)org.json:json:20230227 (via Maven ou JAR)commons-cli:commons-cli:1.5.0 (via Maven ou JAR)Sistema Operacional:
CONFIG_USER_NS=y)nf_tables habilitado (CONFIG_NF_TABLES=y)Ambiente de Laboratório:
Clone o Repositório
git clone https://github.com/karim4353/CVE-2024-1086-Exploit.git
cd CVE-2024-1086-Exploit
Instale Dependências
sudo apt update
sudo apt install build-essential openjdk-11-jdk
# Baixe as bibliotecas ou adicione ao 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
Compile o Exploit C
make
Execute o Wrapper 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
Opções: --check, --run, --dry-run, --payload <caminho>, ,
Para configuração detalhada, veja Guia de Configuração.
CVE-2024-1086-Exploit/
├── src/
│ ├── main/
│ │ ├── c/
│ │ │ └── exploit.c # 🔐 Modelo de exploit C
│ │ ├── java/
│ │ │ └── com/example/cve20241086/
│ │ │ └── ExploitRunner.java # 🔍 Wrapper Java
│ │ └── resources/
│ │ └── config.json # 📜 Configuração do exploit
│ └── test/
│ ├── c/
│ │ └── test_exploit.c # 🧪 Casos de teste C
│ └── java/
│ └── com/example/cve20241086/
│ └── ExploitRunnerTest.java # 🧪 Casos de teste Java
├── Makefile # 🛠️ Script de compilação
├── README.md # 📝 Este arquivo
├── CONTRIBUTING.md # 🤝 Diretrizes de contribuição
├── LICENSE # 📄 Licença MIT
└── tests/
└── run_tests.sh # 🧪 Script de execução de testes
Teste o projeto em um ambiente de laboratório seguro:
# Verifique a vulnerabilidade do sistema
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --check
# Execute o exploit (não funcional)
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
# Execute os testes
./tests/run_tests.sh
# Limpe artefatos de compilação
make clean
Aceitamos contribuições para aprimorar este projeto educacional! Veja as Diretrizes de Contribuição para detalhes sobre:
nf_tablesexploit_log.txtConfigure via src/main/resources/config.json:
{
"exploitBinary": "./exploit",
"targetKernel": "5.15",
"payloadPath": "/tmp/payload.sh",
"logLevel": "DEBUG",
"timeoutSeconds": "30"
}
Veja Guia de Configuração.
Problemas Comuns:
make clean && make.sysctl -w kernel.unprivileged_userns_clone=1 e lsmod | grep nf_tables.json-20230227.jar e commons-cli-1.5.0.jar estão no classpath.Veja FAQ ou abra uma issue.
Licenciado sob a Licença MIT - veja LICENSE.
🛡️ Feito com ❤️ para a comunidade de pesquisa em segurança
--config <arquivo>--helpExecute Testes
./tests/run_tests.sh
| Componente | Mínimo | Recomendado |
|---|
| Versão do Kernel | 5.14 | 5.15.x < 5.15.148 |
| RAM | 512MB | 1GB+ |
| CPU | 1GHz | 2GHz+ |
| Espaço em Disco | 100MB | 500MB+ |
| Versão do Java | JDK 11 | JDK 17 |