Automatizando a destruição do locatário Entra ID com IA
May 21, 2026
A automação do navegador assistida por IA pode transformar o Microsoft Graph Explorer em uma interface destrutiva de administração do Entra ID quando uma conta conectada já possui acesso privilegiado. Usando Claude para Chrome, JavaScript do lado do navegador e solicitações em lote do Microsoft Graph, ações destrutivas como exclusão de usuários, desativação de contas, redefinição de senhas, revogação de sessões e remoção de políticas de Acesso Condicional podem ser automatizadas diretamente da sessão do navegador.
Como a IA pode automatizar a destruição de tenants Entra ID através do Microsoft Graph, Graph Explorer e automação no lado do browser
Este artigo demonstra como a automação de browser assistida por IA pode ser usada para conduzir operações destrutivas no Microsoft Graph contra um tenant Entra ID quando a conta autenticada dispõe das permissões necessárias.
Como a IA automatiza o Graph Explorer para a destruição de tenants Entra ID
O Microsoft Graph Explorer é uma ferramenta baseada no browser para enviar pedidos à API do Microsoft Graph contra um tenant Entra ID. É normalmente utilizada por administradores e programadores para testar chamadas de API, inspeccionar respostas e perceber que permissões são necessárias. Neste artigo, utilizo-a para demonstrar como o acesso ao Microsoft Graph pode ser explorado para operações destrutivas automatizadas num tenant, e por que razão esses mesmos fluxos de trabalho se tornam perigosos quando combinados com um assistente de IA capaz de controlar o browser.
Exemplos reais de destruição de tenants
A destruição de tenants já não se limita à cifragem de servidores com ransomware. Em março de 2026, a Stryker divulgou um ciberataque que perturbou o seu ambiente Microsoft, e a Sygnia reportou posteriormente que o atacante utilizou o Microsoft Intune para apagar a infraestrutura virtual interna, incluindo portáteis, dispositivos móveis e servidores virtuais.
Em agosto de 2025, a Microsoft documentou o grupo Storm-0501 a utilizar técnicas de ransomware baseadas na cloud depois de migrar de um Active Directory on-premises para o Entra ID. O agente obteve privilégios de Global Administrator, elevou o acesso a subscrições Azure e eliminou dados na cloud e recursos de backup para impedir a recuperação antes de exigir resgate.
Utilizar o Claude for Chrome, as Developer Tools e o JavaScript no lado do browser para automatizar acções no Microsoft Graph
O Claude for Chrome integra o Claude directamente no browser, onde pode interagir com páginas web, inspeccionar elementos da interface e ajudar a executar acções através da mesma interface que um utilizador normalmente usaria de forma manual. Quando combinado com as Chrome Developer Tools e JavaScript no lado do browser, ultrapassa o simples prompting e torna possível automatizar fluxos de trabalho dentro do Graph Explorer, incluindo operações destrutivas do Microsoft Graph contra um tenant Entra ID.
Pré-requisitos
Reproduza este procedimento apenas num tenant de teste que lhe pertença e que esteja preparado para perder. Não execute operações destrutivas no Graph num tenant de produção ou em qualquer ambiente onde não tenha autorização explícita.
Neste artigo, descrevo como utilizei o Claude for Chrome para automatizar operações destrutivas no Entra ID directamente dentro do Microsoft Graph Explorer, recorrendo a JavaScript no lado do browser para tornar o fluxo de trabalho rápido e sem intervenção manual.
Antes de começar, abra o Microsoft Graph Explorer num browser com uma sessão activa de Global Administrator no seu tenant de teste e mantenha o Claude for Chrome aberto.
Executar uma destruição controlada de tenant num tenant de teste
Antes de tocar em qualquer coisa, pedi ao Claude para enumerar quatro coisas em simultâneo: todos os membros das funções de directório, todos os registos de aplicações Entra ID, todas as políticas de acesso condicional e todos os dispositivos registados. O que tornou este processo rápido foi a forma como o Claude obteve o token da API do Graph. Em vez de me pedir para o copiar a partir das ferramentas de programador do browser, aplicou um patch à função fetch nativa do browser com um pequeno interceptor.
window._originalFetch = window.fetch;
window.fetch = function (...args) {
const url = args[0];
const options = args[1] || {};
if (url.includes("graph.microsoft.com")) {
const auth = (options.headers || {})["Authorization"];
if (auth) {
window._capturedToken = auth;
}
}
return window._originalFetch.apply(this, args);
};
Da próxima vez que o Graph Explorer efectuou uma chamada à API, este interceptor capturou silenciosamente o token Bearer directamente dos cabeçalhos do pedido. O Claude utilizou então esse token para disparar as quatro consultas de enumeração ao mesmo tempo através de Promise.all(), pelo que, em vez de esperar que quatro chamadas separadas terminassem uma após a outra, todas correram em paralelo e os resultados regressaram quase instantaneamente. Para as funções de directório especificamente, obteve primeiro a lista de funções activas e depois obteve os membros de cada função em simultâneo, em vez de os percorrer um de cada vez. O resultado final foi um inventário completo de todo o tenant em poucos segundos. O token capturado inicialmente dispunha apenas de scopes de leitura, pelo que qualquer operação de escrita ou eliminação devolvia um 403. O Claude tratou de tudo através do separador Modify Permissions integrado no Graph Explorer.
Para cada operação que exigia um scope de permissão mais elevado, o Claude navegou no Graph Explorer até ao endpoint relevante com o método HTTP correcto, mudou para o separador Modify Permissions, que apresentou automaticamente os scopes necessários, e clicou em Consent.
Após cada consentimento, accionou uma nova acção Run Query para que o Graph Explorer emitisse um novo token com os scopes actualizados, e voltou a capturá-lo através do mesmo interceptor. As permissões a que deu consentimento foram Application.ReadWrite.All para eliminar registos de aplicações, Policy.ReadWrite.ConditionalAccess para eliminar políticas de Conditional Access, RoleManagement.ReadWrite.Directory para remover contas das funções de directório e User.DeleteRestore.All para eliminar contas de utilizador.
Com as permissões necessárias presentes no token de acesso, o Claude executou um único bloco de JavaScript que efectuou as acções destrutivas em paralelo. O mesmo padrão foi utilizado para cada tipo de objecto: obter a lista completa, mapear cada objecto para um pedido DELETE, executar os pedidos com Promise.all() e registar o estado HTTP para cada resposta.
Estes registos de auditoria do Entra ID mostram a limpeza a decorrer em tempo real. Às 08:06:19, foram registadas várias operações de eliminação como bem-sucedidas, incluindo a eliminação de dispositivos, a eliminação de aplicações e a remoção de service principals.
Esta captura de ecrã mostra o Claude for Chrome a gerar o bloco de JavaScript à direita, enquanto a mesma lógica é executada nas Chrome Developer Tools dentro da sessão do Graph Explorer. A saída da consola mostra que o script encontrou 2.551 utilizadores, marcou 2.550 para eliminação, protegeu 1 conta e começou então a devolver respostas 204 bem-sucedidas para as operações de eliminação.
Aqui mostra-se a fase de eliminação de utilizadores do fluxo de trabalho. Às 08:14:05, foram registados vários eventos Delete user em Core Directory e marcados como Success.
A título de exemplo, restaurei parcialmente alguns dos utilizadores eliminados, enquanto outros permaneceram no contentor de itens eliminados. Em seguida, utilizei o Claude para automatizar a limpeza, gerando JavaScript no lado do browser capaz de eliminar permanentemente os restantes utilizadores eliminados directamente a partir da sessão do browser.
Estes registos de auditoria mostram o passo de eliminação permanente. O Entra ID registou vários eventos Hard Delete user em Core Directory e UserManagement, todos marcados como Success. Esta fase é diferente da fase anterior de soft-delete. Estes utilizadores foram removidos do contentor de itens eliminados, o que significa que já não eram recuperáveis através do fluxo normal de restauro do Entra ID.
Tenant lockout
Um tenant lockout ocorre quando uma organização perde o acesso administrativo ao seu tenant Microsoft 365 ou Entra ID. Pode acontecer quando todas as contas Global Administrator ou equivalentes são eliminadas, desactivadas, bloqueadas por uma política de Conditional Access defeituosa ou protegidas por configurações de MFA que ninguém consegue satisfazer. Nesse momento, o tenant pode ainda existir, mas a organização já não consegue gerir utilizadores, aplicações, políticas, dispositivos ou definições de recuperação.
Em vez de eliminar objectos do tenant, o fluxo de trabalho seguinte centra-se no tenant lockout através da reposição de palavras-passe dos utilizadores, da revogação de sessões activas e da desactivação de todas as contas.
Nos bastidores, o Claude utilizou o mesmo token de acesso do lado do browser obtido na sessão do Graph Explorer e construiu pedidos $batch do Microsoft Graph a partir do browser. Em vez de enviar um pedido por utilizador manualmente, agrupou os utilizadores em lotes de 20 e enviou três operações em lote por grupo: uma para repor a palavra-passe, uma para revogar as sessões de início de sessão activas e uma para desactivar a conta.
Cada lote foi enviado para https://graph.microsoft.com/v1.0/$batch com o token capturado no cabeçalho Authorization. Isto permitiu que o fluxo de trabalho fosse executado rapidamente e de forma repetida a partir do browser, enquanto o Graph processava as acções de bloqueio de conta em massa.
Os registos de auditoria mostram o passo de desactivação de contas a reflectir-se no Entra ID. Vários utilizadores foram desactivados dentro da mesma curta janela temporal, e cada evento foi registado em Core Directory com o estado Success. Isto confirma que o fluxo de trabalho de lockout efectuou alterações reais no tenant de teste.
Vê-se aqui uma actualização em massa do timestamp StsRefreshTokenValidFrom em várias contas de utilizador dentro de uma janela muito curta. Esta actividade é actualizada quando é accionada uma acção Revoke Refresh Tokens, que invalida todos os refresh tokens existentes para os utilizadores afectados e força uma nova autenticação.
Conclusão
Este exemplo mostra quão poucas ferramentas são necessárias uma vez que as permissões correctas já estão disponíveis. Com apenas um browser, o Graph Explorer, um assistente de IA baseado no browser e JavaScript no lado do browser, foi possível automatizar operações destrutivas no Entra ID sem escrever uma ferramenta autónoma, compilar código ou executar scripts externos. O importante não é que a IA tenha criado por si só um novo vector de ataque. O verdadeiro perigo é que a IA torna os fluxos de trabalho administrativos existentes mais rápidos, mais fáceis de encadear e mais fáceis de executar através do browser. O JavaScript no lado do browser actuou como camada de automação, transformando acções manuais do Graph Explorer em chamadas de API repetíveis que podiam ser executadas em paralelo. Descoberta de permissões, consentimento, actualização de tokens, pedidos ao Graph, processamento em lote, eliminação, reposição de palavras-passe, revogação de sessões e desactivação de contas podiam ser todos conduzidos a partir da mesma sessão do browser.
Compartilhar em
Saiba Mais
Sobre o autor
Huy Kha
Diretor de Pesquisa de Segurança
Saiba mais sobre este assunto
Governe o agente de IA como a identidade que ele é
O código de erro é a pista
O que é DLL hijacking e por que seu novo plugin de IA pode ser a forma mais fácil de entrar
Fizeram tudo certo em higiene de identidades. E sofreram 4 vezes mais violações
Mitos e o custo de atacar