
Extracteur de clés cryptographiques de la mémoire Linux

Propriétés :
Dépendances :
Limitations :
Vous avez peut-être déjà entendu parler ou même utilisé mon projet AES-REX qui fait à peu près la même chose, mais différemment. Alors que AES-REX extrait les clés cryptographiques des registres, CryKeX les extrait de la mémoire volatile (RAM).
Certains travaux ont déjà été publiés concernant la sécurité des clés cryptographiques dans la DRAM. En gros, nous devons trouver quelque chose qui ressemble à une clé (entropique et de longueur spécifique) puis confirmer sa nature en analysant la structure mémoire autour d'elle (types de données C).
L'idée est de vider la mémoire vive d'un processus et d'utiliser ces techniques pour trouver des clés probables, car le mappage mémoire ne change pas. Heureusement, des outils existent à cet effet.
Le script est non seulement capable de s'injecter dans des processus déjà en cours d'exécution, mais aussi d'encapsuler de nouveaux processus, en les lançant séparément puis en s'injectant peu de temps après. Cela le rend capable d'extraire les clés de presque tout processus/binaire du système.
Bien sûr, l'accès à la mémoire est limité par le noyau, ce qui signifie que vous aurez toujours besoin de privilèges pour un processus.
Le chiffrement de disque Linux (LUKS) utilise une technique anti-forensique pour atténuer ce problème, cependant, l'extraction de clés depuis l'ensemble de la mémoire reste possible.
Le navigateur Firefox utilise une gestion mémoire similaire, il semble donc ne pas être affecté.
Il en va de même pour PGP/GPG.
Malheureusement, des solutions comme Ansible sont affectées.
Vous pouvez lire plus de détails sur eForensics.
Installation des dépendances :
sudo apt install gdb aeskeyfind rsakeyfind || echo 'have you heard about source compiling?'
Un exemple interactif pour les clés AES OpenSSL :
openssl aes-128-ecb -nosalt -out testAES.enc
Entrez un mot de passe deux fois, puis du texte, et avant de terminer :
CryKeX.sh openssl
Enfin, appuyez 3 fois sur Ctrl+D et vérifiez le résultat.
Clés RSA OpenSSL :
openssl genrsa -des3 -out testRSA.pem 2048
Lorsque le mot de passe est demandé :
CryKeX.sh openssl
Vérifiez :
openssl rsa -noout -text -in testRSA.pem
Extrayons les clés de SSH :
echo 'Ciphers [email protected]' >> /etc/ssh/sshd_config
ssh user@server
CryKeX.sh ssh
Depuis OpenVPN :
echo 'cipher AES-256-CBC' >> /etc/openvpn/server.conf
openvpn yourConf.ovpn
sudo CryKeX.sh openvpn
TrueCrypt/VeraCrypt est également affecté : Sélectionnez le fichier "veracrypt" dans VeraCrypt, montez avec le mot de passe "pass" et :
sudo CryKeX.sh veracrypt
Navigateurs basés sur Chromium (merci Google) :
CryKeX.sh chromium
CryKeX.sh google-chrome
Bien que Firefox ne soit pas explicitement affecté, Tor Browser Bundle reste susceptible en raison du tunneling :
CryKeX.sh tor
Comme dit, vous pouvez également encapsuler des processus :
apt install libssl-dev
gcc -lcrypto cipher.c -o cipher
CryKeX.sh cipher
wrap
cipher
N'hésitez pas à contribuer et tester d'autres applications.
« La clé de la persistance ouvre toutes les portes fermées par la résistance »
John Di Lemme