macOS Dangerous Entitlements & TCC perms
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Warning
Nota che le autorizzazioni che iniziano con
com.applenon sono disponibili per terze parti, solo Apple può concederle.
Alto
com.apple.rootless.install.heritable
Lâautorizzazione com.apple.rootless.install.heritable consente di bypassare SIP. Controlla questo per maggiori informazioni.
com.apple.rootless.install
Lâautorizzazione com.apple.rootless.install consente di bypassare SIP. Controlla questo per maggiori informazioni.
com.apple.system-task-ports (precedentemente chiamata task_for_pid-allow)
Questa autorizzazione consente di ottenere il port task per qualsiasi processo, tranne il kernel. Controlla questo per maggiori informazioni.
com.apple.security.get-task-allow
Questa autorizzazione consente ad altri processi con lâautorizzazione com.apple.security.cs.debugger di ottenere il port task del processo eseguito dal binario con questa autorizzazione e iniettare codice su di esso. Controlla questo per maggiori informazioni.
com.apple.security.cs.debugger
Le app con lâautorizzazione Debugging Tool possono chiamare task_for_pid() per recuperare un port task valido per app non firmate e di terze parti con lâautorizzazione Get Task Allow impostata su true. Tuttavia, anche con lâautorizzazione dello strumento di debug, un debugger non può ottenere i port task di processi che non hanno lâautorizzazione Get Task Allow, e che sono quindi protetti dalla Protezione dellâIntegritĂ di Sistema. Controlla questo per maggiori informazioni.
com.apple.security.cs.disable-library-validation
Questa autorizzazione consente di caricare framework, plug-in o librerie senza essere nĂŠ firmati da Apple nĂŠ firmati con lo stesso Team ID dellâeseguibile principale, quindi un attaccante potrebbe abusare di un caricamento arbitrario di librerie per iniettare codice. Controlla questo per maggiori informazioni.
com.apple.private.security.clear-library-validation
Questa autorizzazione è molto simile a com.apple.security.cs.disable-library-validation ma invece di disabilitare direttamente la validazione delle librerie, consente al processo di chiamare una syscall csops per disabilitarla.
Controlla questo per maggiori informazioni.
com.apple.security.cs.allow-dyld-environment-variables
Questa autorizzazione consente di utilizzare variabili di ambiente DYLD che potrebbero essere utilizzate per iniettare librerie e codice. Controlla questo per maggiori informazioni.
com.apple.private.tcc.manager o com.apple.rootless.storage.TCC
Secondo questo blog e questo blog, queste autorizzazioni consentono di modificare il database TCC.
system.install.apple-software e system.install.apple-software.standar-user
Queste autorizzazioni consentono di installare software senza chiedere permessi allâutente, il che può essere utile per un privilege escalation.
com.apple.private.security.kext-management
Autorizzazione necessaria per chiedere al kernel di caricare unâestensione del kernel.
com.apple.private.icloud-account-access
Lâautorizzazione com.apple.private.icloud-account-access consente di comunicare con il servizio XPC com.apple.iCloudHelper che fornirĂ token iCloud.
iMovie e Garageband avevano questa autorizzazione.
Per ulteriori informazioni sullâexploit per ottenere token iCloud da quellâautorizzazione controlla il talk: #OBTS v5.0: âWhat Happens on your Mac, Stays on Appleâs iCloud?!â - Wojciech Regula
com.apple.private.tcc.manager.check-by-audit-token
TODO: Non so cosa consenta di fare
com.apple.private.apfs.revert-to-snapshot
TODO: In questo report si menziona che questo potrebbe essere usato per aggiornare i contenuti protetti da SSV dopo un riavvio. Se sai come farlo invia una PR per favore!
com.apple.private.apfs.create-sealed-snapshot
TODO: In questo report si menziona che questo potrebbe essere usato per aggiornare i contenuti protetti da SSV dopo un riavvio. Se sai come farlo invia una PR per favore!
keychain-access-groups
Questa autorizzazione elenca i gruppi keychain a cui lâapplicazione ha accesso:
<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>
kTCCServiceSystemPolicyAllFiles
Fornisce i permessi di Accesso Completo al Disco, uno dei permessi piĂš elevati di TCC che puoi avere.
kTCCServiceAppleEvents
Consente allâapp di inviare eventi ad altre applicazioni comunemente utilizzate per automatizzare compiti. Controllando altre app, può abusare dei permessi concessi a queste altre app.
Come farle chiedere allâutente la propria password:
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"'
O farli eseguire azioni arbitrarie.
kTCCServiceEndpointSecurityClient
Consente, tra le altre autorizzazioni, di scrivere il database TCC degli utenti.
kTCCServiceSystemPolicySysAdminFiles
Consente di cambiare lâattributo NFSHomeDirectory di un utente che cambia il percorso della sua cartella home e quindi consente di bypassare TCC.
kTCCServiceSystemPolicyAppBundles
Consente di modificare file allâinterno dei bundle delle app (allâinterno di app.app), il che è vietato per impostazione predefinita.
.png)
Ă possibile controllare chi ha accesso in Impostazioni di Sistema > Privacy e Sicurezza > Gestione App.
kTCCServiceAccessibility
Il processo sarĂ in grado di abuse delle funzionalitĂ di accessibilitĂ di macOS, il che significa che, ad esempio, sarĂ in grado di premere tasti. Quindi potrebbe richiedere lâaccesso per controllare unâapp come Finder e approvare la finestra di dialogo con questo permesso.
Medio
com.apple.security.cs.allow-jit
Questa autorizzazione consente di creare memoria che è scrivibile ed eseguibile passando il flag MAP_JIT alla funzione di sistema mmap(). Controlla questo per ulteriori informazioni.
com.apple.security.cs.allow-unsigned-executable-memory
Questa autorizzazione consente di sovrascrivere o patchare codice C, utilizzare il deprecato NSCreateObjectFileImageFromMemory (che è fondamentalmente insicuro) o utilizzare il framework DVDPlayback. Controlla questo per ulteriori informazioni.
Caution
Includere questa autorizzazione espone la tua app a vulnerabilitĂ comuni nei linguaggi di codice non sicuro in memoria. Considera attentamente se la tua app ha bisogno di questa eccezione.
com.apple.security.cs.disable-executable-page-protection
Questa autorizzazione consente di modificare sezioni dei propri file eseguibili su disco per forzare lâuscita. Controlla questo per ulteriori informazioni.
Caution
LâAutorizzazione per Disabilitare la Protezione della Memoria Eseguibile è unâautorizzazione estrema che rimuove una protezione fondamentale della sicurezza dalla tua app, rendendo possibile per un attaccante riscrivere il codice eseguibile della tua app senza essere rilevato. Preferisci autorizzazioni piĂš ristrette se possibile.
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Questa autorizzazione consente di montare un file system nullfs (vietato per impostazione predefinita). Strumento: mount_nullfs.
kTCCServiceAll
Secondo questo post del blog, questo permesso TCC si trova solitamente nella forma:
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
Consenti al processo di richiedere tutte le autorizzazioni TCC.
kTCCServicePostEvent
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

