O código de reunião que era um login: caçando phishing por device code
O desafio
Um convite falso do Teams dava um código. Rastreie logins device code e o que veio depois. Diga a conta que o atacante agora controla.
O que você vai aprender
- Explicar como o fluxo OAuth device code pode ser alvo de phishing
- Ler os campos de login do Entra ID: protocolo, app, IP, dispositivo, código de erro
- Partir de um login deviceCode para o que a mesma conta fez em seguida
- Distinguir o login legítimo de um dispositivo de sala de reunião de um login vítima de phishing
- Listar os controles: Acesso Condicional, revogação de tokens, alertas
Habilidades testadas
Pré-requisitos
- O que é MFA
- Leitura de eventos de log em formato tabular
Como funciona
O OAuth 2.0 device authorization grant (RFC 8628) permite que um dispositivo sem teclado, como uma smart TV ou um painel de sala de reunião, faça login: o dispositivo mostra um código curto, você o digita em microsoft.com/devicelogin no seu próprio computador e entra lá, e o dispositivo, que ficou consultando o Entra ID, recebe os tokens.
Nada liga o código à pessoa que o digita. No phishing por device code, o atacante inicia o fluxo por conta própria e envia o código como convite de reunião ou mensagem de chat, enquanto ele ainda é válido (um código expira em cerca de 15 minutos). A vítima entra na página real da Microsoft com a própria senha e MFA, e os tokens vão para o script do atacante. A Microsoft relatou o Storm-2372 fazendo isso em 2025 com convites falsos do Teams e, depois, por meio do Microsoft Authentication Broker, para que a sessão roubada pudesse registrar um dispositivo.
No log de login isso se divide em duas linhas. A linha deviceCode é o próprio navegador da vítima aprovando o código, então mostra o IP e o dispositivo habituais dela. O resgate do token vem segundos depois, de onde o atacante estiver executando, com um cliente que não é um navegador. Combinar as duas (mesmo usuário, mesmo app, mesma sessão) é a detecção.
Erros comuns
- Responder [email protected]. Esse é o painel do Teams da sala Harbour. Um admin digitou o código dele em um notebook às 09:51 e o painel resgatou o token a partir do IP do escritório quatro segundos depois: o fluxo device code usado exatamente como projetado.
- Parar na linha deviceCode. A aprovação da Lena vem do próprio Edge dela, no IP do escritório, e passou pelo MFA. O comprometimento só aparece nas linhas que vêm depois, de Frankfurt.
- Responder um alvo de password spray. As linhas ropc de São Paulo são um spray que falhou: todas com erro 50126, usuário ou senha inválidos.
- Apontar sara.jansen. Ela está viajando: Lisboa, um navegador normal e um prompt de MFA normal (50074) seguido de sucesso.
- Responder o IP do atacante. A pergunta é qual conta foi tomada.
Como se proteger
- Bloqueie o fluxo device code com uma política de Acesso Condicional (Condições, Fluxos de autenticação), excluindo apenas as salas de reunião e os dispositivos compartilhados que precisam dele.
- Crie alertas para quando uma sessão device code for resgatada de um IP, país ou user agent diferente do da aprovação, e para logins deviceCode no Microsoft Authentication Broker.
- Num alerta, revogue as sessões e os refresh tokens do usuário (
revokeSignInSessions), redefina a senha, apague qualquer dispositivo que o atacante tenha registrado e revise o acesso à caixa de e-mail. - Ensine a equipe que nenhum convite de reunião pede para você digitar um código numa página de login da Microsoft.