AES-verschlüsselte Windows Chrome-Cookies entschlüsseln [Python]

Überblick

Chrome unter Windows verwendet AES seit Version 80, um Browser-Cookies zu verschlüsseln.

(Das Cookie des Chrome-Browsers für Linux und MacOS wird hier nicht erwähnt. Im Folgenden bezieht sich "Cookie" auf das Cookie des Chrome-Browsers für Windows.)

Bisher wurde es mit der DPAPI-Windows-API (CryptUnprotectData in crypt32.dll) verschlüsselt, mit der neuen Methode verschlüsselte Cookies können jedoch nicht mit der alten Methode entschlüsselt werden.

Apps, die den Inhalt der Windows Chrome-Cookie-Datei direkt lesen, um sich bei einem Webdienst anzumelden, sind von dieser Änderung betroffen. (Beispiel: Nico Raw Comment Viewer)

Der Überblick über das Verfahren zum Entschlüsseln von AES-verschlüsselten Cookies ist unten dargestellt.

Speicherort der Windows Chrome-Cookies-Datei

Der Standardwert lautet wie folgt (wie zuvor). %userprofile%\appdata\local\google\chrome\user data\default\cookies (Änderungen, wenn Sie Ihr Profil verschieben, Windows neu installieren, Ihr Google-Konto ändern usw.)

Identifizierung von AES-verschlüsselten Cookies

Verschlüsseltes Cookie Der Anfang der Daten ist "0x01 00 00 00" → von DPAPI verschlüsseltes Cookie

Verschlüsseltes Cookie Der Anfang der Daten ist "v10" → AES-verschlüsseltes Cookie

Was Sie zur Entschlüsselung benötigen

Die Entschlüsselung erfordert nicht nur einen Schlüssel, sondern auch einen Wert namens nonce.

Position / Länge der Nonce

Für Nonce werden 12 Bytes nach dem 4. Byte ohne das Präfix 3 Bytes ('v10') vom Anfang jeder verschlüsselten Cookie-Daten unverändert verwendet.

Speicherort von encrypted_key

Standardmäßig wird der Schlüssel verschlüsselt und verschlüsselt und in der unten stehenden Datei "Local State" gespeichert. %userprofile%\appdata\local\google\chrome\user data\local state

Der Inhalt von Local State ist im JSON-Format. Verschlüsselte Schlüsseldaten werden in ["os_crypt"] -> ["encrypted_key"] gespeichert.

aes.png

Entschlüsselung des Schlüssels

  1. Dekodieren Sie den Wert encrypted_key, der mit BASE64 aus JSON (Local State File) extrahiert wurde.
  2. Entfernen Sie die ersten 5 Bytes (Präfix "DPAPI") der decodierten Daten. 3.2 Weitere Entschlüsselung der Daten in 2 mit DPAPI. Bei der Entschlüsselung durch DPAPI sollte CryptUnprotectData von crypt32.dll verwendet werden, was der alten Methode entspricht.

Die Länge des erhaltenen Schlüssels sollte 256 Bit (32 Byte) betragen.

Sie haben jetzt den Schlüssel entschlüsselt, der zum Entschlüsseln des Cookies erforderlich ist.

Entschlüsselung von Cookie-Daten

Der Teil der verschlüsselten Cookie-Daten ohne die ersten 15 Bytes ('v10' + Nonce 12 Bytes) wird durch 256-Bit-AES-GCM unter Verwendung der oben erhaltenen Nonce und des Schlüssels entschlüsselt.

Außerdem werden die letzten 16 Bytes der entschlüsselten Daten entfernt.

Implementierung durch Python

https://github.com/taizan-hokuto/chrome_cookie Ich benutze die Kryptographie-Bibliothek für AES-GCM. Wenn die Kryptografie nicht enthalten ist, führen Sie "pip install cryptography" aus. python 3.7.4 Chrome-Version: Bestätigt für die Arbeit mit 80.0.3987.87 (Official Build) (64-Bit).

Referenziert

browsercookiejar (regen100) https://github.com/regen100/browsercookiejar

AES GCM example in python and go (sumanmukherjee03) https://gist.github.com/sumanmukherjee03/dd16d6c732a1055b6af97daba484809d

A little tool to play with Windows security (gentilkiwi) https://github.com/gentilkiwi/mimikatz

Recommended Posts

AES-verschlüsselte Windows Chrome-Cookies entschlüsseln [Python]
Python unter Windows
Python Windows-Umgebung
Python-Installation (Windows)
Python-Installationsmethode Windows
Python ab Windows 7
Python Basic ② in Windows
Installieren Sie Python unter Windows
Installieren Sie Python (für Windows)
Aktivieren Sie Python virtualenv unter Windows
Python mit VSCode (Windows 10)
Führen Sie Openpose unter Python (Windows) aus.
So installieren Sie Python [Windows]
Führen Sie Python mit PyCharm aus (Windows)
Installieren Sie Watchdog unter Windows + Python 3.3
Installieren Sie Python und Flask (Windows 10)
Installationsverfahren für Python 3.6 [für Windows]
[Python] Beseitigen Sie Chrome Webdriver-Fehler
Windows 10: Installieren der DLIB-Bibliothek für Python
Python + Kivy-Entwicklung unter Windows
Aufbau einer Python-Umgebung (Windows 10 + Emacs)
Sphinx-Autobuild (0.5.2) unter Windows7, Python 3.5.1, Sphinx 1.3.5
Schnellste Python-Installation unter Windows
Erstellen Sie eine Python-Umgebung unter Windows
Erstellen Sie eine Python-Umgebung mit Windows
Erstellen einer Python-Umgebung unter Windows 7
Ich habe Python unter Windows ausgeführt
[Python] [Chainer] [Windows] Chainer unter Windows installieren
Python-Installation in 2 Zeilen @Windows
Verwenden Sie Python unter Windows (PyCharm)
Zeitsynchronisation (Windows) mit Python
Installieren Sie dlib für Python (Windows)