Furto di Chiavi Private: Private Keys (T1552.004)

Le chiavi crittografiche private rappresentano uno degli asset più preziosi in qualsiasi infrastruttura IT: autenticano utenti e servizi, firmano digitalmente codice e certificati, decifrano comunicazioni protette. La tecnica T1552.004 descrive come un avversario, una volta ottenuto accesso a un sistema compromesso, cerchi sistematicamente file contenenti chiavi private — SSH, PGP, certificati X.509, chiavi di firma SAML — per espandere il proprio accesso o impersonare entità legittime.

La tecnica si colloca nella tattica Credential Access (TA0006), la fase della kill chain in cui l'attaccante raccoglie credenziali per muoversi lateralmente e persistere nell'ambiente. L'impatto è significativo: i dati del framework attestano 5 gruppi APT, 11 software, 2 campagne documentate e 4 mitigazioni associati a questa tecnica. Le estensioni cercate sono molteplici — .key, .pgp, .gpg, .ppk, .p12, .pem, .pfx, .cer, .p7b, .asc — e le directory bersaglio spaziano da ~/.ssh su sistemi Unix a C:\Users\<username>\.ssh\ su Windows, fino ai container AD FS e ai key store di Azure AD.

Il pericolo reale è che una singola chiave privata esfiltrata può aprire l'accesso a decine di sistemi, bypassando completamente i meccanismi di autenticazione tradizionali. Quando la chiave è protetta da passphrase, gli avversari ricorrono a keylogging o brute force offline per sbloccarla.


La simulazione di questa tecnica in un laboratorio red team parte da un presupposto semplice: una volta ottenuto un foothold, la ricerca di chiavi private è tra le primissime azioni di post-exploitation. L'obiettivo è dimostrare al cliente quanto velocemente un attaccante possa raccogliere materiale crittografico utilizzabile per lateral movement e impersonation.

Su sistemi Linux, la ricerca può iniziare con un comando find mirato alle estensioni più comuni:

find / -type f ( -name ".pem" -o -name ".key" -o -name ".pgp" -o -name ".gpg" -o -name ".ppk" -o -name ".p12" -o -name ".pfx" ) 2>/dev/null*

Per concentrarsi sulle chiavi SSH, la directory ~/.ssh di ogni utente è il primo bersaglio. Un rapido controllo con cat /home/*/.ssh/id_rsa 2>/dev/null rivela se esistono chiavi non protette da passphrase. Se la chiave è protetta, è possibile estrarre l'hash con ssh2john (parte di John the Ripper, open source) e tentare il cracking offline con john --wordlist= hash_ssh.txt.

Su Windows, Mimikatz (open source) offre il modulo CRYPTO::Extract per interagire con le API crittografiche di Windows e esportare chiavi dal certificate store. La sequenza operativa tipica prevede:

mimikatz # crypto::certificates /export mimikatz # crypto::keys /export

Per un approccio meno invasivo e più orientato all'enumerazione, Seatbelt (open source, repository GhostPack) permette di enumerare rapidamente certificati e chiavi con il comando Seatbelt.exe CertificateChecks. Anche il modulo Empire (open source) con Invoke-SessionGopher consente di estrarre informazioni su chiavi private e sessioni salvate da client come PuTTY, WinSCP e FileZilla.

Per simulare lo scenario Entra ID (Azure AD), AADInternals (open source) è lo strumento di riferimento: il cmdlet PowerShell Export-AADIntADFSSigningCertificate estrae i certificati di firma SAML da un server AD FS compromesso, riproducendo esattamente lo scenario osservato nella campagna SolarWinds Compromise (C0024).

Su dispositivi di rete, il comando da simulare in laboratorio è crypto pki export , che esporta la coppia di chiavi RSA direttamente sulla console. Verificate sempre che il vostro scope di engagement copra esplicitamente i network device prima di eseguire questa operazione.

Un consiglio pratico: durante l'engagement, documentate non solo le chiavi trovate ma anche le permission dei file. Un file id_rsa con permessi 644 è già un finding critico, anche senza tentare di utilizzarlo.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.