macOS Authorizations DB & Authd
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.
Athorizarions DB
Il database situato in /var/db/auth.db è un database utilizzato per memorizzare i permessi per eseguire operazioni sensibili. Queste operazioni vengono eseguite completamente nello spazio utente e sono solitamente utilizzate dai servizi XPC che devono verificare se il client chiamante è autorizzato a eseguire determinate azioni controllando questo database.
Inizialmente, questo database viene creato dal contenuto di /System/Library/Security/authorization.plist. Successivamente, alcuni servizi potrebbero aggiungere o modificare questo database per aggiungere altri permessi.
Le regole sono memorizzate nella tabella rules allâinterno del database e contengono le seguenti colonne:
- id: Un identificatore unico per ogni regola, automaticamente incrementato e che funge da chiave primaria.
- name: Il nome unico della regola utilizzato per identificarla e fare riferimento ad essa allâinterno del sistema di autorizzazione.
- type: Specifica il tipo di regola, limitato ai valori 1 o 2 per definire la sua logica di autorizzazione.
- class: Categorizza la regola in una classe specifica, assicurandosi che sia un intero positivo.
- âallowâ per consentire, âdenyâ per negare, âuserâ se la proprietĂ del gruppo indica un gruppo di cui lâappartenenza consente lâaccesso, âruleâ indica in un array una regola da soddisfare, âevaluate-mechanismsâ seguito da un array
mechanismsche sono o builtins o un nome di un bundle allâinterno di/System/Library/CoreServices/SecurityAgentPlugins/o /Library/Security//SecurityAgentPlugins - group: Indica il gruppo utente associato alla regola per lâautorizzazione basata su gruppi.
- kofn: Rappresenta il parametro âk-of-nâ, determinando quanti subregole devono essere soddisfatte su un numero totale.
- timeout: Definisce la durata in secondi prima che lâautorizzazione concessa dalla regola scada.
- flags: Contiene vari flag che modificano il comportamento e le caratteristiche della regola.
- tries: Limita il numero di tentativi di autorizzazione consentiti per migliorare la sicurezza.
- version: Tiene traccia della versione della regola per il controllo delle versioni e gli aggiornamenti.
- created: Registra il timestamp quando la regola è stata creata per scopi di audit.
- modified: Memorizza il timestamp dellâultima modifica apportata alla regola.
- hash: Contiene un valore hash della regola per garantire la sua integritĂ e rilevare manomissioni.
- identifier: Fornisce un identificatore stringa unico, come un UUID, per riferimenti esterni alla regola.
- requirement: Contiene dati serializzati che definiscono i requisiti specifici di autorizzazione e i meccanismi della regola.
- comment: Offre una descrizione o un commento leggibile dallâuomo sulla regola per documentazione e chiarezza.
Example
# List by name and comments
sudo sqlite3 /var/db/auth.db "select name, comment from rules"
# Get rules for com.apple.tcc.util.admin
security authorizationdb read com.apple.tcc.util.admin
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>class</key>
<string>rule</string>
<key>comment</key>
<string>For modification of TCC settings.</string>
<key>created</key>
<real>701369782.01043606</real>
<key>modified</key>
<real>701369782.01043606</real>
<key>rule</key>
<array>
<string>authenticate-admin-nonshared</string>
</array>
<key>version</key>
<integer>0</integer>
</dict>
</plist>
Inoltre, in https://www.dssw.co.uk/reference/authorization-rights/authenticate-admin-nonshared/ è possibile vedere il significato di authenticate-admin-nonshared:
{
"allow-root": "false",
"authenticate-user": "true",
"class": "user",
"comment": "Authenticate as an administrator.",
"group": "admin",
"session-owner": "false",
"shared": "false",
"timeout": "30",
"tries": "10000",
"version": "1"
}
Authd
Ă un demone che riceverĂ richieste per autorizzare i client a eseguire azioni sensibili. Funziona come un servizio XPC definito allâinterno della cartella XPCServices/ e utilizza per scrivere i suoi log in /var/log/authd.log.
Inoltre, utilizzando lo strumento di sicurezza, è possibile testare molte API di Security.framework. Ad esempio, AuthorizationExecuteWithPrivileges eseguendo: security execute-with-privileges /bin/ls
Questo fork e exec /usr/libexec/security_authtrampoline /bin/ls come root, che chiederĂ permessi in un prompt per eseguire ls come root:
.png)
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

