Pentest web : de zéro à administrateur du domaine

Quel pentester n’a pas rêvé de commencer un test d’intrusion web et de finir administrateur du domaine Active Directory de l’entreprise en partant de rien ? Ce scénario se produit de moins en moins mais c’est ce qui nous est arrivé et nous allons vous raconter l’histoire.

Introduction

Dans le cadre d’un test d’intrusion sur une application web, nous avons découvert un ensemble de vulnérabilités permettant à un attaquant qui ne dispose d’aucun accès au préalable, de prendre le contrôle total du parc informatique de l’entreprise.

L’objectif de cet article est de détailler l’enchaînement des vulnérabilités et de démontrer l’impact que peut avoir un attaquant sur une entreprise en partant d’un actif exposé sur internet.

Le test d’intrusion a été réalisé sur une application web qui permet aux utilisateurs d’envoyer des e-mails et SMS.

Pour des raisons évidentes, l’anonymat de l’entreprise est préservé dans cet article.

Énumération d’utilisateurs

Le scénario débute par un formulaire de connexion un peu trop bavard qui retourne des messages différents lorsqu’on soumet un identifiant valide ou pas.

La figure suivante montre le message retourné lorsqu’on soumet un identifiant invalide :

NBS-Authentification-Pentest

Et celle-ci montre le message retourné lorsqu’on fournit un identifiant qui existe sur l’application :

NBS-Authentification-Pentes-mdp

En rejouant les requêtes avec la fonctionnalité Intruder de l’outil Burp Suite, il a été possible de dresser une première liste d’utilisateurs valides qui deviendront de potentielles cibles par la suite.

CSRF (Cross Site Request Forgery)

Une des fonctionnalités principales de l’application était la gestion des comptes utilisateurs (création, suppression, lecture et modifications).

Il existe 3 types d’utilisateurs sur l’application :
Compte : ayant les privilèges d’administration.
Sous-compte : ayant les privilèges basiques.
Utilisateur : pouvant accéder à certaines fonctionnalités de l’application.

Un compte privilégié a la possibilité de créer des sous-comptes ou des utilisateurs. Il n’existe pas de fonctionnalité d’inscription pour les visiteurs.

Pour obtenir un accès à l’application, il faut donc obligatoirement passer par un compte privilégié. La figure suivante montre le formulaire de création d’utilisateurs pour un compte privilégié :

Formulaire-de-creation-utilisateurs

Et voici à quoi ressemble la requête AJAX effectuée derrière le formulaire :

requete-AJAX

Un attaquant peut simplement héberger le formulaire sur son propre site et l’envoyer à un compte privilégié qu’il aura listé au préalable. La figure suivante montre la génération automatique d’un formulaire en utilisant la fonctionnalité CSRF PoC Generator de Burp Suite :

CSRF-PoC-Generator

Lorsque la victime visite le site de l’attaquant, une requête est automatiquement effectuée, à son insu, vers le point de terminaison qui permet de créer un autre compte privilégié sur l’application web de l’entreprise.

Téléversement de fichiers arbitraires

Une des autres fonctionnalités principales de l’application web est la gestion des campagnes de courriels (préparation, envoi et visualisation) et qui permet notamment aux utilisateurs d’importer un modèle personnalisé au format HTML.

La figure suivante montre le formulaire d’import de modèle de courriel :

import-email

En rejouant la requête avec la fonctionnalité Repeater de Burp Suite, nous avons téléversé un script ASP au lieu d’un fichier HTML pour la campagne.

NBS-request

Le script téléversé permet d’exécuter des commandes système sur le serveur. Il ne nous restait plus qu’à confirmer qu’il était bien interprété comme tel par le serveur web

Exécution de code (Webshell)

Grâce à la réponse du serveur web, nous savions exactement où se trouvait notre webshell. La figure suivante montre l’exécution de la commande whoami sur le serveur :

NBS-whoami

A partir de ce moment-là, nous avons informé l’entreprise de l’état d’avancement et nous avons remplacé notre webshell par une version sécurisée, accessible uniquement avec mot de passe.

Le Saint Graal : Administrateur du domaine

Après avoir averti le contact technique de l’entreprise, nous avons obtenu l’autorisation d’approfondir les tests et nous avons décidé d’obtenir un accès distant interactif.

La figure ci-dessous illustre l’accès distant obtenu via une commande powershell qui effectue une connexion TCP vers notre machine d’attaque en écoute sur le port 80 avec l’outil netcat :

NBS-netcat

En vérifiant les groupes auxquels appartient l’utilisateur du domaine XXX\_______iispool, utilisé pour exécuter le service IIS nous avons remarqué que ce dernier était membre des groupes Domain Admins et Enterprise Admins.

NBS-domains

Eh oui, pas d’élévation de privilèges, pas de mouvement latéral, pas d’attaques sur les protocoles Kerberos/NTLM. Droit au but, administrateur du domaine.

Un attaquant peut exfiltrer les données de l’entreprise puis déposer un rançongiciel qui va les chiffrer pour les rendre inaccessibles. Il pourra ensuite demander 2 rançons :

  • Une somme pour ne pas faire fuiter les données exfiltrées.
  • Une autre somme pour déchiffrer les données de l’entreprise et les rendre à nouveau accessibles.

Pour conclure

Bien que de moins en moins probable, ce test d’intrusion a permis de mettre en évidence plusieurs éléments.

Il souligne comment des vulnérabilités, affectant une application web, peuvent être exploitées de manière combinée pour obtenir un premier accès sur les serveurs et le réseau informatique de l’entreprise.

La découverte que le compte de service exécutant le service Web IIS était membre du groupe Domain Administrators démontre les dangers d’une mauvaise gestion des privilèges au sein de l’environnement Active Directory, ce qui peut entraîner une escalade rapide des privilèges et une prise de contrôle complète de l’ensemble du parc informatique de l’entreprise.

Enfin, en prenant le contrôle de l’Active Directory, le test a permis de souligner l’importance de la mise en place des mécanismes de détection et de réponse à incident solides et à jour. En effet, les attaquants peuvent persister et masquer leurs activités pour rester des semaines, mois et parfois des années.

Références :

Vous souhaitez bénéficier d’un test d’intrusion ?

Nos équipes sont disponibles pour vous accompagner.