Hackfest 2024 - 16-bit Edition

Les extensions KeePass: Un double tranchant pour votre sécurité
10-11, 14:00–14:50 (America/New_York), Track 2 (206a)
Language: Français

KeePass est un gestionnaire de mots de passe et cela signifie qu'il a beaucoup d'intérêt lorsqu'il est question d'exploitation ou de vulnérabilités dans un gestionnaire de mots de passe. Encore une fois, KeePass est sous les projecteurs... Cette fois-ci, il n'est pas question d'une vulnérabilité, mais d'une fonctionnalité, les extensions. Ces extensions vous mettent à risque et je vous le montre avec un exemple concret.

La présentation aborde les sujets suivants,
- Qu'est-ce qu'un gestionnaire de mot de passe?
- Tour rapide de l'outil KeePass
- Explication de la problématique
- Exploitation de celle-ci
- Petite démonstration
- Sensibilisation, Recommandations et Conclusion


Description:

La présentation se divise en 4 portions, certaines moins techniques et d'autres où l'on se met les mains dans le code. On a fait la découverte de cette "attaque" lors de nos tests purple en continu. On regardait la technique Credentials from Password Stores (T1555) et c'est de là que l'idée de tester ce gestionnaire de mots de passe est apparue.

Intro (3 minutes)

  • whoami
  • mise en contexte

Qu'est-ce qu'un gestionnaire de mots de passe ? (3 minutes)

Un gestionnaire de mots de passe est un logiciel ou une application conçue pour stocker de manière sécurisée tous vos mots de passe. Au lieu de tenter de mémoriser des dizaines, voire des centaines de mots de passe complexes pour chacun de vos comptes en ligne, vous les confiez à ce logiciel.

Il y a plusieurs solutions qui existent, en voici une liste non exhaustive,
- 1Password
- Bitwarden
- Dashlane
- KeePass
- NordPass
- LastPass
- etc.

Petit tour rapide de KeePass (3 minutes)

  • interface
  • configurations
  • fonctionnalités
  • extensions
  • base de données locale et non dans le cloud

Les extensions... TELL ME MORE (7 minutess)

  • Les extensions sont Open Source et il n'y a pas de processus de vérifications
  • Extensions = DLL Sideloading sur stéroïdes
  • PLGX, une archive maison pour la compilation des extensions.... encore plus intéressant!
  • Restriction des droits administrateur.... mais pas dans toutes les situations

On regarde une extension "malicieuse" ensemble (7 minutess)

  • Utilisation d'un gabarit C# (plus facile d'accès pour les programmeurs que le C++)
  • Extraction des mots de passe localement

Mais on ne devait pas être administrateur? (7 minutess)

Installation dans Program Files nécessite les droits administrateur pour modifier le contenu. Ce n'est pas vraiment une vulnérabilité si on doit être administrateur... on peut faire bien pire avec les droits administrateur non ? Et si je vous disais qu'on peut exploiter cette fonctionnalité sans les droits administrateur.

  • Qu'est-ce qu'une extension en format PLGX
  • Comment compiler une extension en format PLGX
  • Les avantages d'utiliser PLGX vs DLL
  • Le gros problème que ça engendre....

Démo (7 minutess)

Utilisation d'un KeePass dans Program Files (nécessite les droits admin) avec l'utilisation d'une extension légitime compilée en format PLGX. On exploite cette extension en remplaçant la DLL en cache par notre DLL malicieuse. Lors du prochain démarrage de KeePass, on a réussi à exécuter notre code.

Quelques points à garder en tête (5 minutess)

  • C'est normal que KeePass exécute des DLLs, elles sont des extensions
  • On ne peut pas faire une règle sur le dossier Plugins, car KeePass exécute les DLLs même à la racine.
  • On peut exécuter KeePass portable et il n'y a plus aucun requis d'extension PLGX, car on a "write access" à la racine du dossier
  • KeePass est un exécutable signé, donc si vous voulez faire du DLL Sideloading, ça peut être un outil utilisé au lieu d'utiliser un LOLBIN.

Comment s'en protéger (3 minutess)

  • Limiter l'exécution de processus non signé
  • Vérifier la signature de l'exécutable ainsi que son PATH
  • Mettre une place une configuration KeePass renforcée afin de limiter les fonctionnalités de l'outil, dont utiliser les extensions.

Félix est un opérateur Red Team chez Desjardins et il est passionné d'informatique, de sécurité et de défis. Félix a aussi une chaîne YouTube orientée sur la sécurité, le Homelabing et le réseautage. Ce projet le passionne et il a pour but de partager des connaissances avec les gens qui ont une passion, comme lui, pour l'informatique.