Le code de réunion qui était une connexion : traquer le phishing par device code
Le défi
Une invitation Teams piégée donnait un code. Traque les connexions device code et leur suite. Nomme le compte que l'attaquant contrôle.
Ce que tu vas apprendre
- Expliquer comment le flux OAuth device code peut être détourné par phishing
- Lire les champs d'un journal de connexion Entra ID : protocole, appli, IP, appareil, code d'erreur
- Pivoter d'une connexion deviceCode vers ce que le même compte a fait ensuite
- Distinguer la connexion légitime d'un appareil de salle de réunion d'une connexion piégée par phishing
- Lister les contrôles : accès conditionnel, révocation des jetons, alertes
Compétences testées
Prérequis
- Ce qu'est la MFA
- Lire des événements de logs tabulaires
Comment ça marche
L'OAuth 2.0 device authorization grant (RFC 8628) permet à un appareil sans clavier, comme une smart TV ou un panneau de salle de réunion, de se connecter : l'appareil affiche un code court, tu le saisis sur microsoft.com/devicelogin depuis ton propre ordinateur et tu t'y connectes, puis l'appareil, qui interrogeait Entra ID en boucle, reçoit les jetons.
Rien ne relie le code à la personne qui le tape. Dans le phishing par device code, l'attaquant lance lui-même le flux et envoie le code sous forme d'invitation de réunion ou de message de chat, tant qu'il est frais (un code expire au bout d'environ 15 minutes). La victime se connecte sur la vraie page de Microsoft avec son vrai mot de passe et sa MFA, et les jetons vont au script de l'attaquant. Microsoft a rapporté que Storm-2372 le faisait en 2025 avec de fausses invitations Teams, puis via le Microsoft Authentication Broker pour que la session volée puisse enregistrer un appareil.
Dans le journal de connexion, cela donne deux lignes. La ligne deviceCode est le navigateur de la victime qui valide le code, donc elle affiche son IP et son appareil habituels. L'échange du jeton arrive quelques secondes plus tard depuis l'endroit où tourne l'attaquant, avec un client qui n'est pas un navigateur. Associer les deux (même utilisateur, même appli, même session) est la détection.
Erreurs fréquentes
- Répondre [email protected]. C'est le panneau Teams de la salle Harbour. Un admin a tapé son code sur un portable à 09:51 et le panneau a échangé le jeton depuis l'IP du bureau quatre secondes plus tard : le flux device code utilisé exactement comme prévu.
- S'arrêter à la ligne deviceCode. La validation de Lena vient de son propre Edge, sur l'IP du bureau, et la MFA est passée. La compromission n'apparaît que dans les lignes qui la suivent depuis Francfort.
- Répondre avec une cible de password spray. Les lignes ropc de São Paulo sont un spray qui a échoué : chacune est l'erreur 50126, nom d'utilisateur ou mot de passe invalide.
- Signaler sara.jansen. Elle voyage : Lisbonne, un navigateur normal, et une demande de MFA normale (50074) suivie d'un succès.
- Répondre avec l'IP de l'attaquant. La question demande quel compte a été pris.
Comment s'en protéger
- Bloque le flux device code avec une politique d'accès conditionnel (Conditions, Flux d'authentification), en excluant seulement les salles de réunion et les appareils partagés qui en ont besoin.
- Alerte quand une session device code est utilisée depuis une IP, un pays ou un user agent différent de celui de la validation, et sur les connexions deviceCode vers le Microsoft Authentication Broker.
- En cas d'alerte, révoque les sessions et les jetons d'actualisation de l'utilisateur (
revokeSignInSessions), réinitialise le mot de passe, supprime tout appareil enregistré par l'attaquant et vérifie les accès à la boîte mail. - Explique au personnel qu'aucune invitation de réunion ne demande jamais de taper un code sur une page de connexion Microsoft.