macOS Dangerous Entitlements & TCC perms

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Beachten Sie, dass Berechtigungen, die mit com.apple beginnen, nicht für Drittanbieter verfügbar sind, nur Apple kann sie gewähren.

Hoch

com.apple.rootless.install.heritable

Die Berechtigung com.apple.rootless.install.heritable ermöglicht es, SIP zu umgehen. Überprüfen Sie hier für weitere Informationen.

com.apple.rootless.install

Die Berechtigung com.apple.rootless.install ermöglicht es, SIP zu umgehen. Überprüfen Sie dies für weitere Informationen.

com.apple.system-task-ports (früher task_for_pid-allow genannt)

Diese Berechtigung ermöglicht es, den Task-Port für jeden Prozess zu erhalten, außer dem Kernel. Überprüfen Sie dies für weitere Informationen.

com.apple.security.get-task-allow

Diese Berechtigung ermöglicht es anderen Prozessen mit der Berechtigung com.apple.security.cs.debugger, den Task-Port des Prozesses, der vom Binär mit dieser Berechtigung ausgeführt wird, zu erhalten und Code einzuspritzen. Überprüfen Sie dies für weitere 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 auf true abzurufen. Selbst mit der Debugging-Tool-Berechtigung kann ein Debugger jedoch nicht die Task-Ports von Prozessen erhalten, die nicht die Get Task Allow-Berechtigung haben und daher durch die System Integrity Protection geschützt sind. Überprüfen Sie dies für weitere Informationen.

com.apple.security.cs.disable-library-validation

Diese Berechtigung ermöglicht es, Frameworks, Plug-ins oder Bibliotheken zu laden, die weder von Apple signiert sind noch mit derselben Team-ID wie die Hauptausführbare Datei signiert sind, sodass ein Angreifer missbräuchlich eine beliebige Bibliothek laden kann, um Code einzuspritzen. Überprüfen Sie dies für weitere Informationen.

com.apple.private.security.clear-library-validation

Diese Berechtigung ist sehr ähnlich wie com.apple.security.cs.disable-library-validation, aber anstatt die Bibliotheksvalidierung direkt zu deaktivieren, ermöglicht sie dem Prozess, einen csops-Systemaufruf zu tätigen, um sie zu deaktivieren. Überprüfen Sie dies für weitere Informationen.

com.apple.security.cs.allow-dyld-environment-variables

Diese Berechtigung ermöglicht es, DYLD-Umgebungsvariablen zu verwenden, die zum Einspritzen von Bibliotheken und Code verwendet werden könnten. Überprüfen Sie dies für weitere Informationen.

com.apple.private.tcc.manager oder com.apple.rootless.storage.TCC

Laut diesem Blog und diesem Blog erlauben diese Berechtigungen, die TCC-Datenbank zu ändern.

system.install.apple-software und system.install.apple-software.standar-user

Diese Berechtigungen ermöglichen es, Software ohne die Erlaubnis des Benutzers zu installieren, was für eine Privileg-Eskalation hilfreich sein kann.

com.apple.private.security.kext-management

Berechtigung erforderlich, um den Kernel zur Ladung einer Kernelerweiterung aufzufordern.

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 weitere Informationen über den Exploit zum Erhalt von iCloud-Token aus dieser Berechtigung sehen Sie sich den Vortrag an: #OBTS v5.0: "Was passiert auf Ihrem Mac, 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 nach einem Neustart geschützten SSV-Inhalte zu aktualisieren. Wenn Sie wissen, wie es funktioniert, senden Sie 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 nach einem Neustart geschützten SSV-Inhalte zu aktualisieren. Wenn Sie wissen, wie es funktioniert, senden Sie bitte einen PR!

keychain-access-groups

Diese Berechtigung listet die Schlüsselbund-Gruppen auf, auf die die Anwendung zugreifen kann:

<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>

kTCCServiceSystemPolicyAllFiles

Gibt Vollzugriff auf die Festplatte Berechtigungen, eine der höchsten Berechtigungen, die Sie haben können.

kTCCServiceAppleEvents

Ermöglicht der App, Ereignisse an andere Anwendungen zu senden, die häufig für die Automatisierung von Aufgaben verwendet werden. Durch die Kontrolle anderer Apps kann sie die den anderen Apps gewährten Berechtigungen missbrauchen.

Indem sie sie dazu bringt, den Benutzer nach seinem Passwort zu fragen:

osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'

Oder sie dazu bringen, beliebige Aktionen auszuführen.

kTCCServiceEndpointSecurityClient

Erlaubt unter anderem, die TCC-Datenbank der Benutzer zu schreiben.

kTCCServiceSystemPolicySysAdminFiles

Erlaubt es, das Attribut NFSHomeDirectory eines Benutzers zu ändern, das seinen Pfad zum Benutzerordner ändert und somit das Umgehen von TCC ermöglicht.

kTCCServiceSystemPolicyAppBundles

Erlaubt das Ändern von Dateien innerhalb von App-Bundles (innerhalb von app.app), was standardmäßig nicht erlaubt ist.

Es ist möglich zu überprüfen, wer auf diese Berechtigung zugreifen kann unter Systemeinstellungen > Datenschutz & Sicherheit > App-Verwaltung.

kTCCServiceAccessibility

Der Prozess wird in der Lage sein, die macOS-Zugriffsfunktionen missbrauchen, was bedeutet, dass er beispielsweise Tastenanschläge ausführen kann. Er könnte also Zugriff anfordern, um eine App wie Finder zu steuern und den Dialog mit dieser Berechtigung zu genehmigen.

Medium

com.apple.security.cs.allow-jit

Diese Berechtigung ermöglicht es, Speicher zu erstellen, der schreibbar und ausführbar ist, indem die MAP_JIT-Flagge an die mmap()-Systemfunktion übergeben wird. Überprüfen Sie dies für weitere Informationen.

com.apple.security.cs.allow-unsigned-executable-memory

Diese Berechtigung ermöglicht es, C-Code zu überschreiben oder zu patchen, die veraltete NSCreateObjectFileImageFromMemory zu verwenden (die grundsätzlich unsicher ist) oder das DVDPlayback-Framework zu verwenden. Überprüfen Sie dies für weitere Informationen.

Das Hinzufügen dieser Berechtigung macht Ihre App anfällig für häufige Sicherheitslücken in speicherschwachen Programmiersprachen. Überlegen Sie sorgfältig, ob Ihre App diese Ausnahme benötigt.

com.apple.security.cs.disable-executable-page-protection

Diese Berechtigung ermöglicht es, Abschnitte ihrer eigenen ausführbaren Dateien auf der Festplatte zu ändern, um erzwungen zu beenden. Überprüfen Sie dies für weitere Informationen.

Die Berechtigung zur Deaktivierung des Schutzes vor ausführbaren Seiten ist eine extreme Berechtigung, die einen grundlegenden Sicherheitsschutz aus Ihrer App entfernt und es einem Angreifer ermöglicht, den ausführbaren Code Ihrer App ohne Erkennung neu zu schreiben. Verwenden Sie wenn möglich engere Berechtigungen.

com.apple.security.cs.allow-relative-library-loads

TODO

com.apple.private.nullfs_allow

Diese Berechtigung ermöglicht das Einhängen eines nullfs-Dateisystems (standardmäßig verboten). Tool: mount_nullfs.

kTCCServiceAll

Laut diesem Blogbeitrag wird diese TCC-Berechtigung normalerweise in der Form gefunden:

[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll

Erlauben Sie dem Prozess, alle TCC-Berechtigungen anzufordern.

kTCCServicePostEvent

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated