Furto Credenziali Keychain: macOS Keychain Credential Dumping (T1555.001)
La tecnica T1555.001 descrive l'estrazione di credenziali dal Keychain di macOS, il sistema nativo di gestione delle credenziali che custodisce password, chiavi private, certificati, note sicure e token di autenticazione delle applicazioni. Rientra nella tattica TA0006 (Credential Access) e occupa una posizione strategica nella kill chain post-compromise: una volta ottenuto accesso a un host macOS, il Keychain rappresenta un forziere che consente movimenti laterali, escalation verso servizi cloud (iCloud, Google Workspace, VPN aziendali) e persistenza sull'ecosistema Apple della vittima.
Esistono tre tipologie di Keychain: il Login Keychain (predefinito, protetto dalla password di login dell'utente), il System Keychain (dati condivisi a livello di sistema) e il Local Items / iCloud Keychain (sincronizzato con i servizi Apple). I file risiedono in ~/Library/Keychains/, /Library/Keychains/ e /Network/Library/Keychains/. L'accesso avviene tramite l'applicazione grafica Keychain Access o l'utility a riga di comando security.
Il dato più critico è che la password predefinita del Login Keychain coincide con la password di login dell'utente: chi ottiene la password interattiva (phishing, keylogger, dump di memoria) ottiene automaticamente le chiavi del regno. I dati MITRE censiscono 10 famiglie di malware che implementano questa tecnica — tra cui Calisto, Proton, MacMa, LightSpy e BeaverTail — e un cluster APT nordcoreano attivo, Contagious Interview (G1052), che ne fa uso sistematico contro sviluppatori e figure tecniche.
In un esercizio red team su endpoint macOS, la procedura canonica per validare l'esposizione del Keychain parte dall'utility nativa security, disponibile su ogni sistema senza necessità di installazione. Il comando storicamente più noto è:
security dump-keychain -d ~/Library/Keychains/login.keychain-db
Il flag -d richiede il dump anche dei dati sensibili (password in chiaro) e produce un prompt grafico di autorizzazione per ogni item, salvo che l'operatore fornisca la password del Keychain. In scenario post-exploitation con password nota, si può automatizzare l'operazione. Per elencare gli item senza secret: security dump-keychain ~/Library/Keychains/login.keychain-db. Per estrarre una singola password Internet: security find-internet-password -s
Sul fronte offensive tooling, LaZagne (open source, repository GitHub AlessandroZ/LaZagne) include il modulo mac che itera i Keychain e tenta il recupero automatico delle credenziali dei browser, mail client e client VPN. Il comando tipico in lab è sudo python2 laZagne.py all. Il framework post-exploitation Empire (open source, fork mantenuti da BC-Security) implementa il modulo che invoca /usr/bin/security dump-keychain -d come modalità operativa documentata nei dati MITRE.
Un approccio più stealth, adottato da malware come Green Lambert e LightSpy, consiste nell'invocare direttamente le Keychain Services API — funzioni come SecKeychainFindInternetPassword, SecKeychainItemCopyAttributesAndData e SecItemCopyMatching — evitando lo spawn del binario /usr/bin/security che è facilmente monitorabile. In un lab, questo si simula compilando un piccolo eseguibile Objective-C o Swift che linka il framework Security.framework e itera gli item.
Catene d'attacco realistiche prevedono:
- Initial access via phishing (LinkedIn recruiting nel caso Contagious Interview) o falso installer .pkg/.dmg
- Privilege escalation o social engineering per ottenere la password di login (fake prompt osascript -e 'display dialog...')
- Copia offline dei file login.keychain-db verso infrastruttura attacker per cracking con chainbreaker (open source, n0fate/chainbreaker) o hashcat (open source, modalità 23100)
- Esfiltrazione dei secret decifrati come JSON, pattern osservato in LightSpy
Per red team maturo, è utile verificare anche l'accesso al iCloud Keychain e alle credenziali sincronizzate, che ampliano il blast radius verso device iOS della vittima.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo