
Bildungs-, nicht funktionsfähige Linux-Kernel-Exploit-Vorlage für CVE-2024-1086 – nur für Lab-Sicherheitsforschung und -Lehre (nur in kontrollierten VMs verwenden).
🛡️ Aufbereiteter Linux-Kernel-Exploit für Sicherheitsforschung (Lehrzwecke)
Dieses Projekt bietet eine robuste, nicht funktionsfähige Vorlage zum Studium von CVE-2024-1086, einer Use-After-Free-Schwachstelle in der netfilter: nf_tables-Komponente des Linux-Kernels, die lokale Privilegieneskalation ermöglicht. Entwickelt für Sicherheitsforscher und Studierende, kombiniert es eine C-Exploit-Vorlage mit einem erweiterten Java-Wrapper für zuverlässige Diagnose, Konfiguration und Ausführung, vorgesehen für die Verwendung ausschließlich in einer kontrollierten Laborumgebung (z. B. einer VM mit einem verwundbaren Kernel).
⚠️ Warnung: Der C-Code ist nicht funktionsfähig, verwendet Platzhalterwerte und erfordert erhebliche Modifikationen, um zu funktionieren. Die unbefugte Nutzung auf Produktionssystemen oder ohne Erlaubnis ist illegal und unethisch. Verwenden Sie es verantwortungsbewusst, um das Wissen über Kernel-Sicherheit zu fördern.
nf_tables-Modul--check, --run, --dry-run, --payload und --confignf_tables-Exploits┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔍 Java Diagnostics │───▶│ 💻 Exploit Runner │───▶│ 🔐 C Exploit Template│
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔒 System Validation│───▶│ 📝 Logging Engine │───▶│ 🛡️ Kernel Netlink │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ 🧪 Test Suite │ │ 📜 Config Management│
└─────────────────────┘ └─────────────────────┘
Das Projekt integriert einen Java-Wrapper für sichere Diagnose, Protokollierung und Konfiguration mit einer C-Exploit-Vorlage, die die Kernel-Interaktion über Netlink-Sockets simuliert, unterstützt durch eine Testsuite zur Validierung.
Stellen Sie sicher, dass Sie die folgenden Werkzeuge installiert haben:
sudo apt install build-essential)sudo apt install openjdk-11-jdk)org.json:json:20230227 (über Maven oder JAR)commons-cli:commons-cli:1.5.0 (über Maven oder JAR)Betriebssystem:
CONFIG_USER_NS=y)nf_tables-Modul aktiviert (CONFIG_NF_TABLES=y)Laborumgebung:
Repository klonen
git clone https://github.com/karim4353/CVE-2024-1086-Exploit.git
cd CVE-2024-1086-Exploit
Abhängigkeiten installieren
sudo apt update
sudo apt install build-essential openjdk-11-jdk
# Download libraries or add to 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
C-Exploit bauen
make
Java-Wrapper ausführen
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
Optionen: --check, --run, --dry-run, --payload <path>, ,
Für detaillierte Einrichtung siehe Setup-Guide.
CVE-2024-1086-Exploit/
├── src/
│ ├── main/
│ │ ├── c/
│ │ │ └── exploit.c # 🔐 C exploit template
│ │ ├── java/
│ │ │ └── com/example/cve20241086/
│ │ │ └── ExploitRunner.java # 🔍 Java wrapper
│ │ └── resources/
│ │ └── config.json # 📜 Exploit configuration
│ └── test/
│ ├── c/
│ │ └── test_exploit.c # 🧪 C test cases
│ └── java/
│ └── com/example/cve20241086/
│ └── ExploitRunnerTest.java # 🧪 Java test cases
├── Makefile # 🛠️ Build script
├── README.md # 📝 This file
├── CONTRIBUTING.md # 🤝 Contribution guidelines
├── LICENSE # 📄 MIT license
└── tests/
└── run_tests.sh # 🧪 Test runner script
Testen Sie das Projekt in einer sicheren Laborumgebung:
# Systemverwundbarkeit prüfen
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --check
# Exploit ausführen (nicht funktionsfähig)
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
# Tests ausführen
./tests/run_tests.sh
# Build-Artefakte bereinigen
make clean
Wir begrüßen Beiträge zur Verbesserung dieses Bildungsprojekts! Weitere Informationen finden Sie in den Beitragsrichtlinien zu:
nf_tablesexploit_log.txtKonfigurieren über src/main/resources/config.json:
{
"exploitBinary": "./exploit",
"targetKernel": "5.15",
"payloadPath": "/tmp/payload.sh",
"logLevel": "DEBUG",
"timeoutSeconds": "30"
}
Siehe Konfigurationsleitfaden.
Häufige Probleme:
make clean && make aus.sysctl -w kernel.unprivileged_userns_clone=1 und lsmod | grep nf_tables.json-20230227.jar und commons-cli-1.5.0.jar im Klassenpfad sind.Siehe FAQ oder eröffnen Sie ein Issue.
Lizenziert unter der MIT-Lizenz - siehe LICENSE.
🛡️ Mit ❤️ für die Sicherheitsforschungs-Community erstellt
--config <file>--helpTests ausführen
./tests/run_tests.sh
| Komponente | Minimum | Empfohlen |
|---|
| Kernelversion | 5.14 | 5.15.x < 5.15.148 |
| RAM | 512MB | 1GB+ |
| CPU | 1GHz | 2GHz+ |
| Speicherplatz | 100MB | 500MB+ |
| Java-Version | JDK 11 | JDK 17 |