Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2023-32428-a-macOS-LPE-via-MallocStackLogging — Proof-of-Concept-Exploit für CVE-2023-32428, eine lokale Privilegieneskalation unter macOS über MallocStackLogging, die Kernel-Level-Speicherkorruption demonstriert, um Root-Zugriff zu erlangen. | Kitploit
Tools/GitHubGitHub/gergelykalman/cve-2023-32428-a-macos-lpe-via-mallocstacklogging
Privilege EscalationSchwachstellenanalyseExploitationBinary-Exploitation
GitHubgergelykalman/cve-2023-32428-a-macos-lpe-via-mallocstacklogging

CVE-2023-32428-a-macOS-LPE-via-MallocStackLogging

Proof-of-Concept-Exploit für CVE-2023-32428, eine lokale Privilegieneskalation unter macOS über MallocStackLogging, die Kernel-Level-Speicherkorruption demonstriert, um Root-Zugriff zu erlangen.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
1941vor 1 JahrNoch nicht geprüft

CVE-2023-32428-a-macOS-LPE-via-MallocStackLogging

CVE-2023-32428 beschreibt einen Logikfehler in MallocStackLogging, der für eine lokale Rechteausweitung (Local Privilege Escalation, LPE) unter macOS ausgenutzt werden kann, um Root-Rechte zu erlangen.

Dieses Repository enthält einen vollständigen Exploit. Er wurde unter macOS 13.3 (22E252) mit Intel-x86_64-Architektur in einer virtuellen Maschine getestet.

  • Analyse
  • Reproduktionsschritte
  • Code

Analyse

Die Schwachstelle ist ein Logikfehler in der Funktion MallocStackLogging, die mit macOS 11 und später eingeführt wurde. Der Fehler besteht darin, dass MallocStackLogging in zwei Modi arbeitet:

  • Modus 1: Die Bibliothek libsystem_malloc hält die Stack-Logging-Daten im Arbeitsspeicher
  • Modus 2: Die Stack-Logging-Daten werden in eine Datei an einem vom Benutzer kontrollierten Ort geschrieben

Die Funktion MallocStackLogging wird über die Umgebungsvariable MallocStackLogging gesteuert. Laut Dokumentation kann diese die folgenden Werte annehmen:

  • 0 - Deaktiviert das Stack-Logging
  • 1 - Aktiviert das Stack-Logging und hält die Daten im Arbeitsspeicher (Modus 1)
  • 2 - Schreibt die Stack-Logging-Daten in einen Dateipfad, der über die Umgebungsvariable MallocStackLoggingFile angegeben wird (Modus 2)
  • 3 - Kombination aus Modus 1 und Modus 2

Einfach ausgedrückt kann der Benutzer über die Umgebungsvariable MallocStackLogging im Modus 2 steuern, in welches Verzeichnis die Protokolle geschrieben werden.

libsystem_malloc ist eine Bibliothek im Besitz von root, liest jedoch die Umgebungsvariable MallocStackLoggingFile. Wenn das Verzeichnis nicht geöffnet werden kann, erstellt die Bibliothek das Verzeichnis mit den Berechtigungen des aktuell laufenden Prozesses (in unserem Fall der benutzereigene Prozess).

Die Exploit-Primitive ist die folgende:

  • Ein unprivilegierter Benutzer kann ein Verzeichnis innerhalb eines beliebigen Verzeichnisses erstellen und den Modus dieses Verzeichnisses auf einen beliebigen Wert setzen (sehr wichtig: Das Verzeichnis muss dem Benutzer gehören oder der Besitzer muss in der Gruppe des Benutzers sein)
  • Mit dem zuvor genannten Logikfehler können wir die Erstellung von Verzeichnissen in jedem vom unprivilegierten Benutzer gewählten Verzeichnis auslösen
  • Wenn wir ein Verzeichnis mit dem Modus 0 innerhalb des Verzeichnisses /etc erstellen, können wir beliebige Dateien lesen und beliebige Dateien schreiben

Angriffsvektor

Der Angriffsvektor ist der folgende:

  1. Setzen Sie die Umgebungsvariable MallocStackLogging auf 2
  2. Setzen Sie die Umgebungsvariable MallocStackLoggingFile auf /etc/foo/bar
  3. Führen Sie eine ausführbare Datei aus, die setuid root ist
  4. Die ausführbare Datei mit setuid root startet den dynamischen Linker (dylib), der libsystem_malloc lädt, welches die Umgebungsvariable MallocStackLoggingFile berücksichtigt
  5. Die Bibliothek versucht, /etc/foo/bar zum Schreiben zu öffnen. Da /etc/foo nicht existiert, versucht sie, die Verzeichnisstruktur mit den Berechtigungen des aktuellen Prozesses (benutzereigener Prozess) zu erstellen

Reproduktionsschritte

  1. Klonen Sie das Repository:
    root@kitploit:~
    git clone https://github.com/gergelykalman/CVE-2023-32428-a-macOS-LPE-via-MallocStackLogging.git
    
  2. Wechseln Sie in das Verzeichnis:
    root@kitploit:~
    cd CVE-2023-32428-a-macOS-LPE-via-MallocStackLogging
    
  3. Kompilieren Sie den Code:
    root@kitploit:~
    make
    
  4. Führen Sie den Exploit aus:
    root@kitploit:~
    ./exploit
    
  5. Nach erfolgreicher Ausnutzung werden die Inhalte der Datei /etc/sudoers angezeigt. Dies zeigt, dass der Exploit beliebige Dateien lesen kann.

Code

  • exploit.c - Haupt-Exploit-Code
  • Makefile - Build-Skript

Danksagung

  • Ian Beer
  • realBrightiup
Tool herunterladen