
Linux-Speicher-Extraktor für kryptografische Schlüssel

Eigenschaften:
Abhängigkeiten:
Einschränkungen:
Sie haben vielleicht schon von meinem Projekt AES-REX gehört oder es sogar verwendet, das im Grunde das Gleiche tut, aber auf andere Weise. Während AES-REX kryptografische Schlüssel aus Registern extrahiert, extrahiert CryKeX sie aus dem flüchtigen Speicher (RAM).
Es wurden bereits Arbeiten veröffentlicht, die sich mit der Sicherheit kryptografischer Schlüssel im DRAM befassen.
Im Grunde müssen wir etwas finden, das wie ein Schlüssel aussieht (entropisch und mit bestimmter Länge), und dann seine Natur bestätigen, indem wir die Speicherstruktur um ihn herum analysieren (C-Datentypen).
Die Idee ist, den live-Speicher eines Prozesses zu sichern und diese Techniken zu verwenden, um wahrscheinliche Schlüssel zu finden, da sich das Speichermapping nicht ändert. Glücklicherweise gibt es Werkzeuge für diesen Zweck.
Das Skript kann nicht nur in bereits laufende Prozesse injizieren, sondern auch neue Prozesse umhüllen, indem es sie separat startet und kurz danach injiziert. Dadurch kann es Schlüssel aus nahezu jedem Prozess/Binärprogramm auf dem System sichern.
Natürlich ist der Zugriff auf den Speicher durch den Kernel eingeschränkt, was bedeutet, dass Sie dennoch Berechtigungen für einen Prozess benötigen.
Die Linux-Festplattenverschlüsselung (LUKS) verwendet eine forensisch-abwehrende Technik, um dieses Problem zu entschärfen, dennoch ist das Extrahieren von Schlüsseln aus einem gesamten Speicher weiterhin möglich.
Der Firefox-Browser verwendet eine ähnliche Speicherverwaltung und scheint daher nicht betroffen zu sein.
Das Gleiche gilt für PGP/GPG.
Leider sind Lösungen wie Ansible betroffen.
Weitere Details finden Sie bei eForensics.
Installieren der Abhängigkeiten:
sudo apt install gdb aeskeyfind rsakeyfind || echo 'have you heard about source compiling?'
Ein interaktives Beispiel für OpenSSL-AES-Schlüssel:
openssl aes-128-ecb -nosalt -out testAES.enc
Geben Sie zweimal ein Passwort ein, dann etwas Text und vor dem Beenden:
CryKeX.sh openssl
Drücken Sie schließlich dreimal Strg+D und überprüfen Sie das Ergebnis.
OpenSSL-RSA-Schlüssel:
openssl genrsa -des3 -out testRSA.pem 2048
Wenn Sie zur Eingabe der Passphrase aufgefordert werden:
CryKeX.sh openssl
Überprüfung:
openssl rsa -noout -text -in testRSA.pem
Extrahieren wir Schlüssel von SSH:
echo 'Ciphers [email protected]' >> /etc/ssh/sshd_config
ssh user@server
CryKeX.sh ssh
Von OpenVPN:
echo 'cipher AES-256-CBC' >> /etc/openvpn/server.conf
openvpn yourConf.ovpn
sudo CryKeX.sh openvpn
TrueCrypt/VeraCrypt ist ebenfalls betroffen: Wählen Sie die Datei "veracrypt" in VeraCrypt aus, mounten Sie sie mit dem Passwort "pass" und:
sudo CryKeX.sh veracrypt
Chromium-basierte Browser (danke Google):
CryKeX.sh chromium
CryKeX.sh google-chrome
Obwohl Firefox nicht explizit betroffen ist, ist das Tor-Browser-Bundle aufgrund des Tunnelings dennoch anfällig:
CryKeX.sh tor
Wie gesagt, Sie können auch Prozesse umhüllen:
apt install libssl-dev
gcc -lcrypto cipher.c -o cipher
CryKeX.sh cipher
wrap
cipher
Zögern Sie nicht, einen Beitrag zu leisten und andere Anwendungen zu testen.
"Der Schlüssel der Beharrlichkeit öffnet alle Türen, die der Widerstand verschlossen hat."
John Di Lemme