macOS PID Reuse
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wenn ein macOS XPC-Dienst den aufgerufenen Prozess basierend auf der PID und nicht auf dem Audit-Token überprüft, ist er anfällig für einen PID-Wiederverwendungsangriff. Dieser Angriff basiert auf einer Rennbedingung, bei der ein Exploit Nachrichten an den XPC-Dienst sendet, um die Funktionalität auszunutzen, und kurz danach posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)
mit der erlaubten Binärdatei ausführt.
Diese Funktion lässt die erlaubte Binärdatei die PID besitzen, aber die bösartige XPC-Nachricht wäre gerade vorher gesendet worden. Wenn der XPC-Dienst die PID zur Authentifizierung des Absenders verwendet und sie NACH der Ausführung von posix_spawn
überprüft, wird er denken, dass sie von einem autorisierte Prozess kommt.
Wenn du die Funktion shouldAcceptNewConnection
oder eine von ihr aufgerufene Funktion findest, die processIdentifier
aufruft und nicht auditToken
aufruft. Es bedeutet höchstwahrscheinlich, dass sie die PID des Prozesses und nicht das Audit-Token überprüft.
Wie zum Beispiel in diesem Bild (aus der Referenz entnommen):
Überprüfe dieses Beispiel-Exploit (wiederum aus der Referenz entnommen), um die 2 Teile des Exploits zu sehen:
Einer, der mehrere Forks generiert
Jeder Fork wird die Payload an den XPC-Dienst senden, während er posix_spawn
direkt nach dem Senden der Nachricht ausführt.
Damit der Exploit funktioniert, ist es wichtig, export`` ``
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
oder es innerhalb des Exploits zu setzen:
Erste Option mit NSTasks
und Argument, um die Kinder zu starten, um die RC auszunutzen.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)