Plateforme
23 septembre 2020 Bonnes pratiques Vlad
Contourner l'authentification forte d'Office 365 (MFA) en 3 lignes (et la corriger đ)
Ce contenu vous plait
Partagez-le sur les réseaux
Avant dâentrer dans le vif du sujet, je dois juste expliquer rapidement quelques notions.
Authentification Forte
Lâauthentification forte est une authentification rĂ©alisĂ©e avec un identifiant (login, mailâŠ) et, au moins, deux facteurs diffĂ©rents parmi :
- Ce que je sais (mon mot de passe, une phraseâŠ) ;
- Ce que je suis (biomĂ©trie comme : empreinte, rĂ©tine, haleine fĂ©tideâŠ)
- Ce que je sais faire (signature, geste codĂ© https://twitter.com/mynameisv_/status/1258372512628555779âŠ) ;
- Ce que je possĂšde (un tĂ©lĂ©phone recevant un code par SMS, un smartphone recevant une notification, un petit jeton gĂ©nĂ©rant des codes Ă usage unique ou OTP dĂ©rivĂ©s du temps et dâun secret, ou la mĂȘme chose mais en application sur un smartphoneâŠ) ;
- Lâendroit oĂč je suis (gĂ©olocalisation) ;
- ⊠Lâauthentification forte est souvent appelĂ©e en franglais « Multi Factor Authentication / MFA » et parfois aussi appelĂ© « Two-Factor Authentication / 2FA », une sous classe du MFA limitĂ© Ă lâutilisation de 2 facteurs. Mais par abus de language, le MFA concerne gĂ©nĂ©ralement lâauthentification forte avec 2 facteurs.
Pour plus des détails, je vous renvoi vers le dieu Wikipédia : https://fr.wikipedia.org/wiki/Authentification_forte
Une fois authentifiĂ© sur un systĂšme (site web, API, applicationâŠ), en gĂ©nĂ©ral, vous rĂ©cupĂ©rez un identifiant de session (cookie, jeton, JWT, PHPSESSIONIDâŠ) valide pendant une durĂ©e donnĂ©e, renvoyĂ© Ă chaque actions, afin dâĂ©viter de se rĂ©authentifier.
Oui, il yâa beaucoup de « ⊠» đ.
Il ne faut donc pas confondre :
- Authentification et Identification, lâauthentification est une identification avec une preuve sous la forme dâun authentifiant (comme par exemple un mot de passe) ;
- Authentification simple (un login et un mot de passe) et authentification forte ;
- Authentification forte « de merde » avec deux mots de passe et véritable authentification forte.
Les attaques sur Office 365
Office 365 câest votre mail (et pleins dâautres choses) gĂ©rĂ© chez Microsoft, par Microsoft en SaaS et que vous payez tous les mois sans amortissement possible.
La solution est adaptĂ©e Ă un grand nombre dâentreprises (hors secteur trĂšs concurrentiel ou secret), fonctionne vraiment bien, simplifie la gestion de votre mail (et dâune partie du systĂšme dâinformation comme SharePoint), permet dâavoir un niveau de sĂ©curitĂ© souvent plus Ă©levĂ© que lorsque le mail Ă©tait gĂ©rĂ© en interne.
Le problĂšme est que les cyberdĂ©linquants attaquent massivement les entreprises utilisant Office 365 car cela donne un point dâentrĂ©e quasi unique permettant dâutiliser les mĂȘmes outils dâattaque avec des techniques simples :
- Password spraying, qui consiste Ă essayer de sâauthentifier sur pleins de comptes mais avec trĂšs peu de mots de passe comme « NomEntreprise2020! », permettant de ne pas bloquer les comptes avec trop de tentatives en Ă©chec ;
- Password Reuse, qui consiste à récupérer des fuites (leak) publiques contenant des utilisateurs ainsi que leur mot de passe et à essayer ces mots de passe, en ayant précédemment retrouvé les entreprise de ces utilisateurs, leur mail pro⊠;
- Hameçonnage (phishing), qui consiste Ă envoyer des mails contenant un lien vers un faux formulaire dâauthentification Office 365 afin de voler lâidentifiant et le mot de passe des utilisateurs.
Le MFA est la solution Ă tous vos problĂšmes⊠ou presqueâŠ
Beaucoup dâentreprises se font compromettre des comptes Office 365 du fait de mots de passe faibles, prĂ©visibles ou rĂ©utilisĂ©s. En gĂ©nĂ©ral, cela donne des compromissions de comptes par dizaines chaque semaine, coĂ»tant beaucoup de temps et dâĂ©nergie aux gens de la sĂ©curitĂ©.
La solution la plus simple pour bloquer ces attaques est la mise en place de lâauthentification forte. MĂȘme si lâattaquant trouve votre mot de passe, il sera bloquĂ© par la demande du second facteur dâauthentification.
Pour bĂ©nĂ©ficier du MFA sur Office 365, Ă ce jour, il faut juste une licence (plan) Microsoft 365 (ou de lâAzure AD Premium P1 ou P2). Vous disposez de nombreuses documentations chez Microsoft sur les diffĂ©rentes maniĂšres dâactiver le MFA, la principale Ă©tant ici : https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-userstates
A noter quâen bonus, certaines entreprises utilisent en interne un identifiant (I5178Y1, X171819, abricot pour Alexandre BRICOTâŠ) mais pas le mail complet. Si lâentreprise utilise une authentification Office 365 reposant sur un rĂ©fĂ©rentiel dâidentitĂ©s conservĂ© en interne (ADFS), lâauthentification forte se fait alors en plusieurs Ă©tapes sur le site web Office 365 :
- Saisie du mail sur le portail ;
- Redirection vers lâADFS ;
- Saisie de lâidentifiant et du mot de passe ;
- Redirection vers Office 365 ;
- Saisie du second facteur dâauthentification. Dans ce cas, si les identifiants internes ne sont pas triviaux, alors lâentreprise dispose presque dâune sorte de sĂ©curitĂ© supplĂ©mentaire đ.
Contourner le MFA
Le MFA câest super mais il est malheureusement possible de le contourner et il sâagit dâune fonctionnalitĂ© !
Par contre, il est toujours nĂ©cessaire de disposer dâun identifiant valide et de son mot de passe (mais si vous saviez le nombre de personnes qui mettent « NomEntreprise2019! » ou 2020, comme mot de passeâŠ).
Généralement, vous utilisez un de ces deux moyens accÚs :
- Votre navigateur, supportant lâauthentification forte par nature (ce qui est vrai et faux, car ce nâest pas le navigateur qui supporte le MFA mais le fait dâaccepter des redirections mais passons, faisons simple) ;
- Votre client lourd comme Outlook, Teams, Word, App Mail sur iOS⊠supportant le MDA et qui fonctionne avec le protocole Outlook Anywhere (du RCP over HTTP avec ou sans chiffrement SSL/TLS mais câest mieux avec đ) ou avec le protocole Messaging Application Programming Interface / MAPI (protocole basĂ© sur SOAP et contenant lâXML immonde de Microsoft « over HTTP » avec toute la doc ici : https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxprotlp/30c90a39-9adf-472b-8b5b-03c282304a83?redirectedfrom=MSDN)){:target="_blank"} Microsoft Ă©tant le spĂ©cialiste de la rĂ©trocompatibilitĂ©, tout naturellement, Office 365 support un trÚÚÚÚÚÚÚÚs grand nombre de moyens dâaccĂšs au mail (je simplifie pour Ă©viter de faire des listes Ă rallonge de ce qui peut ĂȘtre accĂ©dĂ© : mail, contacts, calendrier et parfois fichiers, sharepoint, fonctionnalitĂ©s azureâŠ), dont plusieurs ne supportant pas ce fameux MFA, ce qui permet de le contourner.
Vous trouverez dans cet article plusieurs de ces contournements, utilisant MailSniper : https://www.blackhillsinfosec.com/bypassing-two-factor-authentication-on-owa-portals/
Voici la liste des différents protocoles et moyens de contournement :
- Panneau de Configuration Exchange (ECP), il sâagit en fait de la section «options» de Outlook Web Access / OWA, le client web dâOutlook ;
- ActiveSync, lâaccĂšs mobile, utilisĂ© depuis les applications de messagerie natives iPhone / Android ;
- Services Web Exchange (EWS), gĂ©nĂ©ralement utilisĂ© pour lâaccĂšs au contenu de la boĂźte mail ou pour accĂ©der aux informations de disponibilitĂ© du calendrier, mais surtout par Outlook pour Mac ;
- POP et IMAP, les vieux protocoles des années 80 ;
- PowerShell ;
- LâAPI REST, une autre mĂ©thode dâaccĂšs aux boĂźtes mail, qui a (devait ?) ĂȘtre remplacĂ©e par EWS ;
- La dĂ©couverte automatique (Autodiscover), moyen de dĂ©couvrir les options de configuration dâune boite mail. Ici, nous allons nous intĂ©resser Ă EWS, sorti en 2007, basĂ© sur du SOAP et ne supportant que lâauthentification « basic auth », vieux protocole dâauthentification web qui envoie le login et le mot de passe en clair (quasiment). Pour plus de dĂ©tails avec des schĂ©mas, vous pouvez consulter cet article : https://blog.behrouze.com/basic-auth/
A noter que EWS devait ĂȘtre dĂ©prĂ©ciĂ© le 13 octobre 2020 (https://techcommunity.microsoft.com/t5/exchange-team-blog/upcoming-changes-to-exchange-web-services-ews-api-for-office-365/ba-p/608055) mais du fait du COVID, sa fin est dĂ©calĂ©e Ă mi-2021 (cf. dernier commentaire de lâarticle). Ceci dans le but de privilĂ©gier des protocoles modernes comme OAuth 2.0 (je vais faire un article prochainement sur OAuth, SAML, OpenID ConnectâŠ).
Voici mon compte chez un client avec comme MFA lâenvoi dâun code par SMS :
Et voici comment contourner le MFA en 3 lignes (et encore, je suis gĂ©nĂ©reux sur le comptage), avec lâutilisation de lâoutil MailSniper (https://github.com/dafthack/MailSniper) qui par dĂ©faut va chercher les mails contenant « password », « creds »⊠:
powershell -exec bypass
Import-Module .\MailSniper.ps1
Invoke-SelfSearch -Mailbox vladimir.kolla@****.com -ExchHostname outlook.office365.com -remote
En 1 ligne pour sâamuser :
powershell -exec bypass -c âImport-Module .\MailSniper.ps1; Invoke-SelfSearch -Mailbox vladimir.kolla@****.com -ExchHostname outlook.office365.com -remote;â
Cela donne lâouverture dâune fenĂȘtre pour demander (Ă nouveau) le mail et surtout le mot de passe, mais pas de second facteur :
Puis la magie opĂšre, je suis connectĂ© Ă mon mail en contournant le MFA et lâoutil cherche les mots clefs dans mes mails (je mâĂ©tais envoyĂ© des mails avec le mot « password » pour avoir un rĂ©sultat) :
Vous pouvez Ă©galement le faire manuellement en PowerShell, voici un exemple (crado) listant les titres des 200 premiers mails de chaque boite mail :
Nan mais mes experts en détection vont détecter ta technique de rebus des enfers !
Avoir des logs câest bien, les regarder câest mieux.
Par contre, comme nous opĂ©rons dans le monde de la sorcellerie, si vous utilisez lâoutil dâanalyse de logs CloudAppSec de Microsoft, vous ne verrez pas ces accĂšs.
Câest beau !
De ce que jâai compris, cette catĂ©gorie dâaccĂšs est filtrĂ©e en amont et nâapparait pas dans les outils de sĂ©curitĂ© de Microsoft pour ne pas polluer la console. Donc soit vous faites activer ce quâil faut pour et serez noyez dans des logs inutiles soit⊠euh⊠Joker !
Donc en lâĂ©tat, si quelquâun utilise cette technique et vole tous les mails dâun utilisateur, cela sera quasiment invisible.
Pour voir ces accĂšs, il faut aller dans le portail dâadministration Azure (https://portal.azure.com) > puis dans :
Azure Active Directory
Sign-Ins (oui, le truc Ă gauche, tout en bas, presque cachĂ©, comme sâils avaient honteđ)
Créer un filtre « Client App » avec le bouton « Add Filter »
ParamĂ©trer ce filtrer pour sĂ©lectionner « Exchange Web Services » (car dans mon cas jâai utilisĂ© EWS mais sinon, il faudrait sĂ©lectionner tous les moyens de contournement citĂ©s plus haut)
Et lĂ , enfin, sous vos yeux Ă©bahis, vous pouvez visualiser les utilisateurs utilisant lĂ©gitimement un protocole qui sera bientĂŽt dĂ©prĂ©ciĂ© ou ⊠des cybercriminels Tadjik du sud de la CorĂ©e du nord de la CIA (Ă noter que jâai ajoutĂ© un filtre nâaffichant que les succĂšs) :
Contre-mesures
Tout dâabord, comme dit plus haut, Microsoft dĂ©prĂ©cie progressivement tous ces vieux moyens dâaccĂšs avec un fort risque de casser des trucs mais câest votre problĂšme, pas le leur : << Welcome to the jungleCloud !!! >>
En attendant, vous devrez crĂ©er une stratĂ©gies dâaccĂšs conditionnels, appliquĂ©e Ă tous les utilisateurs et bloquant ces vieux accĂšs. Par contre, pensez bien Ă lâactiver car rĂ©cemment, malgrĂ© un accompagnement de Microsoft, un « none » a Ă©tĂ© mis au lieu dâun « All cloud apps » ce qui permettait de continuer Ă contourner le MFA đ :
A noter aussi que lâactivation de la stratĂ©gie peut mettre 24h Ă ĂȘtre appliquĂ© (cf. commentaires) : https://techcommunity.microsoft.com/t5/exchange-team-blog/modern-auth-and-unattended-scripts-in-exchange-online-powershell/ba-p/1497387