
Proof-of-Concept-Skript, das die Umgehung von macOS Gatekeeper-, Notarisierungs- und XProtect-Prüfungen durch Ausnutzung von CVE-2021-30853 demonstriert und die Ausführung beliebiger Shell-Payloads ohne Benutzerabfragen ermöglicht.
Ein einfaches POC-Skript zum Testen von CVE-2021-30657, das MacOS betrifft.
Diese CVE ermöglicht die Umgehung von Gatekeeper-, Notarisierungs- und XProtect-Prüfungen.
Diese Schwachstelle tritt auf, wenn du keinen Interpreter definierst (oder einen Interpreter angibst, der selbst ein Shell-Skript ist) in der ersten Zeile (Shebang) des Hauptskripts deines ausführbaren Bundles. Dies führt dazu, dass xpcproxy posix_spawnp aufruft, um die interpreterlose, skriptbasierte Anwendung zu starten. Dies schlägt zunächst fehl (kein Interpreter → ENOEXEC), aber dann „erholt“ sich posix_spawnp und führt das Skript erneut aus ... diesmal direkt über /bin/sh.
Später fängt das AppleSystemPolicy-kext den Prozessstart ab, um dessen Konformität (signiert, notarisiert usw.) sicherzustellen. Es prüft jedoch /bin/sh ohne gesetzte Variablen, sodass das Skript ohne Standardprüfungen ausgeführt wird.
Basierend auf dem Thread: https://twitter.com/objective_see/status/1473741597368098819
macOS Big Sur < 11.6