Histoires de pentest
Cette série d’articles vous fait suivre Jean, un pentester imaginaire, dans ses missions de tests d’intrusions. Les clients et les histoires d’exploitations sont tout autant imaginaires, mais correspondent à la réalité et sont basées sur les expériences des experts DSecBypass.
Elle a vocation à vulgariser et rendre plus imagées les différentes offres de pentest.
L’audit externe
Jean réalise depuis plusieurs années des tests d’intrusion externes. Il a amélioré ses méthodes et outils afin de facilement identifier les serveurs ou services exposés sur Internet qui sortent du lot. Ce n’est pas chose évidente lorsque le client expose des centaines d’adresses IP, et d’autant plus de services. Trouver les « bons » services au milieu d’Internet requiert également de l’expérience et en quelques sortes un œil averti malgré ces outils.
Aujourd’hui, il est sur une mission pour un groupe industriel Français. Le client est en phase de rachat d’une nouvelle entité et souhaite valider le niveau de sécurité de ce qu’il va acquérir. Le périmètre est donc bien identifié :
- client.com
- client-outils.com
- client-outils.it
- plusieurs adresses IP publiques correspondantes aux bureaux de l’entité, ses usines et quelques serveurs hébergées dans le cloud
Le scénario est un audit externe boîte noire : l’auditeur ne connaît que les informations de périmètre, les éventuelles contraintes clients, et ne possède aucun compte ou documentation. Comme dans la majorité de ce type de missions, le client a autorisé au préalable les adresses IP de Jean dans ses solutions de sécurité (IPS, WAF) afin qu’il ne se retrouve pas bloqué pendant ses tests. L’efficacité de ces solutions pourra être testée dans un deuxième temps, cette fois l’accent est mis sur la sécurité des services exposés.
✅ Avant de démarrer l’audit, Jean s’assure que le mandat juridique a été correctement renseigné et signé par toutes les parties prenantes. Il envoie un mail au contact chez le client et la nouvelle entité afin d’informer du début des tests.
Jean démarre sa phase de reconnaissance passive : quels sont les noms de domaines liés à ceux du périmètre (www.client.com, support.client.com, extranet.client.com etc.) ? est-ce que les moteurs de recherches communiquent déjà des informations intéressantes ? peut-on retrouver des adresses mail d’employés dans des bases de données piratées ? Quels services ouverts sont déjà connus ? Il utilise pour ça des outils qu’il a lui-même développé afin de corréler plusieurs sources de données publiques sur Internet et consolider ainsi un recueil d’informations récupérées de manière passive : il n’a toujours pas accédé au moindre service du Système d’Information du client et pourtant il possède déjà une vision assez précise de son exposition.
Il a alors une cartographie précise des services ouverts, leurs versions et les technologies utilisées. Ses outils lui ont également révélés les services qui ne sont pas à jour et sont sujets à des vulnérabilités, les fameuses CVE.
Il teste manuellement les CVE qui lui semblent être exploitables mais les conditions d’exploitation ne sont pas réunies. Les services vulnérables seront tout de même consignés dans le rapport d’audit afin que les montées de versions des logiciels vulnérables soient planifiées.
Il fait également l’inventaire des services « sensibles » découverts : ce sont les services qui permettent d’administrer les serveurs (SSH, RDP, Telnet, FTP), les bases de données (MySQL, MSSQL, MongoDB, Elasticsearch) et globalement tous les services qui sortent de l’ordinaire. Il consigne les services qui ne devraient pas être exposés sur Internet (réduction de la surface d’attaque), et utilise les techniques d’attaques communes sur ces services : bruteforce de mot de passe, comptes par défaut, authentification anonyme et autres techniques spécifiques aux services audités. Il utilise également les mails et mots de passe des employés découverts lors de la phase passive afin d’éliminer de potentielles réutilisations de mots de passe.
Mise à part des fuites d’informations dans les bannières des services, il ne découvre pas de failles notables.
Il décide donc de s’attaquer aux sites web et services HTTP exposés. Jean passe du temps sur les sites vitrines et e-commerces de la société et remonte quelques vulnérabilités d’impact non négligeables : possibilité de récupérer une base client sur un site de support, des vulnérabilités dans le code du site vitrine qui permettent d’attaquer les visiteurs en les redirigeant sur le site du concurrent. Ce sont des remontées intéressantes pour le client et ses équipes, mais Jean cherche avant tout à s’introduire dans l’entreprise. Jusqu’à présent les vulnérabilités découvertes ne lui permettent pas de prendre le contrôle d’un serveur, et encore moins de pénétrer dans le réseau du client.
🎯 Quelques heures plus tard, il arrive sur un serveur qui semble avoir été mis en ligne pour tester une solution de ticketing mais a été oublié. Étant exposé sur un port non standard, le site web de ticketing a certainement échappé à l’indexation par les moteurs de recherche et par les scans automatisés des hackers. Le logiciel est en retard de plusieurs versions et un exploit critique a été publié : un utilisateur administrateur peut exécuter des commandes systèmes sur le serveur. Jean teste le compte d’administration par défaut de la solution (admin/admin) et parvient à se connecter… classique !
L’exploit lui permet de prendre le contrôle du serveur. Le serveur n’étant pas en DMZ dans le réseau du client, Jean se retrouve directement dans le réseau interne. Un coup de fil au client permet de valider la possibilité de continuer dans le réseau interne. En utilisant sa technique de pivot préférée, il proxifie tous ses outils dans le réseau interne. Bien qu’il soit à l’autre bout d’internet, il est désormais dans les mêmes conditions qu’un pentest interne !
Quelques minutes plus tard, Jean contrôle le Système d’Information de l’entité. Un attaquant en situation réelle pourrait alors déployer un rançongiciel (ransomware). Il informe immédiatement le client et ses équipes de cette vulnérabilité critique afin qu’ils puissent réagir.
A la fin de sa mission, Jean appel une dernière fois le client afin de synthétiser les résultats de la mission et lui donner une première vision des remédiations à effectuer.
📚 Le lendemain il termine son rapport d’audit et l’envoie à un de ses collègues pour relecture et validation.
Il transmet ensuite le rapport au client de manière sécurisée et échange avec les équipes et la direction sur les résultats du pentest interne et le plan d’action grâce à la restitution en visioconférence.
🛡️ DSecBypass vous accompagne sur vos tests d’intrusions externes, avec des prestations de qualité et une expérience significative sur ce type de prestation. N’hésitez pas à nous contacter pour des informations complémentaires et/ou un devis personnalisé 📝.