Cyber Pop

Advens à l’évènement LeHack 2023

Publié le 24 juillet 2023

Cette année encore, notre Redteam était au rendez-vous pour assister à l’évènement LeHack.

Existant depuis 2001 (auparavant nommée « Nuit du Hack » jusqu’en 2019), cette convention propose de réunir les passionnés de sécurité informatique autour de divers stands d’entreprises du secteur mais aussi des associations et écoles spécialisées.

Des conférences techniques ont lieu tout au long de l’évènement et laissent divers intervenants présenter les résultats de leurs sujets de recherche dont voici quelques résumés.

Conférence « Du Driver Windows à l’EDR » par Aurélien CHALOT

De nos jours, pour détecter les malwares, les antivirus reposent principalement sur l’analyse dynamique. Pour étudier le comportement d’un malware, il est nécessaire que les solutions d’antivirus aient le moyen d’intercepter ses actions. Pour cela, Microsoft a ajouté au sein de l’OS Windows ce que l’on appelle des kernel callbacks. Ces kernels callbacks sont en fait des fonctions de l’API Windows qui permettent, moyennant un niveau de privilège fort, d’intercepter les actions d’un malware. Pour avoir les privilèges suffisants, il est nécessaire que ces fonctions soient utilisées par un certain type de composant : les drivers.

Source : https://lehack.org/fr/track/du-driver-windows-a-ledr/

Lors de cette conférence, Aurélien a retracé l’historique des divers moyens utilisés au cours des dernières décennies pour protéger nos systèmes contre les logiciels malveillants. La technicité et l’innovation des attaquants évoluant au rythme asynchrone des évolutions techniques permettant de repérer ces derniers, nous en sommes alors à l’époque des EDR (Endpoint detection and response).

C’est dans un objectif d’auto-apprentissage qu’Aurélien a alors décidé d’entreprendre le développement d’un « EDR maison ». Cet EDR utilisant les fonctionnalités de l’API Windows (et particulièrement les kernels callbacks, dont les spécificités sont présentées en conférence), il faudra alors développer un driver.

Au travers d’exemples de code, la conférence met alors l’accent sur la complexité liée à ce type de développement bas niveau, ainsi que les contraintes que les EDR doivent alors surmonter avant même de démontrer leur efficacité.

Conférence Parasitage de serveur for fun and profit de Damien Virtualabs CAUQUIL

Les serveurs et applications web reposent sur des technologies qui peuvent dans certains cas être détournées et utilisées à des fins non-prévues. Il est ainsi possible de parasiter un serveur ou une application en y stockant des données sans que ces derniers ne s’en rendent compte tout en permettant leur récupération dans un délai plus ou moins court, et ce sans nécessité d’authentification ou que cela soit facilement détectable !

Source : https://lehack.org/track/parasitage-de-serveur-for-fun-and-profit/

Nous allons vous présenter cette méthode simple et ingénieuse de détournement d’application pour stocker des fichiers sans même être authentifié.

Prenons comme exemple une application disposant d’une mire d’authentification :

Figure 1 – Mire d’authentification

Nous constatons que le formulaire pour ajouter son adresse mail ne contrôle pas le format du texte renseigné, ni sa longueur.

Figure 2 – Session 1

De plus, un cookie stocke la valeur écrite dans le formulaire.

C’est un cookie dont le paramètre durée maximum est fixé à Session. Cela signifie que si l’on recharge la page d’authentification le cookie reste le même et la valeur d’email réapparaît dans le formulaire. Si nous fermons la page ou le navigateur, le cookie est supprimé côté client et le formulaire Email address n’est plus auto-rempli.

Figure 3 – Session 2

Cependant, cela ne signifie pas qu’il ait également bien été supprimé côté serveur. Des cookies de sessions et les informations qui y sont liées peuvent être stockés des heures, des jours ou des mois après la fin de la session, en fonction de la configuration du serveur.

Par exemple, si nous regardons sur le serveur hébergeant l’application, nous constatons que les cookies des deux sessions sont présents, même si la première est terminée.

Figure 4 – Suivi de session

Nous pouvons y retrouver la valeur que nous avions entrée dans le formulaire Email address.

Figure 5 – Valeur « Bonjour »

Nous souhaitons alors stocker le contenu d’un fichier à la place du message Bonjour.

Nous encodons une image PNG en base 64. Cela fonctionne avec tout autre type de fichier.

Figure 6 – Encodage de l’image en base64

Nous renseignons notre image encodée en base 64 dans le formulaire Email address et nous sauvegardons la valeur du cookie de notre session.

Figure 7 – Insertion de l’image dans la valeur du cookie de session

L’image est bien écrite sur le serveur :

Figure 8 – Ecriture de l’image encodée en base64 sur le serveur

Quelques jours plus tard, nous pouvons récupérer notre document en remplissant la valeur du cookie de la session dans notre navigateur.

Figure 9 – Récupération de l’image

Pour éviter le parasitage de votre serveur, nous vous invitons à :

  • Contrôler le format et la longueur de tout texte renseigné par un utilisateur;
  • Initialiser un cookie de session après l’authentification réussie de l’utilisateur;
  • Supprimer côté serveur le cookie lors de la déconnexion de l’utilisateur;
  • Utiliser un antivirus sur votre serveur pour supprimer les fichiers malveillants.

Conférence « Prototype pollution and where to find them » par Bitk et Sakiir

La pollution des prototypes est une vulnérabilité dans les applications JavaScript qui peut avoir des impacts variables en fonction de la complexité et de la nature de l’application affectée. Elle exploite la fonction d’héritage de prototype JavaScript, qui permet aux objets d’hériter de propriétés et de méthodes. En manipulant la chaîne de prototypes d’un objet, un attaquant peut introduire des propriétés malveillantes, conduisant à un comportement inattendu et permettant potentiellement à l’attaquant d’exécuter du code arbitraire.

Source : https://lehack.org/fr/track/prototype-pollution-and-where-to-find-them/

La conférence avait pour but de présenter un aperçu des prototypes JavaScript et des attaques par pollution de ceux-ci.

Un outil destiné à détecter ce type d’attaque en audit de code ou bien en test d’intrusion en boîte blanche nous a été présenté afin d’identifier plus facilement ce type de vulnérabilité sur de grosses applications basées sur le langage Javascript. Celui-ci est accessible sur le gitlab suivant : https://github.com/yeswehack/pp-finder

Enfin, plusieurs exemples de détection et d’exploitation de prototype pollution dans un contexte de test d’intrusion en boîte noire nous ont été présentés. Des exemples de charges utiles permettant d’exploiter les attaques de prototype pollution sur des frameworks ou librairies JavaScripts connus tels que VueJS ^3.2.47, Fastify ^4.13.0 ou Axios 0.27.2 ont pu nous être présentées.

Les conséquences de l’exploitation d’une telle vulnérabilité sont variables en fonction de l’application et des librairies utilisées pouvant permettre de réaliser par la suite une attaque SSRF (Server Side Request Forgery), jusqu’à l’exécution de code à distance sur le serveur.

Pour conclure, les vulnérabilités de prototype pollution sont souvent difficiles à détecter dans une approche de test d’intrusion en boîte noire, et l’exploitation dépend alors majoritairement des composants utilisés par l’application ciblée. Il est aussi important de préciser que l’exploitation de cette vulnérabilité peut avoir des effets de bord important sur l’application pouvant dans certains cas créer un déni de service en corrompant les propriétés de l’application.

Un article publié sur YesWeHack, résume les différentes manières de détecter et d’exploiter cette vulnérabilité : https://blog.yeswehack.com/talent-development/server-side-prototype-pollution-how-to-detect-and-exploit/

Conférence « DPAPI – Don’t Put Administration Passwords In » par Thomas SEIGNEURET et Pierre-Alexandre VANDEWOESTYNE

La DPAPI est une API des OS Windows mise à disposition des développeurs pour stocker facilement les secrets des utilisateurs, sans qu’ils aient à se soucier de la partie crypto. Pour les développeurs, il suffit d’utiliser les fonctions Protect et Unprotect pour respectivement stocker de manière sécurisée les données et accéder aux données stockées. Beaucoup de secrets différents sont stockés via la DPAPI :

  • Mots de passe de Tasks Scheduled
  • Mots de passe dans les navigateurs (Chrome Based et Internet Explorer)
  • Clé privée des certificats
  • Mots de passe de certaines solutions (notamment des solutions d’administrations à distance) – etc.

D’un point de vue offensif, ces secrets sont très intéressants à récupérer, pré et post compromission de domaine, et permettent souvent de pousser plus loin la compromission d’un SI.

Source : https://lehack.org/fr/track/dpapi-dont-put-administration-passwords-in/

Une conférence attendue était celle de Thomas Seigneuret et Pierre-Alexandre Vandewoestyne sur la DPAPI. Cette API, propre aux systèmes Windows, permet de faciliter la sauvegarde de secrets.

Les deux experts expliquent qu’elle peut facilement devenir un outil redoutable pour un attaquant. Il suffit de compromettre un poste ou serveur Windows d’une entreprise pour récupérer de nombreux identifiants tels que des mots de passe de navigateurs, de tâches planifiées, de bureau à distance, ou encore des clés privées de certificats et de points d’accès Wi-Fi.

Pire, pour quelqu’un ayant compromis un contrôleur de domaine Active Directory, il devient possible de rapidement récupérer tous ces identifiants de tous les utilisateurs du domaine. Cela peut rapidement permettre de rebondir sur d’autres périmètres ou services externes à l’entreprise compromise (Tenant Azure, NAS, backups, …).

Conférence « Physical Intrusion For Fun And Profit » par Anthony BOENS

Lors de missions de type intrusion physique, les auditeurs se retrouvent face à différents blocages physiques. Le but de cette présentation a pour objectif de démontrer que nombreux de ces dispositifs de blocage peuvent être contournés facilement et sans entraînement. En effet, qui ne s’est jamais retrouvé face à un Digicode en métal ? Une porte fermée avec un cylindre de mauvaise qualité ? Ou encore, un portail télécommandé ?

Source : https://lehack.org/fr/track/physical-intrusion-for-fun-and-profit/

La première journée de conférences s’est clôturée par une présentation sur les tests d’intrusion physique et plus particulièrement sur des techniques de crochetage, dites de « lockpicking ».

Anthony a démontré que la plupart des serrures sur le marché peuvent être cassées en très peu de temps. Certaines demandent du matériel spécifique, pour par exemple tester plusieurs dizaines de combinaisons d’un coup et trouver le bon alignement des goupilles en quelques secondes. Mais pour un prix bon marché, la plupart des portes que nous ouvrons au quotidien peuvent facilement être ouvertes à l’insu de leur propriétaire.

Vous avez peur de laisser des traces en crochetant ? Certaines portes claquées peuvent être ouvertes sans crochetage, simplement à l’aide d’une fine feuille rigide, comme des résultats médicaux de scanner, ou avec votre carte de crédit, comme l’explique Anthony. Cette technique consiste à glisser la carte entre la porte et le bâti et à remonter jusqu’à la serrure en donnant de légers coups dans la porte pour insérer notre carte et libérer le pêne demi-tour pour ouvrir la porte.

Enfin, les portails et voitures à ouverture à distance n’échappent pas aux attaques par interception de signal radio. En se positionnant entre l’usager et l’équipement, un attaquant peut intercepter le signal envoyé par le « bip » (télécommande). Un simple relai du signal permet d’ouvrir des portes de voitures ou de portails privés.

Cette conférence prouve que les sécurités physiques ne sont pas encore au niveau de sécurité attendu par les professionnels et elle démontre le besoin de sensibiliser les collaborateurs des entreprises à la présence d’intrus dans leurs locaux.

Cette journée de conférences s’est poursuivie avec une compétition de CTF (Capture The Flag) dont vous pourrez retrouver les writes-up de nos équipes sur notre blog techniques :

https://blog.hackvens.fr/