Az - Conditional Access Policies & MFA Bypass
Last updated
Last updated
Apprenez et pratiquez le hacking AWS :Formation HackTricks AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : Formation HackTricks GCP Red Team Expert (GRTE)
Les politiques d'accès conditionnel Azure sont des règles établies dans Microsoft Azure pour appliquer des contrôles d'accès aux services et applications Azure en fonction de certaines conditions. Ces politiques aident les organisations à sécuriser leurs ressources en appliquant les bons contrôles d'accès dans les bonnes circonstances. Les politiques d'accès conditionnel définissent essentiellement Qui peut accéder à Quoi depuis Où et Comment.
Voici quelques exemples :
Politique de risque de connexion : Cette politique pourrait être configurée pour exiger une authentification multi-facteurs (MFA) lorsqu'un risque de connexion est détecté. Par exemple, si le comportement de connexion d'un utilisateur est inhabituel par rapport à son modèle régulier, comme se connecter depuis un pays différent, le système peut demander une authentification supplémentaire.
Politique de conformité des appareils : Cette politique peut restreindre l'accès aux services Azure uniquement aux appareils conformes aux normes de sécurité de l'organisation. Par exemple, l'accès pourrait être autorisé uniquement depuis des appareils ayant un logiciel antivirus à jour ou exécutant une certaine version du système d'exploitation.
Il est possible qu'une politique d'accès conditionnel vérifie certaines informations qui peuvent être facilement falsifiées, permettant un contournement de la politique. Et si, par exemple, la politique était configurée pour MFA, l'attaquant pourra la contourner.
Lors de la configuration d'une politique d'accès conditionnel, il est nécessaire d'indiquer les utilisateurs concernés et les ressources cibles (comme toutes les applications cloud).
Il est également nécessaire de configurer les conditions qui déclencheront la politique :
Réseau : IP, plages IP et emplacements géographiques
Peut être contourné en utilisant un VPN ou un Proxy pour se connecter à un pays ou en réussissant à se connecter depuis une adresse IP autorisée
Risques Microsoft : Risque utilisateur, risque de connexion, risque interne
Plateformes d'appareils : Tout appareil ou sélectionner Android, iOS, Windows phone, Windows, macOS, Linux
Si "Tout appareil" n'est pas sélectionné mais que toutes les autres options sont sélectionnées, il est possible de le contourner en utilisant un user-agent aléatoire non lié à ces plateformes
Applications clientes : Les options sont "Navigateur", "Applications mobiles et clients de bureau", "Clients Exchange ActiveSync" et "Autres clients"
Pour contourner la connexion avec une option non sélectionnée
Filtrer par appareils : Il est possible de générer une règle liée à l'appareil utilisé
Flux d'authentification : Les options sont "Flux de code d'appareil" et "Transfert d'authentification"
Cela n'affectera pas un attaquant à moins qu'il n'essaie d'abuser de l'un de ces protocoles dans une tentative de phishing pour accéder au compte de la victime
Les résultats possibles sont : Bloquer ou Accorder l'accès avec des conditions potentielles comme exiger MFA, appareil conforme…
Il est possible de définir une condition basée sur la plateforme d'appareil (Android, iOS, Windows, macOS...), cependant, cela est basé sur le user-agent donc il est facile de contourner. Même en rendant toutes les options obligatoires pour MFA, si vous utilisez un user-agent qui n'est pas reconnu, vous pourrez contourner le MFA ou le blocage :
Il suffit de faire en sorte que le navigateur envoie un user-agent inconnu (comme Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile
) pour ne pas déclencher cette condition.
Vous pouvez changer le user agent manuellement dans les outils de développement :
Ou utiliser une extension de navigateur comme celle-ci.
Si cela est défini dans la politique conditionnelle, un attaquant pourrait simplement utiliser un VPN dans le pays autorisé ou essayer de trouver un moyen d'accéder depuis une adresse IP autorisée pour contourner ces conditions.
Il est possible de configurer des politiques d'accès conditionnel pour bloquer ou forcer par exemple MFA lorsqu'un utilisateur essaie d'accéder à une application spécifique :
Pour essayer de contourner cette protection, vous devriez voir si vous pouvez vous connecter uniquement à une application. L'outil AzureAppsSweep a des dizaines d'ID d'application codés en dur et essaiera de se connecter à eux et vous informera et vous donnera même le token si cela réussit.
Pour tester des ID d'application spécifiques dans des ressources spécifiques, vous pourriez également utiliser un outil tel que :
De plus, il est également possible de protéger la méthode de connexion (par exemple, si vous essayez de vous connecter depuis le navigateur ou depuis une application de bureau). L'outil Invoke-MFASweep effectue certaines vérifications pour essayer de contourner ces protections également.
L'outil donkeytoken pourrait également être utilisé à des fins similaires bien qu'il semble non maintenu.
L'outil ROPCI peut également être utilisé pour tester ces protections et voir s'il est possible de contourner les MFA ou les blocages, mais cet outil fonctionne d'une perspective whitebox. Vous devez d'abord télécharger la liste des applications autorisées dans le locataire, puis il essaiera de se connecter à celles-ci.
Une option Azure MFA est de recevoir un appel au numéro de téléphone configuré où il sera demandé à l'utilisateur de envoyer le caractère #
.
Comme les caractères ne sont que des tons, un attaquant pourrait compromettre le message de messagerie vocale du numéro de téléphone, configurer comme message le ton de #
et ensuite, lors de la demande de MFA, s'assurer que le téléphone de la victime est occupé (en l'appelant) afin que l'appel Azure soit redirigé vers la messagerie vocale.
Les politiques demandent souvent un appareil conforme ou MFA, donc un attaquant pourrait enregistrer un appareil conforme, obtenir un jeton PRT et contourner ainsi le MFA.
Commencez par enregistrer un appareil conforme dans Intune, puis obtenez le PRT avec :
Trouvez plus d'informations sur ce type d'attaque sur la page suivante :
Ce script récupère des identifiants d'utilisateur et vérifie s'il peut se connecter à certaines applications.
Ceci est utile pour voir si vous n'êtes pas obligé de faire de l'authentification multifacteur pour vous connecter à certaines applications que vous pourriez ensuite abuser pour escalader les privilèges.
Obtenez toutes les politiques.
MFASweep est un script PowerShell qui tente de se connecter à divers services Microsoft en utilisant un ensemble de credentials fourni et essaiera d'identifier si MFA est activé. Selon la façon dont les politiques d'accès conditionnel et d'autres paramètres d'authentification multi-facteurs sont configurés, certains protocoles peuvent finir par être laissés en facteur unique. Il dispose également d'une vérification supplémentaire pour les configurations ADFS et peut tenter de se connecter au serveur ADFS sur site s'il est détecté.
Cet outil a aidé à identifier les contournements MFA et à abuser des API dans plusieurs locataires AAD de production, où les clients AAD croyaient avoir MFA appliqué, mais l'authentification basée sur ROPC a réussi.
Vous devez avoir les autorisations pour lister toutes les applications afin de pouvoir générer la liste des applications à brute-forcer.
Donkey token est un ensemble de fonctions qui visent à aider les consultants en sécurité qui doivent valider les politiques d'accès conditionnel, les tests pour les portails Microsoft activés 2FA, etc..
Testez chaque portail s'il est possible de se connecter sans MFA :
Parce que le portail Azure n'est pas contraint, il est possible de rassembler un jeton à partir de l'endpoint du portail pour accéder à tout service détecté par l'exécution précédente. Dans ce cas, Sharepoint a été identifié, et un jeton pour y accéder est demandé :
Supposons que le jeton ait la permission Sites.Read.All (de Sharepoint), même si vous ne pouvez pas accéder à Sharepoint depuis le web en raison de MFA, il est possible d'utiliser le jeton pour accéder aux fichiers avec le jeton généré :
Apprenez et pratiquez le hacking AWS :HackTricks Formation Expert Red Team AWS (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Formation Expert Red Team GCP (GRTE)