macOS Dangerous Entitlements & TCC perms
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)
Beachte, dass Berechtigungen, die mit com.apple
beginnen, nicht für Dritte verfügbar sind, nur Apple kann sie gewähren.
com.apple.rootless.install.heritable
Die Berechtigung com.apple.rootless.install.heritable
ermöglicht es, SIP zu umgehen. Siehe dies für mehr Informationen.
com.apple.rootless.install
Die Berechtigung com.apple.rootless.install
ermöglicht es, SIP zu umgehen. Siehe dies für mehr Informationen.
com.apple.system-task-ports
(früher task_for_pid-allow
)Diese Berechtigung ermöglicht es, den Task-Port für jeden Prozess, außer dem Kernel, zu erhalten. Siehe dies für mehr Informationen.
com.apple.security.get-task-allow
Diese Berechtigung erlaubt es anderen Prozessen mit der Berechtigung `com.apple.security.cs.debugger, den Task-Port des Prozesses zu erhalten, der von der Binärdatei mit dieser Berechtigung ausgeführt wird, und Code darauf zu injizieren. Siehe dies für mehr Informationen.
com.apple.security.cs.debugger
Apps mit der Debugging-Tool-Berechtigung können task_for_pid()
aufrufen, um einen gültigen Task-Port für nicht signierte und Drittanbieter-Apps mit der Berechtigung Get Task Allow
, die auf true
gesetzt ist, abzurufen. Allerdings kann ein Debugger, selbst mit der Debugging-Tool-Berechtigung, die Task-Ports von Prozessen nicht abrufen, die nicht die Berechtigung Get Task Allow
haben und daher durch die System Integrity Protection geschützt sind. Siehe dies für mehr Informationen.
com.apple.security.cs.disable-library-validation
Diese Berechtigung ermöglicht es, Frameworks, Plug-ins oder Bibliotheken zu laden, ohne dass sie entweder von Apple signiert sind oder mit derselben Team-ID wie die Hauptanwendung signiert sind, sodass ein Angreifer einige beliebige Bibliotheksladungen missbrauchen könnte, um Code zu injizieren. Siehe dies für mehr Informationen.
com.apple.private.security.clear-library-validation
Diese Berechtigung ist sehr ähnlich zu com.apple.security.cs.disable-library-validation
, aber anstatt die Bibliotheksvalidierung direkt zu deaktivieren, erlaubt sie dem Prozess, einen csops
-Systemaufruf zu tätigen, um sie zu deaktivieren.
Siehe dies für mehr Informationen.
com.apple.security.cs.allow-dyld-environment-variables
Diese Berechtigung ermöglicht es, DYLD-Umgebungsvariablen zu verwenden, die zum Injizieren von Bibliotheken und Code verwendet werden könnten. Siehe dies für mehr Informationen.
com.apple.private.tcc.manager
oder com.apple.rootless.storage
.TCC
Laut diesem Blog und diesem Blog, ermöglichen diese Berechtigungen, die TCC-Datenbank zu modifizieren.
system.install.apple-software
und system.install.apple-software.standar-user
Diese Berechtigungen ermöglichen es, Software zu installieren, ohne den Benutzer um Erlaubnis zu fragen, was für eine Privilegieneskalation hilfreich sein kann.
com.apple.private.security.kext-management
Berechtigung, die benötigt wird, um den Kernel zu bitten, eine Kernel-Erweiterung zu laden.
com.apple.private.icloud-account-access
Mit der Berechtigung com.apple.private.icloud-account-access
ist es möglich, mit dem com.apple.iCloudHelper
XPC-Dienst zu kommunizieren, der iCloud-Token bereitstellt.
iMovie und Garageband hatten diese Berechtigung.
Für mehr Informationen über den Exploit, um iCloud-Token aus dieser Berechtigung zu erhalten, siehe den Vortrag: #OBTS v5.0: "Was auf deinem Mac passiert, bleibt in Apples iCloud?!" - Wojciech Regula
com.apple.private.tcc.manager.check-by-audit-token
TODO: Ich weiß nicht, was dies erlaubt.
com.apple.private.apfs.revert-to-snapshot
TODO: In diesem Bericht wird erwähnt, dass dies verwendet werden könnte, um die SSV-geschützten Inhalte nach einem Neustart zu aktualisieren. Wenn du weißt, wie, sende bitte einen PR!
com.apple.private.apfs.create-sealed-snapshot
TODO: In diesem Bericht wird erwähnt, dass dies verwendet werden könnte, um die SSV-geschützten Inhalte nach einem Neustart zu aktualisieren. Wenn du weißt, wie, sende bitte einen PR!
keychain-access-groups
Diese Berechtigung listet die Keychain-Gruppen auf, auf die die Anwendung Zugriff hat:
kTCCServiceSystemPolicyAllFiles
Gibt Vollzugriff auf die Festplatte-Berechtigungen, eine der höchsten TCC-Berechtigungen, die man haben kann.
kTCCServiceAppleEvents
Erlaubt der App, Ereignisse an andere Anwendungen zu senden, die häufig zum Automatisieren von Aufgaben verwendet werden. Durch die Kontrolle anderer Apps kann es die Berechtigungen missbrauchen, die diesen anderen Apps gewährt wurden.
Wie zum Beispiel, sie dazu zu bringen, den Benutzer nach seinem Passwort zu fragen:
Oder sie dazu bringen, willkürliche Aktionen auszuführen.
kTCCServiceEndpointSecurityClient
Erlaubt unter anderem, die TCC-Datenbank der Benutzer zu schreiben.
kTCCServiceSystemPolicySysAdminFiles
Erlaubt es, das NFSHomeDirectory
-Attribut eines Benutzers zu ändern, was seinen Home-Ordner-Pfad ändert und somit ermöglicht, TCC zu umgehen.
kTCCServiceSystemPolicyAppBundles
Erlaubt das Modifizieren von Dateien innerhalb von App-Bundles (innerhalb von app.app), was standardmäßig nicht erlaubt ist.
Es ist möglich zu überprüfen, wer diesen Zugriff hat in Systemeinstellungen > Datenschutz & Sicherheit > App-Verwaltung.
kTCCServiceAccessibility
Der Prozess wird in der Lage sein, die Zugänglichkeitsfunktionen von macOS auszunutzen, was bedeutet, dass er beispielsweise Tastenanschläge drücken kann. ER könnte also Zugriff anfordern, um eine App wie Finder zu steuern und den Dialog mit dieser Berechtigung zu genehmigen.
com.apple.security.cs.allow-jit
Diese Berechtigung erlaubt es, Speicher zu erstellen, der beschreibbar und ausführbar ist, indem das MAP_JIT
-Flag an die mmap()
-Systemfunktion übergeben wird. Überprüfen Sie dies für weitere Informationen.
com.apple.security.cs.allow-unsigned-executable-memory
Diese Berechtigung erlaubt es, C-Code zu überschreiben oder zu patchen, die lange veraltete NSCreateObjectFileImageFromMemory
(die grundsätzlich unsicher ist) zu verwenden oder das DVDPlayback-Framework zu nutzen. Überprüfen Sie dies für weitere Informationen.
Das Einbeziehen dieser Berechtigung setzt Ihre App gängigen Schwachstellen in speicherunsicheren Programmiersprachen aus. Überlegen Sie sorgfältig, ob Ihre App diese Ausnahme benötigt.
com.apple.security.cs.disable-executable-page-protection
Diese Berechtigung erlaubt es, Abschnitte seiner eigenen ausführbaren Dateien auf der Festplatte zu ändern, um gewaltsam zu beenden. Überprüfen Sie dies für weitere Informationen.
Die Berechtigung zum Deaktivieren des Schutzes für ausführbaren Speicher ist eine extreme Berechtigung, die einen grundlegenden Sicherheitschutz Ihrer App entfernt, wodurch es einem Angreifer möglich wird, den ausführbaren Code Ihrer App unbemerkt umzuschreiben. Bevorzugen Sie engere Berechtigungen, wenn möglich.
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Diese Berechtigung erlaubt es, ein nullfs-Dateisystem zu mounten (standardmäßig verboten). Tool: mount_nullfs.
kTCCServiceAll
Laut diesem Blogbeitrag wird diese TCC-Berechtigung normalerweise in folgender Form gefunden:
Erlaube dem Prozess, nach allen TCC-Berechtigungen zu fragen.
kTCCServicePostEvent
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)