
Clonez et importez les cookies et mots de passe Chromium entre navigateurs avec déchiffrement hors ligne de la clé d'état DPAPI, prenant en charge les bases de données chiffrées AES-256 GCM pour les opérations d'équipe rouge.
Chlonium est une application conçue pour cloner les cookies Chromium.
Depuis Chromium 80 et versions ultérieures, les cookies sont chiffrés à l'aide d'AES-256 GCM, avec une clé d'état qui est stockée dans le fichier Local State. Cette clé d'état est chiffrée à l'aide de DPAPI. Il s'agit d'un changement par rapport aux versions plus anciennes, qui utilisaient DPAPI pour chiffrer chaque élément de cookie dans la base de données de cookies. Cela signifie que si vous possédez la clé d'état, vous serez toujours en mesure de déchiffrer la base de données de cookies hors ligne, sans avoir besoin d'un accès continu aux clés DPAPI.
Cela rend essentiellement les bases de données de cookies « portables », ce qui signifie qu'elles peuvent être transférées d'une machine à une autre, à condition d'avoir extrait la clé d'état. Les cookies eux-mêmes doivent être rechiffrés lors de leur importation, car les clés d'état diffèrent pour chaque profil utilisateur et machine. Cela peut être fait en utilisant le même processus que le déchiffrement, en déchiffrant d'abord la clé d'état du navigateur « cible », puis en rechiffrant chaque élément avec la nouvelle clé.
Le projet est écrit en C# et comporte deux composants distincts. Le premier composant, chlonium.exe est le binaire de collecte. Il déchiffre simplement la clé d'état et l'affiche. Notez cette clé et vous pourrez déchiffrer les cookies à l'avenir en téléchargeant le fichier de base de données Cookies chaque fois que vous aurez besoin de cookies mis à jour. Par défaut, il tentera de déchiffrer la clé d'état de Chrome. Si vous souhaitez extraire la clé d'état pour un autre navigateur (par exemple Edge), vous pouvez spécifier un chemin vers la clé.
Par exemple :
> Chlonium.exe "c:\users\user\AppData\Local\Microsoft\Edge\User Data\Local State"
[+] Statekey = 3Cms3YxFXVyJRUbulYCnxqY2dO/jubDkYBQBoYIvqfc=
Le deuxième composant, ChloniumUI.exe est l'outil « importateur ». Il se charge de déchiffrer un fichier de base de données Cookies donné avec une clé d'état donnée, de rechiffrer les valeurs avec la clé d'état de l'utilisateur actuel, et d'importer les cookies dans le navigateur de votre choix. Vous exécutez ceci sur la machine dans laquelle vous souhaitez importer les cookies.
Pour l'utiliser, exécutez l'exécutable ChloniumUI.exe. Entrez la clé d'état précédemment extraite, choisissez le fichier Cookies que vous souhaitez importer, et sélectionnez le navigateur dans lequel vous souhaitez importer les cookies. Cliquez ensuite sur « Importer les cookies » et les cookies seront importés.
ChloniumUI prend actuellement en charge trois navigateurs basés sur Chromium : Edge, Chrome et Vivaldi. Des navigateurs supplémentaires peuvent être ajoutés dans Browsers.cs. Cela ajoute le bénéfice involontaire de pouvoir importer un fichier de cookies Edge dans Chrome, ou vice versa (par exemple), même si ce n'est probablement pas une bonne idée étant donné que l'agent utilisateur ne correspondra pas.
Remarque importante : Lors de l'importation du fichier de cookies dans votre navigateur, tous les anciens cookies sont effacés ! Une sauvegarde est copiée dans le répertoire courant (avec un horodatage pertinent). Si vous devez restaurer les cookies précédents, copiez simplement le fichier de sauvegarde sur le fichier Cookies.
Des outils comme Mimikatz et SharpChromium ont déjà la capacité d'extraire les cookies de Chrome 80, pourquoi un autre outil ?
Cet outil est spécifiquement conçu pour faciliter l'importation de cookies dans un autre navigateur. Bien que ces outils fassent un excellent travail d'extraction des cookies Chromium (et plus !), je voulais avoir quelque chose qui me permette d'importer facilement dans un autre navigateur. Des plugins de gestion de cookies tiers existent, mais je les ai toujours trouvés fastidieux et sujets à échec. CloniumUI est conçu pour rendre ce processus plus facile en important les cookies directement dans la base de données sqlite de votre navigateur.
Bien que ce projet soit livré avec le collecteur chlonium.exe, qui aide à extraire la clé d'état, ce n'est vraiment qu'un exemple. D'autres outils comme Mimikatz extrairont également la clé d'état pour vous, d'une manière potentiellement plus furtive (en fonction de votre environnement d'exploitation, de la méthode d'exécution, etc.). De plus, SharpDPAPI vous permettra de déchiffrer le fichier de clé d'état Chromium si vous possédez les clés d'état DPAPI, le mot de passe actuel, ou la clé de sauvegarde de domaine - vous permettant d'extraire les cookies à distance via SMB !
Lors d'opérations de Red Teaming, j'ai parfois besoin d'extraire les cookies d'un utilisateur plusieurs fois sur une période prolongée (par exemple quotidiennement/hebdomadairement). Utiliser un assembly .NET, une DLL réflexive ou toute autre technique d'exécution en mémoire pour extraire des cookies individuels du fichier de cookies directement sur le système cible est inutile et expose l'opérateur à un risque accru de détection. Au lieu de cela, vous pouvez simplement extraire la clé d'état une fois, et copier le fichier de base de données Cookies chaque fois que vous avez besoin de cookies frais, sans nécessiter d'exécution supplémentaire.
Voir ici pour une démonstration vidéo.
ChloniumUI prend également en charge l'import et l'export de mots de passe. Pour utiliser cette fonctionnalité, fournissez simplement le chemin de la base de données Login Data au lieu de la base de données Cookies, ainsi que la clé d'état, et sélectionnez le navigateur dans lequel vous souhaitez les importer (pour l'export, cela n'a pas d'importance). Cela vous permet soit d'exporter les mots de passe en texte clair vers un fichier, soit de les importer dans votre navigateur. Comme pour les cookies, vous pouvez importer les mots de passe Chrome dans Edge, les mots de passe Edge dans Vivaldi, etc.
Chlonium prend en charge le déchiffrement hors ligne de la clé d'état, grâce auquel vous pouvez déchiffrer la clé d'état de l'utilisateur hors ligne si vous disposez de tous les fichiers suivants :
C:\Users\<user>\AppData\Local\<browser>\User Data\Local StateC:\Users\<user>\AppData\Roaming\Microsoft\Protect\<SID>\et l'un des éléments suivants :
LsaRetrievePrivateData)Maintenant, fournissez simplement ces valeurs sous l'onglet « Déchiffrement hors ligne de la clé d'état », et Chlonium tentera de déchiffrer la clé d'état chiffrée en déchiffrant d'abord les clés maîtres DPAPI (en utilisant la clé de sauvegarde ou le mot de passe), puis en utilisant ces clés pour déchiffrer la clé d'état. Une fois la clé d'état déchiffrée, elle peut être utilisée dans l'onglet « Importer ou Exporter la base de données » pour récupérer les cookies/mots de passe.
Note d'utilisation : Lors de l'utilisation du mot de passe de l'utilisateur pour déchiffrer la clé maître DPAPI, Chlonium tentera d'abord d'extraire le SID de l'utilisateur à partir du fichier BK-<NETBIOSDOMAINNAME> dans le dossier des clés maîtres DPAPI. Si cela échoue (ou si le fichier n'existe pas), il essaiera d'obtenir le SID à partir du nom du dossier des clés maîtres DPAPI (qui par défaut sera nommé d'après le SID de l'utilisateur). Si vous avez renommé le dossier, ou si vous n'avez pas de copie du fichier BK, vous ne pourrez pas déchiffrer la clé maître en utilisant un mot de passe.