
Un outil pour vérifier si MFA est activé sur plusieurs services Microsoft.
MFASweep est un script PowerShell qui tente de se connecter à divers services Microsoft en utilisant un ensemble d'identifiants fourni et essaie de déterminer si l'authentification multifacteur (MFA) est activée. Selon la configuration des politiques d'accès conditionnel et d'autres paramètres d'authentification multifacteur, certains protocoles peuvent rester à facteur unique. Il inclut également une vérification supplémentaire pour les configurations ADFS et peut tenter de se connecter au serveur ADFS local s'il est détecté.
Actuellement, MFASweep peut se connecter aux services suivants :
AVERTISSEMENT : Ce script tente de se connecter au compte fourni ONZE (11) fois différentes (12 si vous incluez ADFS). Si vous avez saisi un mot de passe incorrect, cela peut verrouiller le compte.
Pour plus d'informations, consultez l'article de blog ici : Exploiter les incohérences MFA sur les services Microsoft


Cette commande utilise les identifiants fournis et tente de s'authentifier auprès de l'API Microsoft Graph, de l'API Azure Resource Manager, des services web Exchange Microsoft 365, du portail web Microsoft 365 avec 7 agents utilisateur différents, et d'Active Sync Microsoft 365. Si une méthode d'authentification réussit, les jetons et/ou cookies seront écrits dans AccessTokens.json. (Actuellement, ne journalise pas les cookies ou jetons pour EWS, ActiveSync et ADFS.)
Invoke-MFASweep -Username [email protected] -Password Winter2026 -WriteTokens
Cette commande s'exécute avec les méthodes d'authentification par défaut et vérifie également ADFS.
Invoke-MFASweep -Username [email protected] -Password Winter2026 -Recon -IncludeADFS
Invoke-MFASweepWebRequest pour fonctionner proprement sur Windows PowerShell 5.1 et PowerShell 7+.AADSTS53003 et signalent les blocages d'accès conditionnel séparément des échecs d'authentification génériques.Invoke-M365WebPortalAuth -UAtype NintendoSwitch.Chaque module individuel peut également être exécuté séparément.
Microsoft Graph API
Invoke-GraphAPIAuth -Username [email protected] -Password Winter2026
Azure Resource Manager API
Invoke-AzureManagementAPIAuth -Username [email protected] -Password Winter2026
Microsoft 365 Exchange Web Services
Invoke-EWSAuth -Username [email protected] -Password Winter2026
Microsoft 365 Web Portal (agent utilisateur Windows)
Invoke-M365WebPortalAuth -Username [email protected] -Password Winter2026 -UAtype Windows
Microsoft 365 Web Portal (agent utilisateur iPhone)
Invoke-M365WebPortalAuth -Username [email protected] -Password Winter2026 -UAtype iPhone
Microsoft 365 Web Portal (Plateforme inconnue / agent utilisateur Nintendo Switch)
Invoke-M365WebPortalAuth -Username [email protected] -Password Winter2026 -UAtype NintendoSwitch
Microsoft 365 Active Sync
Invoke-O365ActiveSyncAuth -Username [email protected] -Password Winter2026
ADFS
Invoke-ADFSAuth -Username [email protected] -Password Winter2026
Plateforme inconnue (Contournement de la politique d'accès conditionnel)
Ce module teste les politiques d'accès conditionnel mal configurées qui n'imposent pas l'authentification multifacteur pour les plateformes d'appareils inconnues. Il utilise une chaîne d'agent utilisateur Nintendo Switch afin qu'Entra ID signale la plateforme et le navigateur comme « Inconnu ».
Invoke-UnknownPlatformAuth -Username [email protected] -Password Winter2026
La fonction Invoke-BruteClientIDs parcourt différents types de ressources et ID clients lors de l'authentification ROPC pour trouver un accès à facteur unique pour diverses combinaisons d'ID clients et de ressources. Si une méthode d'authentification réussit, les jetons et/ou cookies seront écrits dans AccessTokens.json. (Actuellement, ne journalise pas les cookies ou jetons pour EWS, ActiveSync et ADFS)
Invoke-BruteClientIDs -Username [email protected] -Password Winter2026 -VerboseOut
Par défaut, le module Invoke-BruteClientIDs utilise une liste des 10 ressources les plus courantes et des 50 principaux ID clients. Vous pouvez utiliser les indicateurs -FullResourceList et -FullClientIdList pour utiliser les listes intégrées plus grandes de 514 ID clients et 54 ressources.
Invoke-BruteClientIDs -Username [email protected] -Password Winter2026 -FullResourceList -FullClientIdList -VerboseOut