
Ein Proof of Concept (PoC)-Exploit für CVE-2015-1328
Ein Proof of Concept (PoC) Exploit für CVE-2015-1328, eine Privilegieneskalations-Schwachstelle in der Overlayfs-Implementierung des Linux-Kernels. Diese Schwachstelle erlaubt es lokalen unprivilegierten Benutzern, Root-Zugriff zu erlangen, indem sie fehlerhafte Berechtigungsprüfungen bei Overlayfs-Mount-Operationen in Benutzernamensräumen ausnutzen.
CVE-2015-1328 ist eine kritische Sicherheitslücke, die Linux-Kernel mit Overlayfs-Unterstützung und aktivierten Benutzernamensräumen betrifft. Die Schwachstelle erlaubt es einem unprivilegierten lokalen Benutzer:
unshare(CLONE_NEWUSER) zu erstellen/etc/ld.so.preload zu schreibenDieser PoC demonstriert die Schwachstelle durch:
/etc/ld.so.preloadgetuid() zur Ausführung einer Root-Shellkernel.unprivileged_userns_clone=1)-m32-Flags)Das Projekt enthält ein Makefile zur einfachen Kompilierung:
make
Dies wird kompilieren:
ofs – Die ausführbare Hauptdatei des Exploits (statisch, 32-Bit)ofs-lib.so – Die gemeinsam genutzte Bibliothek für den LD_PRELOAD-Hook (32-Bit)Falls Sie manuell kompilieren möchten:
# Haupt-Exploit kompilieren
gcc -o ofs ofs.c -m32 -static
# Gemeinsam genutzte Bibliothek kompilieren
gcc -m32 -fPIC -shared -o ofs-lib.so ofs-lib.c -ldl -static-libgcc
⚠️ WARNUNG: Dieser Exploit wird Systemdateien verändern und versuchen, Root-Rechte zu erlangen. Nur in kontrollierten Umgebungen mit entsprechender Autorisierung verwenden.
Exploit kompilieren:
make
Exploit ausführen:
./ofs
Im Erfolgsfall wird der Exploit:
/etc/ld.so.preload schreiben/bin/su ausführen, welches die bösartige Bibliothek auslöstunshare(CLONE_NEWUSER)clone() und CLONE_NEWNS/etc/ld.so.preload/tmp/ofs-lib.so/bin/su aus, welches die vorgeladene Bibliothek auslöstgetuid() und startet eine Root-Shellclone() mit einem benutzerdefinierten Stack, um isolierte Mount-Namensräume zu erzeugenofs-lib.so) hookt getuid() über LD_PRELOAD/bin/su getuid() aufruft, wird stattdessen die bösartige Funktion ausgeführt.
├── ofs.c # Hauptcode des Exploits
├── ofs-lib.c # Gemeinsam genutzte Bibliothek zur Privilegieneskalation
├── lib_so.h # Eingebettete Binärbibliotheksdaten
├── Makefile # Build-Konfiguration
└── README.md # Diese Datei
getuid()-Hook, der eine Root-Shell startetUm sich vor dieser Schwachstelle zu schützen:
echo 0 > /proc/sys/kernel/unprivileged_userns_clone
Dieser Code dient ausschließlich zu Bildungs- und Sicherheitsforschungszwecken.
Dieses Projekt wird im Ist-Zustand für Bildungszwecke bereitgestellt. Verantwortungsvoll und in Übereinstimmung mit allen geltenden Gesetzen und Vorschriften nutzen.