Retour sur l'édition 2023 de la Barbhack

Exploitation de DNS insecure updates & Hijack Kerberos en MiTM – Almandin

Lors de cette conférence, Virgile Jarry, responsable R&D chez SYNETIS (alias Almandin) nous présente ses recherches sur l’exploitation d’une mauvaise configuration d’une zone DNS dans un Active Directory.

Il présente rapidement Kerberos, le mécanisme d’authentification Windows par défaut. Puis explique ce qu’est une Zone DNS intégrée à Active Directory. 

Par défaut, la modification d’une zone DNS nécessite une authentification pour empêcher n’importe qui de modifier un enregistrement DNS. Permettant à un attaquant de réaliser une attaque de type man-in-the-middle (MITM) sur l’ensemble du réseau. Toutefois, si le flag DNS_UNSECURE_UPDATE est placé sur une zone, un utilisateur anonyme peut mettre à jour, ajouter et supprimer des enregistrements DNS.

Le chercheur explique que sur 1948 domaines audités, 8.9% possèdent le flag DNS_UNSECURE_UPDATES sur une zone DNS. Par conséquent, ils sont vulnérables.

Par la suite il nous détaille la mise en place de l’attaque :

  • Mise en place d’un man-in-the-middle entre le serveur cible et le DC (Controlleur de Domaine) ;
  • Modification des enregistrements qui pointent vers le serveur cible afin d’intercepter tout le trafic qui y serait dirigé.

À ce niveau, Almandin explique que 2 problèmes surviennent : 

  • L’absence d’outillage pour mettre cela en œuvre facilement sans déni de service ;
  • Pas de possibilité de compromettre un AD entier.

Un attaquant interceptant un ST (Ticket Service) afin d’accéder à un service légitime ne permet pas d’établir une communication sécurisée car, il n’est pas possible de chiffrer/signer ce ticket tout comme l’émetteur réel de ce dernier. Il faudrait pouvoir le déchiffrer pour cela. En revanche, cette attaque fonctionne pour tous les services n’exigeant aucun chiffrement/signature par défaut comme SMB.

L’attaque se poursuit par la mise en place du DNS poisoning. L’attaquant positionné en man-in-the-middle entre un service légitime et un serveur, intercepte le ST d’un utilisateur avant de s’en servir pour se connecter en SMB. L’avantage de cette technique est qu’elle passe à travers les routeurs, puisque les enregistrements DNS « officiels » sont empoisonnés.

Enfin, le chercheur nous présente son outil « KRBJack » disponible sur github afin d’automatiser cette attaque : https://github.com/almandin/krbjack. Son outil permet la mise en place du Man-in-the-middle et du DNS poisoning afin de s’emparer des informations d’identification et de les utiliser directement pour posséder des systèmes ou l’ensemble des services Active Directory. 

Sign-in with the badguys : failures around (delegated) authentication – Sébastien Koreth

Lors de cette conférence, Sébastien Koreth nous présente ses recherches sur les attaques par prédétournement de compte (account pre-hijacking).

Cette technique regroupe un ensemble de méthodes visant à exploiter les failles de sécurité sur des comptes en ligne. Cette approche consiste à anticiper la création de comptes sur un site Web et à trouver des moyens pour récolter les informations des utilisateurs.

Parmi 75 sites internet étudiés, 35 s’avèrent être vulnérables à cette faille grâce à diverses méthodes d’exploitation. Parmi les services vulnérables, on peut citer Dropbox, Instagram, LinkedIn, WordPress et Zoom. L’existence de cette vulnérabilité a été communiquée à tous ces prestataires de services avant la conférence.

Afin de comprendre les divers scénarios d’exploitation de cette vulnérabilité, voici un récapitulatif des moyens de création de comptes dont on dispose sur Internet :

  • La voie classique consiste en « saisir votre adresse e-mail, créer un mot de passe » ;
  • Les identités fédérées consistent à utiliser un site Web ou une application telles que Gmail ou Yahoo pour une connexion unique  « Login with … » (SSO – Single Sign On).

Voici les différents scénarios d’exploitation évoqués durant la conférence.

Attaque par fusion classique-fédérée

Comme expliqué précédemment, il existe 2 moyens pour créer un compte, par la voie classique et par la voie fédérée (« login with… »). Certains sites fusionnent ces identités. Il est alors possible qu’un attaquant utilisant une adresse Gmail et un utilisateur utilisant la voie fédérée aient tous deux accès au même compte en utilisant des informations de connexion différentes.

Voici le déroulé de ce scénario :

  1. L’attaquant crée un compte sur un site vulnérable avec son adresse mail;
  2. L’attaquant change l’adresse mail liée à son compte pour celle de la victime;
  3. La victime se connecte avec une identité fédérée;
  4. L’attaquant peut alors accéder au compte de la victime.

Attaque par identifiant de session non expiré

  1. L’attaquant crée un compte sur un site vulnérable avec l’adresse mail de la victime et maintient une session active de longue durée (reste connecté) ;
  2. La victime créée son compte, mais le compte existe déjà. Il aura donc la possibilité de réinitialiser son mot de passe ;
  3. La session de l’attaquant étant toujours en cours, il pourra alors accéder au compte de la victime.

Attaque Trojan

  1. L’attaquant crée un compte sur un site vulnérable avec l’adresse mail de la victime ;
  2. L’attaquant met en place une option de récupération de compte avec son email ou un compte de réseau social qu’il maîtrise ;
  3. La victime créée son compte, mais le compte existe déjà. Il aura donc la possibilité de réinitialiser son mot de passe ;
  4. L’attaquant ainsi que la victime recevront tous deux la notification pour changer le mot de passe et l’attaquant pourra alors utiliser ce lien pour changer le mot de passe de la victime et ainsi voler les informations de la victime.

Attaque de changement d’adresse e-mail non expirée

  1. L’attaquant crée un compte sur un site vulnérable avec l’adresse mail de la victime ;
  2. L’attaquant fait une demande de changement de mail avec une adresse mail qu’il maîtrise, mais ne clique pas sur le lien de validation ;
  3. La victime créée son compte, mais le compte existe déjà. Il aura donc la possibilité de réinitialiser son mot de passe ;
  4. L’attaquant utilise le lien de changement de mail afin d’accéder au compte de la victime.

Utilisation non sécurisée de l’IdP

  1. L’attaquant utilise un Identity Prodivder (IdP) qui ne vérifie pas la propriété d’une adresse électronique lors de la création d’une identité fédérée ;
  2. L’attaquant crée un compte sur un site vulnérable ;
  3. La victime créée un compte en utilisant la voie « classique » ;
  4. Le service fusionne incorrectement les deux comptes sur la base de l’adresse électronique ;
  5. L’attaquant peut accéder au compte de la victime.

Pour conclure sa conférence, Sébastien Koreth explique comment se prémunir contre ce type d’attaque.

Les vulnérabilités précédemment décrites ne sont pas exploitables si un mail de vérification est envoyé lors de la création d’un nouveau compte ainsi que lors de la modification de ce dernier.

L’expiration des demandes de changement de mail permet de se protéger contre les attaques de type « changement d’adresse E-mail non expirée ».

En tant qu’utilisateur, il est important de faire attention lors de la réception d’un mail disant qu’un compte a été créé sur une plateforme. Toujours vérifier lors de la création d’un compte que l’adresse mail n’est pas déjà utilisée.

Un check des comptes sociaux connecté à ses comptes peut être effectué. Et, l’utilisation de la double authentification contribue à se protéger contre cette vulnérabilité.

Enfin il terminera par donner un conseil à prendre au second degré : créer un compte sur toutes les plateformes existantes pour éviter d’être vulnérable face à ce type d’attaque.

Émulation de périphérique USB-ETH pour l’audit IOT/Automotive – Philippe AZALBERT

https://github.com/quarkslab/conf-presentations/blob/master/Confs/Barbhack23/Barbhack_2023_QB_Emulation_USB-ETH.pdf

Cette conférence a été présentée par Philippe Azalbert, membre de l’équipe R&D système embarqué et automobile de Quarkslab. De regrettables problèmes techniques avaient empêché la diffusion de la totalité des slides le jour même. Elles restent cependant disponibles sur le compte github de Quarkslab, accessible depuis le lien ci-dessus.

La conférence se base sur l’étude de cas du boitier info-divertissement d’une voiture moderne. Il se trouve qu’une réglementation de l’Union européenne (EU 2015/758 « E-Call » [1]) force tout modèle de voiture à posséder une connectivité data dans le but de performer des appels d’urgences. Cette réglementation transforme tout nouveau modèle de voiture en un objet connecté.

En plus de permettre les appels d’urgences, cette connexion internet gérée par le calculateur télématique (TCU) est offerte aux unités de commandes électroniques (ECU). L’ECU qui nous intéresse ici, le boitier info-divertissement (IVI), communique avec le TCU en passant par le protocole Ethernet over USB (CDC-EEM). Le choix d’utiliser les ports USB existant plutôt que de rajouter un port RJ45 à l’objet connecté s’explique par l’arbitrage entre le coût de développement hardware contre software.

Après avoir extrait la mémoire de l’IVI et s’être connecté à son interface de debug physique, une analyse des scripts présents sur le système de fichier dévoile que l’IVI :

  • Modifie ses règles de pare-feu à la présence d’une interface réseau spécifique ;
  • Envoie de logs à un backend s’il détecte la présence d’un périphérique USB spécifique.

Il s’agit maintenant de spoofer le périphérique USB lié au TCU ainsi que d’usurper l’adresse IP du backend pour pouvoir analyser les logs envoyés par l’IVI. Pour ce faire, Quarkslab à développer un outil capable de rediriger le trafic émit par l’IVI vers une machine attaquante, en se basant sur des solutions open source : FaceDancer [2] et Scapy [3].

FaceDancer est une librairie python capable de compatible avec certaines cartes électroniques compatibles (comme la GreatFET One [4] utilisée lors de la présentation) pour simuler des périphériques USB arbitraires. Le script de Quarkslab utilise la librairie python FaceDancer pour modifier les paramètres USB suivants :

  • Product ID (PID) ;
  • Vendor ID (VID) ;
  • Manufacturer String ;
  • Product String ;
  • Serial number.

Scapy est une librairie python permettant de manipuler des paquets réseaux représentant chaque protocole par une classe. Elle est utilisée par le script de Quarkslab pour implémenter les fonctionnalités réseau suivantes :

  • Réponse ARP et ICMP ;
  • Génération d’une IP statique avec DHCP ;
  • DNS spoofing en se basant sur un fichier fournit par l’utilisateur.

L’outil devrait être publié sur le github officiel de Quarkslab [5] prochainement. Les axes d’améliorations suivants ont été identifiés :

  • Gestion de l’IPv6
  • Mode MitM entre l’ECU et le TCU
  • Scanner VID/PID

Références :

[1]       https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32015R0758

[2]       https://github.com/greatscottgadgets/Facedancer

[3]       https://scapy.net/

[4]       https://greatscottgadgets.com/greatfet/one/

[5]       https://github.com/quarkslab

Méthodologie d’évaluation de composant en boite noire : fuzzing, émulation et exécution symbolique – Julien Allibert

Jullien Allibert, du CERT Naval Group, a présenté une méthodologie de reverse firmware visant a augmenter la surface de code atteinte par le fuzzing.

Naval Group s’assure du niveau de sécurité du matériel électronique monté sur les navires en effectuant une analyse du firmware de ces produits. Ce processus est d’autant plus important si le matériel provient de tiers ou encore si la documentation n’a pas été fournie.

Jullien Allibert découpe la méthodologie de reverse firmware en 7 étapes. Les 4 premières étapes ont déjà été présentées lors de la barbhack 2022, dans le talk « Retour d’expérience sur l’analyse de firmware embarqué – comment rooter une boite bizarre » :

  1. Dump du Firmware ;
  2. Analyse des composants ;
  3. Reverse statique ;
  4. Reverse dynamique ;
  • Fuzzing (frelatage de données) ;

À l’aide du framework d’émulation binaire Qiling [1] et du fuzzer american fuzzy lop [2] il est possible de dégager des métriques sur l’étendue du code couvert par le fuzzer. Ces métriques restent approximatives et il n’en ressort pas de points d’améliorations concrets à implémenter pour augmenter la couverture du Fuzz.

  • Analyse de la couverture de code ;

Il est néanmoins possible de faciliter la recherche manuelle des problèmes à résoudre en colorant les lignes de codes atteintes par le fuzzer dans un désassembleur tel que IDA pro [3] ou Ghidra [4].

  • Framework d’exécution symbolique.

L’étape d’analyse symbolique du firmware permet d’automatiser la recherche de solution à ces problèmes, en utilisant des outils d’analyse dynamique de binaire tels que Angr [5] ou encore Triton [6].

Pour illustrer les bénéfices de cette méthodologie, Jullien Allibert a partagé le cas d’étude d’un appareil implémentant le protocole NMEA 0183 [7], utilisé pour la communication entre équipements marins (GPS, gyrocompas, sonar …).

Dans ce cas d’étude, une fonction sensible du firmware n’était couverte qu’à 20% par le fuzzer. L’application de la méthodologie a révélé que la dernière ligne atteinte par le fuzzer était une comparaison entre une adresse mémoire et le user id de la requête NMEA 0183.

Il a été possible de couvrir cette fonction à 95% par du snapshot fuzzing, ce qui consiste à réinitialiser la mémoire du processus audité pour chaque nouvel input testé par le fuzzer.

À la fin de la présentation, la question d’utiliser cette méthodologie pour référencer des zones de code mort (code oublié inatteignable) a été soulevée.

Références :

[1]       https://github.com/qilingframework/qiling

[2]       https://github.com/AFLplusplus/AFLplusplus

[3]       https://fr.wikipedia.org/wiki/IDA_Pro_(logiciel)

[4]       https://github.com/NationalSecurityAgency/ghidra

[5]       https://github.com/angr/angr

[6]       https://github.com/jonathansalwan/Triton

[7]       https://fr.wikipedia.org/wiki/NMEA_0183

Alexandre D.

Experts XMCO

Découvrir d'autres articles

  • Conférences

    Retour sur la THCon 2024

    Lire l'article
  • Conférences

    Retour sur WestDataFestival 2024

    Lire l'article
  • Conférences

    DORA et la résilience opérationnelle des fournisseurs

    Lire l'article