Navixia a récemment contribué avec succès au projet Metasploit Framework.
Metasploit est un projet (open-source à l’origine) sur la sécurité informatique. Il fournit des informations sur des vulnérabilités, aide à la pénétration de systèmes informatisés et au développement de signatures pour les IDS. Il est dirigé par Rapid7 qui en diffuse aussi une version pro. Vu le nombre de contributeurs potentiels, la barre est placée haut lorsqu’il s’agit d’accepter de nouvelles contributions. C’est pourquoi nous sommes particulièrement heureux que le module « Drupal Views Module Users Enumeration » développé par Navixia ait été intégré au Metasploit Framework.
Vulnérabilité dans Drupal
Dans le cadre d’un audit, nous avons eu à étudier les vulnérabilités connues pour le CMS open source Drupal et son module Views. Au cours de nos recherches, nous sommes tombés sur un article de l’expert en sécurité MadIrish décrivant une vulnérabilité de type « Divulgation d’information ». Cette vulnérabilité, de criticité faible, permet d’obtenir très simplement la liste des utilisateurs enregistrés sur un site Drupal. Dans la plupart des cas, ces comptes utilisateurs correspondent à ceux qui sont utilisés pour publier des informations ou administrer le site web (compte webmaster).
De telles informations peuvent potentiellement permettre à un attaquant de découvrir les mots de passe du CMS. En effet, lors d’une attaque par force brute, il existe a priori deux inconnues : le nom d’utilisateur et le mot de passe. Les recherches de l’attaquant sont la plupart du temps limitées à des noms d’utilisateurs courants (« root » ou « admin »). Mais toute information relative à d’éventuels noms d’utilisateurs est précieuse.
Pour activer la vulnérabilité, il suffit de se rendre sur ?q=admin/views/ajax/autocomplete/user/[LETTER]. On obtient ainsi une liste des noms d’utilisateurs commençant par la lettre [LETTER]. La réponse est limitée à 10 noms d’utilisateurs. Dans la plupart des cas, le simple fait d’itérer [LETTER] sur l’alphabet (26 itérations) permet d’obtenir la liste complète des noms d’utilisateurs. Si le nombre d’utilisateurs est important, l’algorithme est plus complexe (il faut itérer [LETTER] sur plusieurs lettres et trouver la bonne condition d’arrêt).
La contribution de Navixia
Comme il semblait n’exister aucun outil pour explorer cette vulnérabilité, nous avons décidé d’écrire le nôtre pour effectuer nos tests. Mais plutôt que de créer un simple PoC en Python, nous avons préféré profiter de l’occasion pour développer un module Metasploit en langage Ruby et le partager avec d’autres pen-testeurs dans le monde.
Ce module, nommé auxiliary/scanner/http/drupal_views_user_enum dans la nomenclature Metasploit, a été accepté le 6 janvier 2012 et a subit des changements mineurs depuis cette introduction. Il constitue à ce jour l’unique module Metasploit en relation avec Drupal et reste l’un de nos outils de prédilection lors d’un audit sur ce CMS.