Derniers Articles
Vous êtes ici : Accueil / Hacking / Firefox et le stockage des identifiants web

Firefox et le stockage des identifiants web


Un petit article afin de vous parler d’un outil qui m’a récemment permis d’effectuer une avancée décisive lors d’un audit interne. Il s’agit de firefox_decrypt.

Vous le savez certainement, mais Firefox et bien d’autres navigateurs proposent une fonctionnalité qui permet de sauvegarder les identifiants (nom utilisateur et mot de passe) des sites sur lesquels l’utilisateur s’authentifie au fil de sa navigation :

Fonctionnalité « Password manager » de Firefox

Lorsqu’un utilisateur clique sur « Enregistrer« , ses identifiants sont enregistrés sur le système par Firefox. Dés lors, la prochaine fois que l’utilisateur se rendra sur la page d’authentification du même site, ses identifiants seront directement saisis dans les champs correspondants et n’aura qu’à cliquer sur « Connexion« .

Bien entendu, le stockage des ces identifiants est effectué de façon chiffré sur le système par Firefoox. Ceux-ci sont stockés dans le fichier « login.json » et la clé permettant de déchiffrer les mots de passe est positionnée dans le fichier « key3.db » :

Chemin et présence des fichiers « logins.json » et « key3.db » dans un profil utilisateur Firefox.

Voici le contenu du fichier « login.json » lorsqu’un Master Password n’est pas paramétré :


Contenu du fichier « logins.json ».

Il est à noter que Firefox propose la mise en place d’un Master Password, c’est à dire d’un mot de passe permettant d’ouvrir le « coffre-fort » de Firefox, mais surtout un mot de passe permettant de chiffrer le coffre-fort avec une clé non stockée sur le disque (cette clé étant le mot de passe).

Sans le paramétrage d’un Master Password, seule la clé générée par Firefox est utilisée, le problème principal étant que cette clé est stockée dans le même répertoire que le coffre-fort qu’elle déchiffre, et possède les mêmes droits d’accès. Si l’on peut accéder au coffre fort, on peut accéder à la clé qui permet de le déchiffrer. C’est précisément ce que fait firefox-decrypt. Ce problème est déjà connu de Firefox, qui en parle sur son site officiel et met d’ailleurs en avant l’utilisation du Master Password.

Dans les faits, le Master Password sert deux fonctions de sécurité :

  • éviter qu’une personne ayant un accés physique à votre poste puisse se logguer sur vos sites préférés en utilisant la saisie automatique Firefox ;
  • éviter que la base contenant les mots de passe ne soit déchiffrée facilement si compromise.

Dans le cas de l’infection d’un poste utilisateur, cet outil peut être utilisé pour retrouver les mots de passe enregistrés dans le navigateur de l’utilisateur en question. Cette information peut bien entendu être très intéressante pour un attaquant.

L’utilisation de firefox_decrypt est relativement simple, on commence par télécharger l’outil depuis Github : https://github.com/Unode/firefox_decrypt

A noter que pour l’exploiter, il faut que Python soit installé sur la machine, aucun soucis pour les machines Linux. Pour les machines Windows, qui disposent rarement de Python installé nativement, il est plus rapidement de télécharger les bons fichiers depuis le poste infecté, puis de les traiter en local sur le poste de l’attaquant.

Voici une démonstration de son utilisation sur une base ne disposant pas de Master Password, celle-ci ayant été récupérée sur un poste Windows. Par défaut, firefox_decrypt va pointer vers le dossier Firefox de l’utilisateur courant, il suffit de spécifier un autre chemin si besoin (cas de l’attaque sur un autre utilisateur ou sur un fichier volé depuis un autre poste) :

  • /home/utilisateur/.mozilla/firefox/XXXX sous Linux ;
  • C:\Users\utilisateur\AppData\Local\Mozilla\Firefox\Profiles\XXX sous Windows.

On voit donc que l’outil nous demande de saisir le Master Password, s’il n’y en a pas, il suffit de saisir « Entrée » :


Utilisation de firefox_decrypt sur un profil Firefox sans Master Password.

Si la base dispose d’un Master Password, il faut le saisir, sinon celle-ci ne pourra être déchiffrée.


Utilisation de firefox_decrypt sur un profil Firefox avec Master Password.

A souligner que le Master Password peut faire l’objet d’une attaque de type brute-force :


Attaque de type brute force sur le Master Password d’un profil Firefox en utilisant firefox_decrypt.

Voici le script bash utilisé pour démontrer cette possibilité d’attaque par brute force. Il faut fournir en premier argument le chemin vers le profil Firefox à attaquer, et en deuxième argument le chemin vers le dictionnaire à utiliser.

#!/bin/bash

# $1 Path to Firefox profile

# $2 Path to dictionnary

while read p; do

    echo $p |python firefox_decrypt.py -n $1 2> /dev/null 1> /dev/null

    if [ $? -eq 0 ]

    then

        echo « [+] Found ! Good password is $p »

        echo $p |python firefox_decrypt.py -n $1

    fi

done <$2

Pour la petite histoire, l’utilisation de cet outil sur un poste utilisateur infectée (un Ubuntu) durant un audit interne m’a permis de trouver des identifiants valables sur le domaine de ma cible, ce qui m’a donné une première porte d’entrée légitime sur le domaine Actve Directory.

Il faut donc être vigilant concernant  l’utilisation de cette fonctionnalité dans un cadre personnel, mais également dans un cadre professionnel, vous pouvez être certains qu’une partie, voire une majorité de vos utilisateurs utilisent le même mot de passe dans le cadre personnel et dans le cadre professionnel, le simple fait qu’ils enregistrent leurs identifiants Facebook dans leur navigateur professionnel peut alors être problématique en cas d’infection.

Comment s’en protéger ?

De façon unitaire, la recommendation est donc d’utiliser un Master Password, bien que celui-ci puisse être brute forcé en cas de compromission des fichiers de profil Firefox, voir cet article pour la mise en place d’un Master Password sous Firefox : Utilisation du master password avec Firefox

Plus généralement, il est possible de gérer les configurations Firefox d’un parc utilisateur grâce aux GPO, il serait donc intéressant de voir si la fonctionnalité d’enregistrement des mots de passe Firefox peut être désactivée par se biai, ou alors de l’utiliser pour forcer la mise en place d’un Master Password, toute précision à ce sujet est bienvenue dans les commentaires.

Egalement, il est intéressant de pousser les utilisateurs à utiliser un coffre-fort prévu à cet effet et réellement sécurisé tel que Keepass : Gestion des mots de passe et sécurité

Sources :

https://www.information-security.fr/firefox-et-le-stockage-des-identifiants-web/

Répondre

Votre adresse email ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

shared on wplocker.com