Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Il Keychain è il sistema di gestione delle credenziali nativo di macOS: conserva password di account, chiavi private, certificati, dati di pagamento e note sicure in database cifrati. Esistono tre tipologie — Login Keychain (credenziali utente), System Keychain (risorse condivise a livello host) e Local Items Keychain (sincronizzato con iCloud) — ognuna con ambito e permessi diversi.
La tecnica T1555.001 rientra nella tattica Credential Access (TA0006), la fase della kill chain in cui l'avversario mira a sottrarre nomi utente e password per muoversi lateralmente o elevare i privilegi. L'impatto è significativo: un singolo dump del Login Keychain può esporre in un colpo solo credenziali Wi-Fi, token di sessione, certificati client e password applicative, trasformando un accesso iniziale in una compromissione a catena di servizi interni ed esterni.
I numeri confermano l'interesse offensivo: 10 software documentati sfruttano questa tecnica — dal post-exploitation framework alla famiglia malware specializzata in infostealing — insieme a 1 gruppo APT noto. La superficie d'attacco è ampia perché la password di default del Login Keychain coincide con quella di login dell'utente: chiunque ottenga la password di sessione possiede già la chiave per decifrare l'intero vault.
Il Keychain di macOS è un bersaglio ideale durante un engagement red team su endpoint Apple: contiene credenziali di rete, certificati e token applicativi in un singolo database cifrato. La buona notizia per chi simula l'attacco è che macOS mette a disposizione un'utility nativa — security — che non richiede alcun payload aggiuntivo.
Approccio nativo con l'utility security
Il comando più diretto è il dump interattivo del Login Keychain. In un terminale con sessione utente attiva:
security dump-keychain -d ~/Library/Keychains/login.keychain-db
Il flag -d forza la decifratura di ogni elemento, ma macOS presenterà un prompt grafico per ciascuna voce chiedendo la password utente o l'autorizzazione. In un contesto red team dove si è già ottenuta la password dell'utente (ad esempio tramite keylogging o phishing), il prompt non rappresenta un ostacolo reale, ma genera rumore visivo sull'endpoint.
Per cercare una credenziale specifica senza scatenare decine di prompt, è più chirurgico usare:
security find-internet-password -s
Questo restituisce solo la password in chiaro per il servizio indicato, utile per estrarre credenziali mirate (ad esempio un portale VPN aziendale).
Post-exploitation con framework
Empire (open source) offre un modulo dedicato che esegue /usr/bin/security dump-keychain -d sull'agente macOS. Il vantaggio è l'automazione: il risultato viene incapsulato nella comunicazione C2 senza interazione manuale.
LaZagne (open source) è un estrattore multi-piattaforma di credenziali. Su macOS, il modulo Keychain tenta di leggere le voci salvate. Si lancia con:
python3 laZagne.py browsers -oJ
Il flag -oJ produce output JSON, comodo per l'analisi post-engagement.
Simulazione dell'approccio API-based
Diversi malware documentati — tra cui LightSpy e Green Lambert — non invocano l'utility security ma chiamano direttamente le Keychain Services API (SecItemCopyMatching, SecKeychainFindInternetPassword). Per simulare questo vettore in laboratorio, è possibile compilare un piccolo programma Swift o Objective-C che invochi le stesse API. Questo approccio bypassa i log legati all'esecuzione di /usr/bin/security e testa la capacità del SOC di rilevare accessi API diretti al Keychain.
Percorsi da verificare durante l'esercizio:
~/Library/Keychains/ — Login Keychain dell'utente corrente/Library/Keychains/ — System Keychain/Network/Library/Keychains/ — Keychain di rete (raro, ma presente in ambienti enterprise)Ricorda di documentare ogni comando nel report, indicando se il prompt di autorizzazione è stato bypassato grazie a credenziali note o se l'attacco è stato bloccato dalla protezione TCC (Transparency, Consent and Control) di macOS.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo