As organizações continuam implementando serviços baseados na nuvem, uma mudança que levou à adoção mais ampla de ambientes de identidade híbridos que conectam o Active Directory local ao Microsoft Entra ID (antigo Azure AD). Para gerenciar dispositivos nesses ambientes de identidade híbridos, o Microsoft Intune (Intune) surgiu como uma das soluções de gerenciamento de dispositivos mais populares. Como essa plataforma empresarial confiável pode ser facilmente integrada a dispositivos e serviços Active Directory locais, ela se torna um alvo privilegiado para ataques que visam explorar vulnerabilidades como movimentação lateral e execução de código.
Esta pesquisa dará uma visão geral sobre o Intune, como ele está sendo utilizado nas organizações e mostrará como utilizar essa plataforma baseada na nuvem para implementar aplicações personalizadas do Windows e obter a execução de código nos dispositivos do usuário. Além disso, esta pesquisa inclui a divulgação pública de novas regras do Microsoft Sentinel para ajudar os profissionais de segurança a detectar o uso do Intune para movimentação lateral e orientações de reforço de segurança para a plataforma Intune.
Andy Robbins escreveu um excelente artigo em seu blog em 2020 intitulado "Death from Above: Lateral Movement from Azure to On-Prem AD", que aborda como explorar o Intune para implementar um script do PowerShell direcionado a hosts, além de fornecer orientações defensivas para proteção contra esse cenário de ataque. Nossa pesquisa X-Force se baseia na pesquisa de Robbins, mostrando como realizar a execução de código direcionado com o uso de aplicações Windows e como realizar acionamento ad hoc para que os hosts do Windows baixem e executem essas aplicações. Esta pesquisa também inclui regras recém-criadas do Microsoft Sentinel para detectar o uso indevido do Intune para facilitar a movimentação lateral e o aprimoramento das diretrizes para a plataforma Intune.
Chris Thompson lançou uma ferramenta chamada Maestro no DEF CON 32 Demo Labs, que pode ser usada para realizar reconhecimento de usuários e dispositivos via Intune, além de executar comandos por meio de scripts do PowerShell do Intune ou aplicação do Windows a partir de um framework C2. Não deixe de conferir essa ferramenta e a pesquisa do Chris! A pesquisa da X-Force a seguir é diferente, pois mostra como conduzir essa atividade de movimento lateral por meio da interface web do Microsoft Intune e como empacotar vários arquivos para serem implementados como parte de uma aplicação personalizada do Windows para execução de código. Além disso, esta pesquisa da X-Force inclui mais formas de acionar scripts PowerShell do Intune e aplicações do Windows para executar, além do lançamento da lógica de regras de detecção do Sentinel para detectar movimento lateral que explora o Intune.
Mantenha-se atualizado sobre as tendências mais importantes (e intrigantes) do setor em IA, automação, dados e muito mais com o boletim informativo Think. Consulte a Declaração de privacidade da IBM.
Muitas empresas começaram a adotar um ambiente de identidade híbrido, o que significa a conexão de um ambiente Active Directory local com o Microsoft Entra ID (antigo Azure AD). Isso possibilita que as organizações sejam mais flexíveis e eficientes, o que inclui um melhor gerenciamento dos dispositivos dos usuários e do acesso às aplicações baseadas na nuvem. Especificamente, quando os dispositivos são associados de forma híbrida, eles ficam visíveis e podem ser gerenciados tanto no Active Directory local quanto no Microsoft Entra ID. Devido a essa configuração, a integração de soluções de gerenciamento de dispositivos baseadas na nuvem pode facilitar a movimentação lateral para dispositivos locais, como estações de trabalho de usuários que estão em um ambiente híbrido.
O Microsoft Intune é uma solução de gerenciamento de dispositivos baseada na nuvem que pode ser usada para gerenciar a configuração de dispositivos conectados ao Azure, como dispositivos híbridos. As seções a seguir destacam como o Intune pode ser usado e gerenciado pelas organizações.
A Microsoft oferece várias soluções para gerenciar dispositivos em uma empresa. Algumas dessas soluções estão listadas abaixo:
Os principais casos de uso estratégico para que as organizações utilizem o Microsoft Intune são:
A Microsoft fornece documentação detalhada sobre as diferentes funções disponíveis no Intune, juntamente com os privilégios de cada uma. As duas funções privilegiadas dentro do Intune que permitem a criação de scripts PowerShell ou aplicações Windows são Global Administrator e Intune Service Administrator (também conhecido como Intune Administrator).
Há várias opções para realizar a execução de código em hosts Windows por meio do Microsoft Intune. Os scripts do PowerShell podem ser implementados para permitir a execução de código por meio da execução direta de comandos dentro do script. Outros tipos de execução de código em dispositivos Windows incluem a implementação de aplicações. Abaixo, listamos alguns dos tipos de aplicações mais comuns:
Os arquivos de log são escritos pela Intune Management Extension em C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Esses registros podem ser úteis para verificar quando um dispositivo se comunicou com o Intune e se algum script do PowerShell ou aplicação do Windows foi executado.
Quando o Intune executa um script do PowerShell, ele cria uma cópia temporária do script em disco em C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Scripts e, em seguida, armazena os resultados do script em C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Results. Depois que o script é concluído, o script temporário e os resultados serão removidos.
Quando o Intune executa uma aplicação do Windows, a aplicação é implementada e executada a partir de C:\Windows\IMECache\[UNIQUE_GUID]. Após a conclusão da execução da aplicação, o diretório é removido.
Existem várias técnicas de movimento lateral bem conhecidas por fornecedores de produtos de segurança e profissionais de segurança defensiva, que têm documentação disponível no MITRE ATT&CK Framework. Essas técnicas de movimento lateral do Windows aproveitam principalmente protocolos e serviços administrativos que podem executar programas ou scripts. Algumas das técnicas comuns de movimento lateral usadas por agentes da ameaça e profissionais de segurança ofensivos incluem o uso do Windows Management Instrumentation (WMI), tarefas agendadas, serviços e distributed component object model (DCOM) para executar programas ou scripts. Do ponto de vista da segurança operacional, encontrar uma técnica exclusiva que possa executar scripts e programas a partir de um software confiável é fundamental. Essas técnicas podem se misturar às atividades típicas da empresa e podem ser ignoradas pelas equipes de segurança defensiva.
Se você tiver comprometido um usuário do Azure com as permissões apropriadas, conforme mostrado na seção Acesso baseado em função do Microsoft Intune , poderá executar código em qualquer host Windows que tenha o agente do Intune instalado, implementando scripts do PowerShell ou um aplicação Windows. Isso pode ser usado como um gatilho de execução de movimento lateral discreto e exclusivo, originado de um software empresarial confiável.
O cenário mostrado na seção a seguir pressupõe a obtenção de acesso privilegiado no centro de administração do Intune. Além disso, como parte deste cenário, o objetivo é obter acesso interativo de comando e controle (C2) por meio de um Cobalt Strike beacon em um host de destino enquanto usa o Intune como um gatilho de execução de movimento lateral.
O Intune utiliza os Entra ID groups para controlar onde os scripts ou aplicações são executados. Portanto, se um host ou grupo de hosts que você está visando ainda não for membro de um grupo, você precisará criar um para eles, a fim de controlar onde seu script ou aplicação será executado. Normalmente, em ambientes de identidade híbridos, você pode visualizar os dispositivos associados de um usuário no Entra ID. Isso permitirá que você faça uma lista de hosts de destino. Essas informações também podem ser recuperadas usando ferramentas e scripts automatizados, como o ROADtools.
Se você precisar criar um novo grupo no Microsoft Entra ID para atribuir os hosts alvos, selecione "Groups" > "New Group" no centro de administração do Intune.
Você pode optar por selecionar hosts ou usuários de destino, conforme mostrado nas respectivas capturas de tela abaixo. Nesse caso, estamos criando um grupo para direcionar o host WIN-8675309.
Um resumo do seu grupo será exibido e, em seguida, você poderá criá-lo.
Há várias maneiras de realizar o acionamento ad-hoc imediato do seu script do PowerShell implementado ou aplicação do Windows a partir do Intune. Isso inclui:
Como alternativa, você pode aguardar até que o dispositivo reinicie automaticamente ou até que o agente Intune do host verifique com o Intune a existência de novos scripts do PowerShell ou aplicações do Windows.
Implementar uma aplicação do Windows em vez de um script do PowerShell é um método alternativo para realizar a execução de código. Esse método é mais flexível, pois permite o empacotamento de vários arquivos que são implementados e executados em um host de destino pelo agente do Intune. Isso é benéfico do ponto de vista do invasor para a implementação de carga útil, como a implementação de uma carga útil por sideloading de DLL que requer múltiplos arquivos. O processo de implementação de uma carga útil por sideload de DLL Dism.exe via aplicação Intune do Windows será detalhada a seguir.
Use o Win32 Content Prep Tool da Microsoft para empacotar os arquivos de carga útil no arquivo .intunewin. É um formato de arquivo compactado que permite a implementação segura de uma aplicação. Detalhes sobre como esse pacote funciona podem ser encontrados nessa postagem do blog . Neste exemplo, temos um diretório que contém um arquivo executável e um arquivo DLL. Usamos a ferramenta Win32 Content Prep Tool para empacotar esses arquivos em um arquivo .intunewin.
O arquivo de saída.intunewin será gravado no diretório de saída que você especificou. Neste caso, empacotamos o Dism.exe e DismCore.dll no arquivo Dism.intunewin.
Agora que você criou o pacote de aplicação do Windows, pode prosseguir com a implementação. No centro de administração do Intune, navegue até “Apps” > “Windows apps” > “Add”.
Selecione "Windows app (Win32)" no menu suspenso:
Faça upload do arquivo .intunewin criado anteriormente e preencha as informações da sua aplicação.
Em seguida, adicione um comando de instalação , que, neste caso, será o executável (Dism.exe) . Para o comando de desinstalação , você pode digitar qualquer coisa. Além disso, estamos optando por executar esta aplicação como "System" e, para o comportamento de reinicialização do dispositivo, selecionamos "No specific action". Ao escolher "System", isso significa que ele será executado como a conta NT AUTHORITY\SYSTEM.
As regras de detecção são usadas para evitar a instalação de uma aplicação quando ela já existe. Portanto, se o resultado de uma regra de detecção for bem-sucedido, nenhuma aplicação será instalada. Como queremos que nossa aplicação seja executada de qualquer maneira, nesse caso, enviamos um script do PowerShell que tenta executar um binário inexistente. Dessa forma, o script de detecção sempre falhará, o que significa que a aplicação não está presente e a instalação vai continuar.
Ignore as seções "Dependencies" e "Supersedence" e adicione o grupo com os hosts de destino na seção "Assignments":
Depois de criar a aplicação do Windows, você a verá no centro de administração do Intune e a coluna "Assigned" deverá exibir "Yes". Isso significa que a aplicação do Windows foi atribuída aos grupos que você especificou e está esperando para ser implementada e executada.
Para executar o acionamento ad-hoc do agente Intune no host de destino, reiniciaremos o serviço "IntuneManagementExtension". Pode levar até cinco minutos após a reinicialização do serviço para o host de destino baixar e executar a aplicação do Windows pelo Intune. Se o host de destino não tiver baixado e executado sua aplicação do Windows após cinco minutos, talvez seja necessário reiniciar o serviço. Outros métodos para realizar o acionamento ad-hoc estão na seção Acionamento ad-Hoc.
Após o serviço ser reiniciado, você pode monitorar o AgentExecutor.log e o IntuneManagementExtension.log no diretório C:\ProgramData\Microsoft\IntuneManagementExtension\Logs no host de destino. Assim que a data da última modificação for registrada no arquivo AgentExecutor.log. o arquivo foi atualizado, o agente do Intune deve ter baixado e executado a aplicação do Windows. Além disso, você pode monitorar o diretório C:\Windows\IMECache para ver quando os arquivos da aplicação forem baixados. Haverá uma subpasta criada com um GUID exclusivo.
Neste ponto, a aplicação do Windows foi implementada e executada, e obtivemos um beacon do Cobalt Strike no host de destino WIN-8675309.
Nesta seção, serão apresentadas diversas considerações defensivas para aumentar a segurança da configuração e os recursos de detecção do Intune contra os cenários de ataque descritos nesta pesquisa.
Para criar regras de detecção ou caça a ameaças para atividades de movimentação lateral que exploram o Intune, primeiro você precisa habilitar o registro de auditoria. No centro de administração do Intune, selecione “Tenant administration” > “Diagnostic settings” > “Add diagnostic setting”:
Selecione "AuditLogs" e "OperationalLogs" e, em seguida, opte por enviar seus logs para o Log Analytics workspace:
Você vai ver os esquemas IntuneAuditLogs e IntuneOperationalLogs começarem a ser preenchidos no Log Analytics Workspace.
Depois de começar a receber logs do Intune em seu espaço de trabalho Log Analytics, você pode usar esse espaço de trabalho em uma instância do Microsoft Sentinel para começar a criar regras de análise e caça a ameaças, que serão descritas na seção a seguir.
No momento, não há regras de análise publicamente disponíveis para o Microsoft Sentinel detectar os cenários de ataque do Intune descritos nesta pesquisa. Portanto, as seções abaixo fornecem diversos trechos de lógica de regras que podem ser aplicados como regras analíticas agendadas no Microsoft Sentinel para os seguintes cenários de ataque no Intune:
Para cada uma dessas regras analíticas, recomenda-se realizar testes e ajustes adequados em seu ambiente. As consultas KQL destacadas abaixo podem ser copiadas e coladas a partir desse repositório KQL-Queries.
A lógica da regra vinculada abaixo emitirá um alerta sempre que um usuário criar um script do PowerShell ou uma aplicação do Windows para implementação.
CreatedPSScriptOrWindowsApp.kql
Um exemplo dessa regra sendo acionada no Microsoft Sentinel é mostrado na captura de tela abaixo.
A lógica de regra vinculada abaixo retorna todos os usuários que criaram e excluíram um script do PowerShell em até 24 horas. Isso pode ser uma evidência de um invasor tentando encobrir seus rastros após implementar um script em PowerShell.
Um exemplo deste acionamento de regra no Microsoft Sentinel é mostrado nas capturas de tela abaixo:
A lógica de regra vinculada abaixo retorna todos os usuários que criaram e excluíram uma aplicação do Windows em 24 horas. Isso pode ser uma evidência de que um invasor está tentando cobrir seus rastros após implementar uma aplicação do Windows.
CreatedAndDeletedWindowsApp.kql
Um exemplo deste acionamento de regra no Microsoft Sentinel é mostrado nas capturas de tela abaixo:
A lógica da regra vinculada abaixo retorna todos os usuários que criaram um script do PowerShell ou uma aplicação do Windows e também reinicializaram o dispositivo em 24 horas.
CreatedPSScriptOrWindowsAppForcedRestart.kql
Um exemplo deste acionamento de regra no Microsoft Sentinel é mostrado nas capturas de tela abaixo:
A lógica da regra abaixo retorna todos os usuários que criaram um script do PowerShell ou aplicação do Windows e também realizaram uma sincronização de dispositivo dentro de 24 horas.
CreatedPSScriptOrWindowsAppForcedSync.kql
Um exemplo deste acionamento de regra no Microsoft Sentinel é mostrado nas capturas de tela abaixo:
As políticas de aprovação podem ser criadas de modo que um membro de um grupo específico seja obrigado a aprovar qualquer nova implementação de script ou aplicação. A aplicação dessas políticas em conjunto com as regras de detecção descritas anteriormente pode reforçar bastante a postura de segurança da instância do Intune.
Navegue até "Tenant administration" > "Multi Admin Approval" > "Access policies" > "Create".
Preencha as informações necessárias, como o nome da política de acesso, a descrição e o tipo de perfil. Para o tipo de perfil, selecione "Script".
Adicione um grupo ou vários grupos que serão responsáveis por aprovar novas implementações de script.
Depois de criar sua política, você a verá preenchida na guia "Access policies".
Agora que a política foi aplicada, quando um usuário tentar criar um novo script, receberá a mensagem abaixo. Após o envio da solicitação com a devida justificativa comercial, um aprovador de um grupo específico precisará autorizar a implementação do script.
As mesmas etapas descritas anteriormente também podem ser executadas para exigir aprovação para a implementação de qualquer aplicação. Certifique-se de escolher "App" no menu Profile type ao criar a política de acesso.
Você pode ver um resumo da nossa política que criamos, que inclui o tipo de perfil “App”.
Agora que a política é aplicada quando um usuário tenta criar uma nova aplicação, ele receberá a mensagem abaixo. Após o envio da solicitação com a devida justificativa comercial, um aprovador de um grupo específico precisará aprovar antes que a aplicação seja implementada.
A Microsoft possui um guia de melhores práticas para o Microsoft Entra ID que destaca orientações detalhadas sobre como proteger a configuração do seu Microsoft Entra ID. Algumas das recomendações mais importantes relacionadas à exploração de funções privilegiadas no Microsoft Intune são:
A adoção de arquiteturas de identidade híbrida e o uso de serviços baseados na nuvem continuam aumentando. As organizações dependem desses serviços baseados na nuvem para gerenciar sua infraestrutura corporativa, que inclui o gerenciamento de endpoints do usuário e dispositivos pessoais que se conectam ao Office 365 e a outros serviços. Dessa forma, a capacidade de detectar adequadamente o uso indevido de serviços baseados na nuvem, como o Microsoft Intune, tornou-se mais crítico do que nunca. O objetivo da X-Force é destacar e inspirar mais pesquisas sobre a defesa de outros serviços críticos de negócios baseados na nuvem que podem ser explorados por agente da ameaça para movimento lateral e execução de código.
Um agradecimento especial às pessoas abaixo por darem feedback sobre esta pesquisa e por fornecerem avaliações do post de blog: