macOS PID Reuse
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Quando un servizio XPC di macOS controlla il processo chiamato in base al PID e non al token di audit, è vulnerabile a un attacco di riutilizzo del PID. Questo attacco si basa su una condizione di gara in cui un exploit invierà messaggi al servizio XPC abusando della funzionalità e solo dopo eseguirà posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)
con il binary consentito.
Questa funzione farà in modo che il binary consentito possieda il PID, ma il messaggio XPC malevolo sarebbe stato inviato poco prima. Quindi, se il servizio XPC usa il PID per autenticare il mittente e lo controlla DOPO l'esecuzione di posix_spawn
, penserà che provenga da un processo autorizzato.
Se trovi la funzione shouldAcceptNewConnection
o una funzione chiamata da essa che chiama processIdentifier
e non chiama auditToken
. È altamente probabile che stia verificando il PID del processo e non il token di audit.
Come ad esempio in questa immagine (presa dal riferimento):
Controlla questo esempio di exploit (ancora, preso dal riferimento) per vedere le 2 parti dell'exploit:
Una che genera diversi fork
Ogni fork invierà il payload al servizio XPC mentre esegue posix_spawn
subito dopo aver inviato il messaggio.
Per far funzionare l'exploit è importante export`` ``
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
o metterlo all'interno dell'exploit:
Prima opzione utilizzando NSTasks
e argomento per avviare i processi figli per sfruttare il RC
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)