Contournement de l'authentification multifacteur avec l'attaque Pass-the-Cookie
L'authentification multi-facteurs (MFA) est un excellent moyen d'accroître la sécurité à la fois sur site et dans le cloud. Avec la MFA, lorsqu'un utilisateur se connecte, il doit fournir non seulement son identifiant et son mot de passe, mais aussi un autre facteur d'authentification, tel qu'un code envoyé sur son téléphone. Ce processus réduit la surface d'attaque en empêchant les adversaires munis de justificatifs d'utilisateur volés de se connecter.
Toutefois, l'authentification multifacteur (MFA) n'est pas une panacée en matière de cybersécurité. En particulier, les adversaires peuvent utiliser l'attaque Pass-the-Cookie pour se servir des cookies de navigateur afin de contourner la MFA et accéder aux services cloud. Dans cet article, nous allons explorer le fonctionnement de cette attaque et les meilleures pratiques de sécurité pour se défendre contre elle.
Les cookies de navigateur permettent aux applications web de stocker des informations d'authentification des utilisateurs, afin qu'un utilisateur puisse rester connecté au lieu de devoir fournir son nom d'utilisateur et son mot de passe à chaque fois qu'il navigue vers une nouvelle page sur un site web. (Cela est similaire à l'authentification Kerberos ou NTLM, dans laquelle un artefact est stocké localement sur le système de l'utilisateur et utilisé pour les authentifications futures.)
Comment fonctionne l'attaque Pass the Cookie
Si l'authentification multifacteur est activée, l'utilisateur doit fournir une preuve supplémentaire de son identité, par exemple en acceptant une notification push sur son appareil mobile. Une fois que l'utilisateur a réussi l'authentification multifacteur, un cookie de navigateur est créé et stocké pour votre session web.
Bien que les cookies simplifient l'expérience utilisateur, ils présentent une vulnérabilité évidente : si quelqu'un parvenait à extraire les bons cookies du navigateur, il pourrait s'authentifier en tant qu'un autre utilisateur dans une session de navigateur web totalement séparée sur un autre système. En bref, il pourrait utiliser le cookie pour contourner l'authentification via MFA. (Cela est analogue à l'attaque Pass the Hash dans Active Directory.)
Comment un adversaire peut extraire les cookies du navigateur.
Voyons comment un attaquant pourrait extraire des cookies en utilisant l'exemple du navigateur Google Chrome. Chrome stocke les cookies dans l'emplacement suivant dans une base de données SQLite :
%localappdata%GoogleChromeUser DataDefaultCookies
The cookies for a given user are encrypted using keys tied to that user via the Microsoft Data Protection API (DPAPI). To access the cookie database and decrypt the cookies, an adversary can use the following mimikatz command:
dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect
Alternatively, they could execute the following from the command line:
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
L'utilisation de l'une ou l'autre de ces options fournira les cookies du navigateur :
Scénario d'attaque Pass-the-Cookie
Voyons comment une attaque Pass-the-Cookie se déroulerait dans un scénario réel.
Supposons que l'utilisateur Tobias soit un administrateur IT. L'une des applications web que Tobias utilise régulièrement est le portail de gestion Microsoft Azure. Étant donné que MFA est activé, lorsque Tobias se connecte à Azure, il doit fournir un code provenant de l'application d'authentification sur son appareil mobile, comme indiqué ci-dessous.
Alors, tant que personne ne vole son iPhone, ses identifiants Azure devraient être en sécurité, n'est-ce pas ? Pas si vite. Supposons que Tobias ait cliqué sur un e-mail de phishing ou que son système ait été compromis par d'autres moyens, et maintenant un attaquant est capable d'exécuter du code dans le contexte utilisateur de Tobias. Tobias n'est PAS administrateur sur son ordinateur portable, donc les dégâts devraient être limités, n'est-ce pas ?
Voyons voir.
Étape 1. Extrayez les cookies.
Comme nous l'avons vu précédemment, tout ce que nous avons à faire pour obtenir les cookies du navigateur de Tobias est d'exécuter cette commande lorsque nous sommes connectés en tant que Tobias :
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
Dans ce cas, nous nous intéressons aux cookies d'authentification Azure, y compris ESTSAUTH, ESTSAUTHPERSISTENT et ESTSAUTHLIGHT. Ces cookies sont facilement accessibles car Tobias a été actif sur Azure récemment :
Étape 2. Transmettez les cookies.
Il peut sembler que puisque nous ne connaissons pas l'identifiant utilisateur ou le mot de passe de Tobias et que nous n'avons pas accès à son appareil mobile, nous ne pouvons pas nous connecter à des applications web comme Azure en tant que Tobias.
Mais puisque nous avons ses cookies, il suffit de les transférer dans une autre session pour prendre le contrôle du compte de Tobias. C'est assez simple à faire : nous ouvrons simplement Chrome sur un autre serveur et utilisons l'interface « Inspecter » pour insérer un cookie.
2.1. Tout d'abord, nous inspectons la session volée :
2.2. Ensuite, nous naviguons vers Application > Cookies. Comme vous pouvez le voir, les cookies actuels n'incluent pas ESTSAUTH ou ESTSAUTHPERSISTENT :
2.3. Nous ajoutons le cookie ESTSAUTH ou If ESTSAUTHPERSISTENT. (Si ESTSAUTHPERSISTENT est disponible, il est préféré car il est généré par l'option « Rester connecté ».)
2.4. Nous rafraîchissons la page et maintenant nous sommes connectés à Azure en tant que Tobias — aucune authentification multifacteur requise !
Atténuer vos risques
Les attaques Pass-the-Cookie représentent une menace sérieuse pour plusieurs raisons. Premièrement, une attaque Pass-the-Cookie ne nécessite pas de droits administratifs ; tous les utilisateurs ont accès pour lire et déchiffrer leurs propres cookies de navigateur, qu'ils aient ou non des droits privilégiés sur leurs postes de travail. Deuxièmement, l'attaquant n'a pas besoin de connaître l'ID utilisateur ou le mot de passe du compte compromis, donc cette attaque est possible avec un minimum d'informations. Troisièmement, nous avons même réussi à réaliser des attaques Pass-the-Cookie après la fermeture du navigateur.
Une manière de minimiser le risque de vol de cookies est de supprimer plus souvent les cookies des utilisateurs. Cependant, cela les obligera à se réauthentifier chaque fois qu'ils accèdent à un site, ce qui les frustrera et les incitera à ne jamais fermer leur navigateur pour éviter de perdre leurs cookies.
Une meilleure stratégie consiste à mettre en œuvre des produits de surveillance de l'authentification et de détection des menaces comme ceux-ci. Netwrix Threat Manager peut détecter rapidement les comptes utilisés de manière inattendue afin que vous puissiez rapidement mettre fin à l'activité malveillante.
FAQ
Partager sur
Voir les attaques de cybersécurité associées
Abus des autorisations d'application Entra ID – Fonctionnement et stratégies de défense
Modification de AdminSDHolder – Fonctionnement et stratégies de défense
Attaque AS-REP Roasting - Fonctionnement et stratégies de défense
Attaque Hafnium - Fonctionnement et stratégies de défense
Attaques DCSync expliquées : Menace pour la sécurité d'Active Directory
Attaque Pass the Hash
Comprendre les attaques Golden Ticket
Attaque des comptes de service gérés par groupe
Attaque DCShadow – Fonctionnement, exemples concrets et stratégies de défense
Injection de prompt ChatGPT : Comprendre les risques, exemples et prévention
Attaque d'extraction de mot de passe NTDS.dit
Attaque Kerberoasting – Fonctionnement et stratégies de défense
Explication de l'attaque Pass-the-Ticket : Risques, Exemples et Stratégies de Défense
Attaque par pulvérisation de mots de passe
Attaque d'extraction de mot de passe en clair
Vulnérabilité Zerologon expliquée : Risques, Exploits et Atténuation
Attaques de rançongiciels sur Active Directory
Déverrouillage d'Active Directory avec l'attaque Skeleton Key
Mouvement latéral : Qu'est-ce que c'est, comment ça fonctionne et préventions
Attaques de l'homme du milieu (MITM) : ce qu'elles sont et comment les prévenir
Attaque Silver Ticket
4 attaques de compte de service et comment s'en protéger
Pourquoi PowerShell est-il si populaire auprès des attaquants ?
Comment prévenir les attaques de logiciels malveillants d'affecter votre entreprise
Compromettre SQL Server avec PowerUpSQL
Qu'est-ce que les attaques de Mousejacking et comment se défendre contre elles
Vol de credentials avec un fournisseur de support de sécurité (SSP)
Attaques par tables arc-en-ciel : leur fonctionnement et comment se défendre
Un regard approfondi sur les attaques par mot de passe et comment les arrêter
Reconnaissance LDAP
Qu'est-ce que le Credential Stuffing ?
Attaque Golden SAML