Quel pentester n’a jamais rêvé de commencer un test d’intrusion web, pour finir par obtenir les privilèges administrateurs du domaine Active Directory de l’entreprise en partant de rien ? Bien que ce scénario soit devenu plus rare, nous avons eu l’opportunité de vivre cette expérience, comme le démontre le cas suivant.
Lors d’un test d’intrusion effectué sur une application web SaaS développée par un éditeur de logiciels, permettant l’envoi d’e-mails et de SMS par les utilisateurs, nous avons identifié une série de vulnérabilités qui ont permis à notre équipe, sans aucun accès préalable de prendre le contrôle total du parc informatique de l’entreprise*. Après les ajustements effectués par les développeurs et avant le déploiement de l’application,
L’objectif est de détailler le processus d’exploitation des vulnérabilités et de mettre en lumière la valeur de l’impact qu’un attaquant pourrait avoir sur une entreprise à partir d’une solution accessible sur Internet.
*Pour des raisons évidentes, nous préservons l’anonymat de l’entreprise concernée dans cet audit.
Exploitation du formulaire de connexion et gestion des failles
Le processus d’audit commence par une phase de reconnaissance et d’identification. Un formulaire de connexion est visible dès le début, affichant des messages différents selon la validité de l’identifiant soumis.
- Lorsqu’une opération échoue : « Une erreur s’est produite durant l’opération. »
- Lorsque le login ou le mot de passe est incorrect : « Votre login ou mot de passe est incorrect. »
Les pentesters ont utilisé la fonctionnalité Intruder de l’outil Burp Suite pour rejouer les requêtes, dans le cadre de lagestion de l’authentification. Une première liste d’utilisateurs valides a été établie, parmi lesquels certains deviendront des cibles potentielles.
Web application Pentest: CSRF (Cross Site Request Forgery)
Une des principales fonctionnalités de l’application Web SaaS est la gestion des comptes utilisateurs, incluant la création, la suppression, la lecture et la modification. L’application distingue trois types d’utilisateurs :
- Compte : privilèges d’administration.
- Sous-compte : privilèges basiques.
- Utilisateur : accès à certaines fonctionnalités de l’application.
Un compte privilégié a la capacité de créer des sous-comptes ou des utilisateurs. Il n’y a pas de fonctionnalité d’inscription pour les visiteurs. Pour accéder à l’application, il est donc impératif de passer par un compte administrateur privilégié.
Requête AJAX effectuée derrière le formulaire :
Un attaquant peut héberger le formulaire sur son propre site en ligne, et l’envoyer à un compte privilégié qu’il aurait repéré au préalable. Lorsque la victime visite le site de l’attaquant, une requête est automatiquement déclenchée à son insu, vers le point de terminaison permettant la création d’un autre compte privilégié sur l’application web de l’entreprise, exposant ainsi les failles de sécurité.
Formulaire automatique avec la fonctionnalité CSRF PoC Generator de Burp Suite :
Outil pentest web : Téléversement de fichiers arbitraires
Une autre fonctionnalité importante de la plateforme web concerne la gestion des campagnes d’e-mails, y compris la préparation, l’envoi et la visualisation, permettant aux utilisateurs d’importer des modèles personnalisés au format HTML. Les pentesters ont utilisé la fonctionnalité Repeater de l’outil Burp Suite pour répéter la requête et ont téléversé un script ASP à la place d’un fichier HTML pour la campagne. Ce script téléversé permet l’exécution de commandes système sur le serveur. Il nous restait alors à vérifier que le serveur web l’interprétait correctement.
Pentest web server : Exécution de code (Webshell)
Grâce au rapport du serveur web, nous savions exactement où se trouvait notre webshell.
La capture d’écran suivante montre l’exécution de la commande whoami sur le serveur :
À partir de ce point d’entrée, 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 un mot de passe.
Test d’intrusion : Le saint Graal – Devenir administrateur du domaine
Après avoir informé le contact technique de l’entreprise, nous avons reçu l’autorisation de procéder à des tests d’audit plus approfondis et nous avons décidé d’établir un accès distant interactif.
Cet accès distant a été obtenu en utilisant une commande PowerShell qui établit une connexion TCP vers notre machine d’attaque écoutant sur le port 80 à l’aide de l’outil NETCAT.
En examinant la capture d’écran, avec les différents groupes auxquels appartient l’utilisateur du domaine XXX_______iispool, utilisé pour exécuter le service IIS, nous avons observé qu’il était affilié aux groupes Domain Admins et Enterprise Admins.
En effet, sans avoir besoin d’augmenter ses privilèges, sans mouvement latéral ou d’attaques sur les protocoles Kerberos/NTLM, l’attaquant peut directement devenir administrateur du domaine.
En nous mettant dans la peau d’un attaquant, nous pouvons constater que celui-ci peut récupérer les données de l’entreprise, puis déployer un rançongiciel pour les chiffrer, et les rendre inaccessibles. Ensuite, il pourrait demander deux rançons :
- Une première somme pour éviter la divulgation des bases de données exfiltrées.
- Une seconde somme pour déchiffrer et rendre à nouveau accessibles les bases de données de l’entreprise.
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.
Pentesting : Résultat de l’audit web
Nos auditeurs ont mis en place ce pentest web par étapes de manière à comprendre comment les failles de sécurité dans une application web peuvent être combinées pour accéder aux serveurs, aux systèmes d’information, ainsi qu’aux adresses IP de l’entreprise. La découverte du compte de service IIS dans le groupe Domain Administrators souligne les risques liés à une mauvaise gestion des privilèges dans l’Active Directory. En prenant le contrôle de l’Active Directory, ce test met en évidence l’importance des mécanismes de détection et de réponse aux incidents constamment mis à jour, car les attaquants peuvent dissimuler leurs activités pendant de longues périodes.
Références :
- OWASP – WSTG (Web Security Testing Guide) : https://owasp.org/www-project-web-security-testing-guide/latest/
- CERT-FR – AD Checklist : https://www.cert.ssi.gouv.fr/uploads/ad_checklist.html
Qu’est-ce qu’un pentest web ?
Un pentest web, désigne une évaluation spécialisée de la sécurité d’un site web ou d’une application, effectuée par un spécialiste appelé pentesteur. Ce processus consiste à simuler des attaques réelles afin d’identifier les potentielles vulnérabilités exploitées par des cybercriminels. Les pentesteurs emploient différentes techniques et outils pour examiner et tester la robustesse des défenses de sécurité.
Les périmètres de pentest applicatif englobent plusieurs domaines spécifiques :
- Le pentest d’un site internet, vise à identifier les faiblesses potentielles au sein des pages web accessibles au public ou au sein d’un réseau interne.
- Les logiciels SaaS (Software as a Service), un pentest est réalisé pour évaluer la sécurité des applications hébergées dans le cloud et accessibles via un navigateur web.
- Les tests sur les clients lourds (desktop) se concentrent sur les applications installées localement sur les ordinateurs des utilisateurs, évaluant les interactions avec le réseau et les protocoles de communication.
- Les pentests mobiles sont dédiés à la sécurité des applications iOS et Android, analysant les fonctionnalités natives et les interactions avec les serveurs backend pour détecter les risques liés à l’utilisation sur des appareils mobiles.
Ces différents périmètres couvrent un large éventail de scénarios et d’environnements afin de garantir la sécurité globale des applications et des systèmes informatiques.
Découvrez comment renforcer votre sécurité avec l’OWASP Top 10
L’Open Web Application Security Project (L’OWASP) Top 10 est un point de référence, dédié à renforcer la fiabilité des applications et des API pour les organisations. OWASP propose gratuitement des ressources telles que des outils et normes de sécurité, des articles de recherche avancée, des contrôles de sécurité standard et des composants, des livres complets sur des tests et développement de sécurité des applications, et la révision de code sécurisé, ainsi que des présentations et vidéos, des Cheat Sheets couvrant divers sujets. L’approche préconisée par l’OWASP aborde la sécurité des applications comme un défi impliquant un aspect humain, des processus et des technologies. Cette approche intégrée vise à améliorer la sécurité de manière efficace en intégrant ces trois domaines.
Voici quelques-unes des vulnérabilités du Top 10 OWASP que nous prenons en compte lors de nos tests et audits de sécurité :
- Injection SQL : Une attaque par injection SQL peut permettre à un pirate d’exécuter des commandes SQL non autorisées, compromettant ainsi la base de données.
- Cross-Site Scripting (XSS) : Consiste à insérer des scripts malveillants dans des pages web, ce qui permet à un attaquant de prendre le contrôle des sessions utilisateur et d’effectuer des actions non autorisées sur le site.
- Cross-Site Request Forgery (CSRF) : Est une attaque qui consiste à réduire en erreur un utilisateur authentifié pour qu’il exécute involontairement des actions indésirables sur un site web. Les attaquants exploitent la confiance entre le navigateur de l’utilisateur et le site pour mener des opérations malveillantes sans que l’utilisateur en ait connaissance.
- Exposition des données sensibles (Sensitive Data Exposure) : L’exposition des données sensibles se produit lorsque des informations telles que des mots de passe ou des informations personnelles sont stockées ou transmises de manière non sécurisée, permettant ainsi à des attaquants d’y accéder et de les exploiter.
- Mauvaise gestion de l’authentification et des sessions
- (Broken Authentication) : Une mauvaise gestion de l’authentification et des sessions peut entraîner des risques tels que l’usurpation d’identité, les attaques par force brute et l’accès non autorisé aux codes d’authentifications, mettant en péril la sécurité des utilisateurs.
- Exposition des composants avec des failles connues
- (Security Misconfiguration): La configuration incorrecte de la sécurité des composants tels que les serveurs, les frameworks peut laisser des portes ouvertes aux attaquants. Ainsi, les versions mal configurées peuvent être exploitées pour accéder aux systèmes.
- Sécurité insuffisante des fonctions de validation (Insecure Deserialization) : Permet à un attaquant d’exécuter du code malveillant lors du processus de désérialisation des données. Cela peut conduire à des attaques d’exécution de code à distance.
- Utilisation de composants vulnérables : L’utilisation de composants logiciels vulnérables peut exposer une application à des risques de sécurité. Les attaquants peuvent exploiter ces vulnérabilités pour compromettre l’ensemble du système.
- Manque de contrôle d’accès : Un manque de contrôle d’accès peut faciliter l’accès de personnes non autorisées à des informations sensibles. De plus, une supervision insuffisante des activités peut retarder la détection des attaques et des incidents de sécurité.
- Validation des entrées de Données :
Les redirections et transferts non validés peuvent être exploités par des attaquants pour rediriger les utilisateurs vers des sites malveillants ou compromettre l’intégrité des données.
OWASP est une organisation indépendante fournissant des informations impartiales sur la sécurité des applications, sans affiliations commerciales. La Fondation OWASP est une entité à but non-lucratif. Nos équipes sont disponibles pour vous accompagner.
Vous souhaitez bénéficier d’un test d’intrusion ?
Nos équipes sont disponibles pour vous accompagner.