Comment hacker (légalement) une multinationale de 20 milliards d'euros ?
📸 CVE-2023-2520{2|3} : Comment hacker une MULTINATIONALE avec un dépôt de fichiers et une SSRF ?
Introduction
La sécurité informatique est maintenant au coeur de notre quotidien. Aux infos, sur internet, sur les réseaux, tout le monde, avec ou sans connaissance, semble déjà avoir été victime d’une attaque informatique plus ou moins grave.
Et cela peut toucher des petites entreprises comme les plus grosses du CAC40. Si vous pensiez que la sécurité des plus grosses sociétés de ce monde est inviolable, détrompez vous.
Quelques exemples sur les pires fuites de données :
- Yahoo aout 2013 : informations personnelles estimées jusqu’à 3 milliards d’utilisateurs.
- Linkedin mai 2016 : mail/mdp de plus de 150 millions d’utilisateurs.
- Facebook avril 2021 : nom, prénom, mail, tel, employeurs de plus de 500 millions d’utilisateurs.
Aujourd’hui, à travers cette article, retour sur un hack de 20 milliards d’euros (au moins ! 😅).
Contexte
Processus de divulgation responsable
Cette article a été réalisée en accord avec l’ANSSI, l’Agence Nationale des Systèmes d’Informations à la suite d’un processus de divulgation responsable.
La cible
Canon Inc est une entreprise japonaise basée à Tokyo et spécialisée dans les produits optiques, incluant appareils photo, photocopieurs et imprimantes.
Elle produit tous les ans un CA aux alentours de 25 milliards de dollars.
Un test d’intrusion “banal”
Retour en 2022
En décembre 2022, Trackflaw est mandaté pour effectuer un audit technique de type test d’intrusion web/applicatif pour un client grand compte (le nom est censuré pour raison de confidentialité).
L’audit applicatif, d’une durée de 5 jours, était a effectuer en boite grise et concernait une application de gestion de document. Ce type d’audit est tout à fait classique et est effectué très régulièrement par Trackflaw.
Le logiciel a audité est un logiciels de Therefore, une filiale de Canon. L’étude de ce logiciel a permis de découvrir 2 vulnérabilités critiques.
Client ou pas client ?
Therefore est une société proposant des solutions de gestion de l’information. L’un des principaux logiciels de Therefore est spécialisé dans le traitement des documents. Toutes les solutions sont disponibles directement sur leur site web.
💡 En effet, la question est importante !
Lors du test d’intrusion, plusieurs vulnérabilités importantes sur la solution de traitement de documents de Therefore ont été décelées.
Le test d’intrusion a été réalisé sur l’application de gestion documentaire Capture
. Les vulnérabilités concernent aussi bien la version web que la version client lourd.
En temps normal c’est au client de traiter le processus :
- L’auditeur (Trackflaw) envoi le rapport au client initial.
- Le client initial analyse et envoi le rapport au développeur (Therefore).
- Le développeur (Therefore) corrige les vulnérabilités.
Or, ici, la communication n’était pas… optimale. Il a fallu faire évoluer le processus.
- Un premier rapport concernant toute les vulnérabilités de l’audit a été communiqué au client initial.
- Un deuxième rapport anonymisé a été rédigé contenant uniquement les vulnérabilités impactant Therefore (et non le client initial !).
- Ce rapport anonymisé devait être ensuite transmis à Therefore.
😅 Sauf que tous ne s’est encore pas passé comme prévu !
CVE - Common Vulnerabilities and Exposures
Une solution informatique peut être utilisées par plusieurs acteurs, ou plutôt, utilisateurs.
Lors de la découverte d’une faiblesse, le chercheur doit communiquer avec le développeur de la solution quand il n’y a pas de client intermédiaire (au contraire de nous ici) afin de corriger les problèmes sur l’ensemble de ses applications déployées.
Pour ce faire, le chercheur va rédiger un petit rapport afin d’expliquer les problèmes découverts. C’est ce qu’on appelle un advisory
.
Afin de faciliter la traçabilité des vulnérabilités découvertes dans des produits “publiques”, l’organisation MITRE, soutenu par le département de la Sécurité intérieure des États-Unis, a créée la base d’informations CVE.
Common Vulnerabilities and Exposures
ou CVE
est un dictionnaire d’informations publiques relatives aux vulnérabilités de sécurité. La base est maintenue par l’organisme MITRE
, soutenu par le département de la Sécurité intérieure des États-Unis.En parallèle de la rédaction de l’advisory, 2 déclarations ont été effectuées concernant les deux faiblesses découvertes. Aucune informatique technique n’est encore disponible à ce stade. Uniquement les identifiants des vulnérabilités sont disponibles.
Dans notre cas, 2 numéros :
- CVE-2023-25202 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-25202
- CVE-2023-25203 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-25203
Les CVE-2023-25202 et CVE-2023-25203 affectent Therefore Case Manager 2018/2021
et Therefore Solution Designer 2018/2021
(https://www.therefore.net/help/2021/en-us/rn_releasenotes.html).
Toutes les versions égales ou inférieures à 18.4.0
et égales ou inférieures à 26.1.1
sont vulnérables aux deux vulnérabilités. A ce jour, je n’ai toujours pas de nouvelles de Therefore et si la nouvelle version est correctement patchée.
Communication avec l’ANSSI
L’ANSSI ou l’Agence nationale de la sécurité des systèmes d’information est un service français créé par décret en juillet 2009. Ce service à compétence nationale est rattaché au secrétariat général de la Défense et de la Sécurité nationale (SGDSN), autorité chargée d’assister le Premier ministre dans l’exercice de ses responsabilités en matière de défense et de sécurité nationale.
Cette organisation française a joué un rôle majeur dans l’ouverture du dialogue avec Therefore.
Divulgation responsable
Après la prise de contact, l’ANSSI réussit à établir une liaison avec Therefore via le CERT autrichien. Ce processus d’échange s’étala sur presque un an et débloqua la situation.
Au bout de nombreux messages sans retour, l’ANSSI en accord avec le CERT autrichien, donna l’autorisation de divulguer les vulnérabilités le 12 décembre 2023. 🥳
Timeline final
Date | Action |
---|---|
28 novembre 2022 | Découverte des vulnérabilités lors du test d’intrusion |
4 décembre 2022 | Communication des vulnérabilités au client initial |
19 décembre 2022 | Rédaction d’un advisory à destination de Therefore |
16 janvier 2023 | Divers contacts infructueux avec Therefore |
28 février 2023 | Troisième et dernière tentative de contact avec Therefore |
2 mai 2023 | Prise de contact avec l’ANSSI |
9 mai 2023 | Prise de contact avec Therefore via le CERT autrichien |
7 septembre 2023 | Relance de l’ANSSI vers le CERT autrichien |
12 décembre 2023 | Divulgation responsable coordonée avec l’ANSSI et le CERT autrichien (sans accord de Therefore) |
Les vulnérabilités
CVE-2023-25202 : Mécanisme de dépôt de fichier non sécurisé
Le test d’intrusion a été réalisé dans un contexte client particulier sans le support de Therefore.
Les vulnérabilités de cet article peuvent n’être applicables que dans un contexte spécifique.
Description
L’application Therefore est trop permissive quant au type de fichier pouvant être téléchargé par un utilisateur.
En effet, elle n’empêche que le téléchargement de fichiers HTML
, EXE
et BAK
. Un attaquant peut télécharger des fichiers techniques tels que des fichiers PHP
, ASP
, ASPX
et JSP
.
Ces fichiers peuvent permettre, sous certaines conditions, d’exécuter des commandes système (non exploitables ici).
L’image ci-dessous résume les différentes extensions pouvant être utilisées sur l’application (générée avec la fonction intruder
de Burp Suite Pro).
Exploitation
L’application empêche les fichiers HTML
d’être déposés. Cette protection peut être facilement contournée en déposant des fichiers
markdown (MD)
prenant en charge le HTML.
Il est important de noter qu’il n’est pas possible de télécharger des fichiers exécutables tels que les logiciels malveillants.
Ce manque de contrôle sur le contenu déposé facilite l’exploitation de la vulnérabilité suivante.
Risques
Un attaquant est en mesure de déposer des fichiers non contrôlées par l’application. Cela permet à un attaquant d’exploiter plus facilement des vulnérabilités de type SSRF, de déposer des fichiers malveillants (autres que de type exe
) ou de déclencher des attaques par déni de service.
Un attaquant pourrait également, sous certaines conditions, exécuter du code à travers les fichiers déposés (ASP, PHP, JSP fichiers, etc).
Correction
Il est conseillé de limiter le type de fichiers à télécharger au strict nécessaire.
Un utilisateur standard n’a besoin, la plupart du temps, que de fichiers de traitement de texte (ex : office et fichiers PDF) et d’images. Il est conseillé de limiter le nombre d’extensions utilisables (se référer aux extensions gérées par le développeur du plugin Aspose).
CVE-2023-25203 : Application vulnérable aux attaques de type SSRF (Server Side Request Forgery)
Description
La solution Therefore utilise le logiciel Aspose
pour gérer la conversion des fichiers déposées au format PDF (cf. capture ci-dessous).
L’utilisation de ce type de solution permet de convertir une grande quantité de fichiers différents (plus d’infos dans la documentation d’Aspose).
Ceci présente un risque si l’application ne gère pas correctement le filtrage des extensions inutilisées.
Selon le développeur du logiciel Aspose, des mesures de sécurité doivent être mises en place pour éviter qu’un attaquant puisse faire exécuter au serveur des requêtes internes. Cette attaque est appelée SSRF (Server Side Request Forgery).
La solution proposée par Therefore est vulnérable aux attaques SSRF de plusieurs manières.
Exploitation
Acces à une ressource distante
L’utilisation d’un fichier SVG illustre la possibilité de faire une requête HTTP GET
par l’application vers un serveur contrôlé par l’attaquant.
La capture d’écran ci-dessus illustre cette vulnérabilité SSRF à l’aide d’un fichier SVG (disponible ci-dessous).
|
|
Récupération d’empreinte de mot de passe
Dans un environnement Windows, il est possible de demander une ressource par un chemin particulier. Il est possible de coupler
cette fonctionnalité par le biais de cette faiblesse SSRF
afin de rediriger le compte local de la machine hébergeant l’application vers le serveur SMB de l’attaquant.
Ce dernier recevra l’empreinte NetNTLMv2
de ce compte de service.
Dans la capture d’écran ci-dessous, un serveur SMB
a été déployé sur la machine attaquante. En interprétant le fichier SVG, le serveur attaquant collecte le condensat du compte machine FR********4$
.
Ce condensat pourrait ensuite être relayé et/ou cassé afin d’attaquer l’environnement Active Directory du client initial.
Cartographie réseau interne
Cette vulnérabilité SSRF permet également à un attaquant de cartographier l’architecture interne du client (si celle ci communique avec Internet).
Sur la capture d’écran ci-dessous, il est possible d’atteindre le serveur google.fr
. L’attaquant pourrait également utiliser la machine victime comme proxy pour usurper son adresse IP publique.
Enfin, un attaquant est également en mesure d’effectuer les actions suivantes (non concluantes par manque de temps) :
- Scan de ports : il est possible de scanner les ports des machines sur le réseau.
- Lecture de fichiers : le plugin Aspose semble être protégé contre la lecture de fichiers (ex : capture ci-dessous.
Le service redirige vers le chargement du fichier
C:\Windows\win.ini
mais rien n’est affiché). - Déni de service : un attaquant est en mesure de télécharger un document faisant référence à des images très volumineuses. Lors du traitement de cette image, la bibliothèque consomme de la mémoire et du temps pour traiter ces images.
Risques
Les principaux risques de cette vulnérabilité pour les clients utilisant cette solution sont les suivants :
- Vol d’informations d’identification : un attaquant est en mesure de collecter le condensat
NetNTLMv2
d’une personne chargeant un contenu distant. Ce type de challenge peut être cassé par l’attaquant afin de récupérer le mot de passe de l’utilisateur cible. - Divulgation d’images sensibles : le traitement d’un document contenant une référence à un fichier d’image local entraînera la divulgation de ce fichier dans le document final. Cela peut entraîner une divulgation d’informations sensibles.
- Cartographier le système d’information de la victime : un attaquant peut cartographier l’infrastructure de la victime et effectuer une découverte de services.
- Déni de service : un attaquant peut empêcher la machine de fonctionner correctement en la rendant inutilisable.
Correction
Pour corriger cette vulnérabilité SSRF, il est possible de modifier la configuration du plugin Aspose
utilisé dans la fonction d’analyse de fichier. Le plugin est en mesure d’empêcher les attaques SSRF.
Aspose a déjà publié un article mettant en garde contre les différents risques liés au chargement d’éléments distants.
L’exemple de code suivant montre comment désactiver le chargement des images externes :
|
|
Allez plus loin
Ouf ! Beaucoup d’informations ! 😅
👇 Une vidéo est disponible sur la chaine de Trackflaw pour une meilleur vulgarisation. N’hésitez pas à noter vos retours en commentaire 🙏