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-2024-44193 — Windows über iTunes hacken – Lokale Privilegieneskalation 0-Day | Kitploit
Tools/GitHubGitHub/mbog14/cve-2024-44193
Privilege EscalationSchwachstellenanalyseExploitationPapers & ForschungLernen & BildungBinary-Exploitation
GitHubmbog14/cve-2024-44193

CVE-2024-44193

Windows über iTunes hacken – Lokale Privilegieneskalation 0-Day

Repository anzeigen
9815vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Windows über iTunes hacken – Lokale Privilegienausweitung 0-Day

Einführung zu CVE-2024–44193

Dies ist ein Write-up über CVE-2024–44193, einen Local Privilege Escalation Exploit in iTunes Version 12.13.2.3.

Es wurde am 12. September 2024 von Apple gepatcht. Link zum Apple Security Advisory: Apple Security Advisory

iTunes Version 12.13.2.3 installiert den Apple Device Discovery Service: C:\Program Files\Common Files\Apple\Mobile Device Support\AppleMobileDeviceService.exe der anfällig für einen Local Privilege Escalation Exploit ist.

TL;DR

Aus Respekt und Verständnis für diejenigen, die sich nicht für ein weiteres schlecht geschriebenes und wahrscheinlich zu langes Write-up interessieren, hier die Kurzfassung:

Die Schwachstelle wird durch schlechtes Management der Benutzerberechtigungen im Pfad C:\ProgramData\Apple\* ermöglicht. Dies erlaubt Mitgliedern der lokalen Gruppe 'Benutzer', beliebige Dateien in diesem Pfad zu schreiben. Wenn der Dienst AppleMobileDeviceService.exe neu gestartet wird – was von einem unprivilegierten Benutzer ausgelöst werden kann – kann eine beliebige Ordner-/Dateilöschungs-Primitive aktiviert werden, um eine beliebige Codeausführung auf dem System mit SYSTEM-Berechtigungen zu erlangen.

Werkzeuge:

Warnung! Es folgen mittelmäßige Werkzeugerklärungen.

Überspringen Sie diesen Abschnitt, wenn Sie mit den Werkzeugen bereits vertraut sind.

  • Oplock

SetOpLock

Das Oplock-Tool ist ein Werkzeug, um einen 'Opportunistic Lock' in Windows zu verwenden. Das Tool erlaubt es uns, einen Prozess 'anzuhalten', indem es eine Datei sperrt, bis bestimmte Anforderungen erfüllt sind. Es kann jedoch auch für böswillige Zwecke verwendet werden, um einen Prozess anzuhalten, um genügend Zeit für die Ausführung unserer Exploit-Payload zu gewinnen.

  • FolderContentsDeleteToFolderDelete

FilesystemEoPs

Das FolderContentsDeleteToFolderDelete-Tool funktioniert, indem es automatisch einen Ordner mit einer Datei darin erstellt. Anschließend wird ein Oplock auf die Datei gesetzt, um den Prozess anzuhalten. Wenn der Prozess angehalten ist, wird die Datei aus dem Ordner verschoben. Der Ordner wird dann gelöscht und als NTFS-Junction zu einem Zielort neu erstellt. Wenn der Oplock aufgehoben wird und der Prozess fortgesetzt wird, folgt die Datei-/Ordnerlöschung der neu erstellten NTFS-Junction zum Zielort und löscht diese Datei, bevor die Ausführung fortgesetzt wird.

  • FolderOrFileDeleteToSystem

FilesystemEoPs

Dieses Tool wird wahrscheinlich am besten von der Zero Day Initiative erklärt, daher hier ein Link zu einer Erklärung direkt von ihnen:

Abusing Arbitrary File Deletes to Escalate Privileges and other Great Tricks

Der eigentliche Write-up

Einführung in den anfälligen Dienst AppleMobileDeviceService.exe

Sobald iTunes installiert ist, wird auch ein Dienst installiert: AppleMobileDeviceService.exe, der mit SYSTEM-Berechtigungen läuft. Als ich diesen Dienst mit Windows Sysinternals Process Monitor (Procmon) untersuchte, bemerkte ich sofort ein besorgniserregendes Verhalten.

Der Dienst wird rekursiv alle Dateien im Pfad C:\ProgramData\Apple\Lockdown\* durchgehen und alle Ordner und Dateien löschen, die dort nicht hingehören.

Für lokale Tests habe ich ProcessHacker2 verwendet, um den Dienst zwangsweise neu zu starten und das Programmverhalten zu überprüfen. Das beobachtete Verhalten war, dass der als SYSTEM laufende Dienst das Verzeichnis und alle Unterverzeichnisse darin abfragt und dann den CreateFile-Vorgang mit aktivierter Option Delete On Close ausführt, was bedeutet, dass der SYSTEM-Dienst den Pfad C:\ProgramData\Apple\Lockdown\* abfragt und rekursiv die Unterordner und -dateien in diesem Verzeichnis abfragt und löscht.

Alt text

Problematische Benutzerberechtigungen im Pfad: C:\ProgramData\Apple\*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe kann verwendet werden, um Zugriffsrechte auf bestimmte Ordner zu überprüfen. Mitglieder der lokalen Gruppe 'Benutzer' haben Schreibberechtigungen im Ordner C:\ProgramData\Apple\Lockdown\, was es niedrig privilegierten Benutzern ermöglicht, beliebige Dateien innerhalb des Ordners zu schreiben.

Alt text

Beliebige Datei-/Ordnerlöschungs-Primitive

Da wir beliebige Dateien im Lockdown-Pfad schreiben können und der SYSTEM-Prozess sie beim Neustart des Dienstes löscht, war es möglich, eine beliebige Datei-/Ordnerlöschungs-Primitive zu erstellen. Um dies zu veranschaulichen, erstelle ich zwei Unterordner innerhalb des Lockdown-Ordners. Unterordner a und Unterordner b innerhalb von Unterordner a. Das sieht dann so aus: C:\ProgramData\Apple\Lockdown\a\b

Im Unterordner a befindet sich eine Textdatei namens aa.txt und im Unterordner b eine Textdatei namens bb.txt

C:\ProgramData\Apple\Lockdown\a\aa.txt

C:\ProgramData\Apple\Lockdown\a\b\bb.txt

Alt text

Wie im obigen Screenshot zu sehen ist, wird der 'CreateFile'-Vorgang mit der Option 'Delete On Close' auf aa.txt ausgeführt, wodurch es gelöscht wird.

Wenn der SYSTEM-Prozess den Vorgang CreateFile auf aa.txt und bb.txt ausführt, und zwar mit der Option Delete On Close auf die Dateien, wird der SYSTEM-Prozess AppleMobileDeviceService.exe die Dateien löschen. Nun ist es uns möglich, beliebige Dateien im Lockdown-Ordner zu erstellen und zu löschen, was uns zum nächsten netten Trick führt.

NTFS-Junctions

In Windows ist es möglich, NTFS-Junctions zu verwenden, um einen Ordner an einen anderen Ort umzuleiten. In gewisser Weise ähnelt dies Symlinks unter Linux. Um dies zu veranschaulichen, ist es möglich, eine NTFS-Junction (Symlink) innerhalb des Ordners C:\ProgramData\Apple\Lockdown zu erstellen, die auf einen Ordner auf dem Desktop verweist. Sie können dies selbst mit PowerShell erreichen: New-Item -Type Junction -Path whatever -Target "C:\Users\user\Desktop\AAyes", oder einfach das Toolset von ZDI verwenden:

FilesystemEoPs

Führen Sie den folgenden Befehl aus, um eine NTFS-Junction innerhalb des Lockdown-Ordners auf 'Target' auf dem Desktop zu verweisen.

root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target "C:\Users\user\Desktop\AAyes" /initial "C:\ProgramData\Apple\Lockdown"

Wenn der Dienst neu gestartet wird, wird die neu erstellte NTFS-Junction auf AAyes auf dem Desktop zeigen. Da der Dienst den CreateFile-Vorgang mit der Option Delete On Close als SYSTEM ausführt, wird die Datei gelöscht. Da der Vorgang mit SYSTEM-Berechtigungen ausgeführt wird, haben wir eine beliebige Ordner- oder Dateilöschungs-Primitive, was bedeutet, dass wir Codeausführung auf dem Host als SYSTEM erlangen können.

Alt text

HINWEIS:

Es war notwendig, bestimmte Quellcode-Änderungen im FolderContentsDeleteToFolderDelete-Projekt aufgrund von Dateinamen-/Ordnernamen-Einschränkungen vorzunehmen. Die Dateinamen/Ordnernamen mussten sehr kurz sein, damit die Löschung stattfand. Der Grund dafür ist unbekannt und wurde nicht untersucht, da kurze Namen das Problem zuverlässig lösten.

Quellcode-Änderungen in FolderContentsDeleteToFolderDelete:

root@kitploit:~
const wchar_t folder2path[] = L"C:\\d";
const wchar_t exploitFileName[] = L"e.txt";

// It was required to shorten the two consstants: “folder2path” and “exploitFileName”
// They where changed to: L"C:\\d" and L"e.txt" because it seemed that file and folder name length had a meaningful impact on exploit functionality.

[...]

// We also needed to edit the “folder1path” value to L”c” in order to shorten it.
folder1path += L"c";

Exploitationsthese

Da der Dienst rekursiv allen Junctions (Symlinks) folgt, war die These, dass es möglich sein würde, mit dem anfälligen Apple-Dienst, der der NTFS-Junction folgt, beliebige Dateien auf dem System als SYSTEM zu löschen. Da der anfällige Dienst bequemerweise unprivilegierten Benutzern erlaubt, den Dienst mit dem Trick (Apps -> Installierte Apps -> Apple Mobile Device Support -> Ändern -> Reparieren) über die Windows-GUI neu zu starten, ist es möglich, den Exploit nach Belieben auszulösen. Sobald der Dienst neu gestartet ist, folgt er der NTFS-Junction und das festgestellte Programmverhalten bestimmt, dass der Dienst die Dateien oder Ordner löscht, auf die der Benutzer zeigt. Mit anderen Worten, der Benutzer entscheidet, welche Dateien oder Ordner der Dienst löscht. Da er als SYSTEM läuft, können wir fast jede Datei auf dem System löschen (nicht Dateien, die TrustedInstaller-Berechtigungen erfordern).

Das bedeutet, dass wir sorgfältig eine Kette von Ereignissen erstellen können, die Folgendes bewirkt:

  1. Oplock vorbereiten, um den Prozess zu einem günstigen Zeitpunkt anzuhalten, damit wir Exploitation-Schritte vorbereiten können
  2. Dienst neu starten, Oplock wird ausgelöst und der Prozess wird angehalten
  3. Unseren MSI-Rollback-Trick mit FolderOrFileDeleteToSystem.exe vorbereiten
  4. Unsere NTFS-Junction vorbereiten, um die Dateilöschungs-Primitive auf Config.MSI zu verweisen, die durch den MSI-Rollback-Trick-Schritt mit FolderContentsDeleteToFolderDelete.exe vorbereitet wurde
  5. Oplock freigeben

Proof of Concept

Der Proof of Concept besteht aus 5 Schritten.

  1. Oplock auf C:\ProgramData\Apple\Lockdown\ setzen
root@kitploit:~
.\SetOpLock.exe C:\ProgramData\Apple\Lockdown\
Alt text
  1. Dienstneustart auslösen  Apps -> Installierte Apps -> Apple Mobile Device Support -> Ändern -> Reparieren

  2. MSI-Rollback-Trick vorbereiten

root@kitploit:~
.\FolderOrFileDeleteToSystem.exe
  1. Windows-Junction (Symlink) vorbereiten, um die beliebige Ordner-/Dateilöschungs-Primitive des Dienstes auf den MSI-Installer zu verweisen
root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target 'C:\Config.Msi' /initial "C:\ProgramData\Apple\Lockdown"
  1. Oplock freigeben

Wenn der Oplock in Schritt fünf freigegeben wird, überwachen wir den FolderContentsDeleteToFolderDelete-Prozess, um zu überprüfen, ob der NTFS-Junction gefolgt wurde und dass Config.MSI im C:-Verzeichnis korrekt gelöscht wurde. Dann überwachen wir den FolderOrFileDeletionToSystem.exe-Prozess, um zu überprüfen, ob wir die Race Condition gewinnen und dass der 'bösartige' Config.MSI-Ordner mit dem modifizierten Rollback-Skript geschrieben wird. Wenn alles richtig läuft, können wir STRG+ALT+ENTF drücken, das Eingabehilfen-Menü in der unteren rechten Ecke öffnen und die Bildschirmtastatur öffnen. Da wir die HID.DLL in C:\Program Files\Common Files\microsoft shared\ink\HID.DLL mit dem bösartigen Rollback-Skript überschrieben haben, erscheint eine CMD-Shell als SYSTEM, was unseren Exploit abschließt. Alt text

Ausführen und Überwachen von FolderContentsDeleteToFolderDelete.exe

Alt text

Ausführen und Überwachen von FolderOrFileDeleteToSystem.exe

Alt text

Eine SYSTEM-Shell öffnen

Tool herunterladen