Las organizaciones continúan implementando servicios basados en la nube, un cambio que ha llevado a una adopción más amplia de entornos de de identidad híbrida que conectan Active Directory on premises con Microsoft Entra ID (anteriormente Azure AD). Para gestionar dispositivos en estos entornos de identidad híbrida, Microsoft Intune (Intune) se ha convertido en una de las soluciones de gestión de dispositivos más populares. Dado que esta plataforma empresarial de confianza se puede integrar fácilmente con dispositivos y servicios de Active Directory on premises, es un objetivo principal para que los atacantes abusen de ella para realizar movimiento lateral y ejecución de código.
Esta investigación proporcionará antecedentes sobre Intune, cómo se está utilizando dentro de las organizaciones y mostrará cómo utilizar esta plataforma basada en la nube para desplegar aplicaciones de Windows personalizadas para lograr la ejecución de código en los dispositivos de los usuarios. Además, esta investigación incluye el lanzamiento público de nuevas reglas de Microsoft Sentinel para ayudar a los defensores a detectar el uso de Intune para el movimiento lateral y la orientación de refuerzo defensivo para la plataforma Intune.
Andy Robbins escribió una excelente entrada en el blog en 2020 titulada, "Death from Above: Lateral Movement from Azure to On-Prem AD", que cubre cómo abusar de Intune para desplegar un script de PowerShell a hosts objetivo, junto con orientación defensiva para protegerse contra ese escenario de ataque. Nuestra investigación resultante de X-Force se basa en la investigación de Robbins al mostrar cómo realizar la ejecución de código dirigido con el uso de aplicaciones de Windows y cómo realizar la activación ad hoc para que los hosts de Windows descarguen y ejecuten esas aplicaciones. Esta investigación también incluye reglas de Microsoft Sentinel recientemente creadas para detectar el uso indebido de Intune para facilitar el movimiento lateral y la orientación de endurecimiento para la plataforma Intune.
Chris Thompson lanzó una herramienta llamada Maestro en DEF CON 32 Demo Labs que se puede utilizar para realizar reconocimiento de usuarios y dispositivos a través de Intune, junto con la ejecución de comandos a través de scripts de Intune PowerShell o aplicaciones de Windows desde una infraestructura C2. Asegúrese de consultar esta herramienta y la investigación de Chris. La siguiente investigación de X-Force difiere, ya que muestra cómo realizar esta actividad de movimiento lateral a través de la interfaz web de Microsoft Intune y cómo empaquetar varios archivos para desplegarlos como parte de una aplicación personalizada para la ejecución de código. Además, esta investigación de X-Force incluye más formas de activar la ejecución de scripts de Intune PowerShell y aplicaciones de Windows, junto con el lanzamiento de la lógica de reglas de detección de Microsoft Sentinel para detectar la actividad de movimiento lateral que abusa de Intune.
Boletín de la industria
Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
Muchas empresas han comenzado a adoptar un entorno de identidad híbrido, lo que significa la conexión de un entorno de Active Directory on premises con Microsoft Entra ID (anteriormente Azure AD). Esto permite a las organizaciones ser más flexibles y eficientes, lo que incluye una mejor gestión de los dispositivos de los usuarios y el acceso de los usuarios a las aplicaciones basadas en la nube. Específicamente, cuando los dispositivos están unidos de manera híbrida, son visibles y se pueden administrar tanto en Active Directory on premises como en Microsoft Entra ID. Debido a esta configuración, el compromiso de las soluciones de administración de dispositivos on premises basadas en la nube puede facilitar el movimiento lateral hacia dispositivos on premises, como estaciones de trabajo de usuario que están unidas de manera híbrida.
Microsoft Intune es una solución de gestión de dispositivos basada en la nube que se puede emplear para gestionar la configuración de dispositivos conectados a Azure, como dispositivos híbridos. En las siguientes secciones se destaca cómo las organizaciones pueden usar y administrar Intune.
Microsoft ofrece varias soluciones para gestionar dispositivos dentro de una empresa. Algunas de esas soluciones se enumeran a continuación:
Los principales casos de uso estratégicos para que las organizaciones utilicen Microsoft Intune son:
Microsoft proporciona documentación detallada sobre los diferentes roles que están disponibles en Intune, junto con los privilegios de cada rol. Los dos roles privilegiados dentro de Intune que permiten la creación de scripts PowerShell o aplicaciones Windows son Administrador Global y Administrador de Servicios Intune (también conocido como Administrador de Intune).
Hay varias opciones para realizar la ejecución de código en hosts Windows a través de Microsoft Intune. Se pueden desplegar scripts de PowerShell para permitir la ejecución de código a través de la ejecución directa de comandos dentro del script. Otros tipos de ejecución de código en dispositivos Windows incluyen el despliegue de aplicaciones. A continuación se enumeran algunos de los tipos de aplicaciones más destacados:
Los archivos de registro son escritos por la Intune Management Extension en C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Estos registros pueden ser útiles para ver cuándo un dispositivo se ha registrado con Intune y si se ha ejecutado algún script de PowerShell o aplicación de Windows.
Cuando Intune ejecuta un script de PowerShell, crea una copia temporal del script en el disco en C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Scripts y, a continuación, almacena los resultados del script en C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Results. Una vez completado el script, se eliminan el script temporal y los resultados.
Cuando Intune ejecuta una aplicación de Windows, la aplicación se implementa y ejecuta desde C:\Windows\IMECache\[UNIQUE_GUID]. Una vez que la aplicación termina de ejecutarse, se elimina el directorio.
Existen varias técnicas de movimiento lateral bien conocidas por proveedores de productos de seguridad y profesionales de seguridad defensiva, que tienen documentación fácilmente disponible en la infraestructura MITRE ATT&CK. . Estas técnicas de movimiento lateral de Windows se benefician principalmente de los protocolos y servicios administrativos que pueden ejecutar programas o scripts. Algunas de las técnicas comunes de movimiento lateral utilizadas por los actores de amenazas y los profesionales de la seguridad ofensiva incluyen el uso de Windows Management Instrumentation (WMI), tareas programadas, servicios y modelo de objetos de componentes distribuidos (DCOM) para ejecutar programas o scripts. Desde una perspectiva de seguridad operativa, es crucial encontrar una técnica única que pueda ejecutar scripts y programas mientras se originan en un software confiable. Estas técnicas pueden integrarse en la actividad habitual de la empresa y pasar desapercibidas para los equipos de seguridad defensiva.
Si ha puesto en peligro a un usuario de Azure con los permisos adecuados que se muestran en la sección Acceso basado en roles de Microsoft Intune, puede ejecutar código en cualquier host de Windows que tenga instalado el agente de Intune desplegando scripts de PowerShell o una aplicación de Windows. Esto se puede utilizar como un disparador de ejecución de movimiento lateral sigiloso y único que se origina en un software empresarial confiable.
El escenario que se muestra en la siguiente sección supone que se ha obtenido acceso privilegiado dentro del centro de de administración de Intune. Además, como parte de este escenario, el objetivo es obtener acceso interactivo de comando y control (C2) a través de una baliza Cobalt Strike en un host objetivo mientras se usa Intune como disparador de ejecución de movimiento lateral.
Intune emplea grupos de de Entra ID para controlar dónde se ejecutan scripts o aplicaciones. Por lo tanto, si un host o grupo de hosts al que se dirige aún no son miembros de un grupo, deberá crear uno para ellos para poder controlar dónde se ejecuta su script o aplicación. Por lo general, dentro de los entornos de identidad híbrida, puede ver los dispositivos asociados de un usuario dentro de Entra ID. Esto le permitirá hacer una lista de hosts de destino. Esta información también se puede recuperar empleando herramientas y scripts automatizados, como ROADtools.
Si necesita crear un nuevo grupo de Microsoft Entra ID para asignar sus hosts de destino, seleccione"Groups" > "New group" en el centro de administración de Intune.
Puede elegir seleccionar hosts o usuarios objetivo, como se muestra en las capturas de pantalla respectivas a continuación. En este caso, estamos creando un grupo para apuntar al host WIN-8675309.
Se mostrará un resumen de su grupo, y luego podrá crearlo.
Hay varias formas de realizar la activación ad hoc inmediata de su script de PowerShell desplegado o aplicación de Windows desde Intune. Estas incluyen:
Como alternativa, puede esperar la próxima vez que el dispositivo se reinicie por sí solo o la próxima vez que el agente de Intune del host se registre en Intune para ver si hay nuevos scripts de PowerShell o aplicaciones de Windows.
Desplegar una aplicación de Windows en lugar de un script de PowerShell es un método alternativo para realizar la ejecución de código. Este método es más flexible, ya que permite el empaquetado de varios archivos que el agente de Intune despliega y ejecuta en un host de destino. Esto es beneficioso desde la perspectiva del atacante para el despliegue de cargas útiles, como desplegar una carga lateral útil de DLL que requiera múltiples archivos. El proceso de desplegar una carga lateral útil Dism.exe DLL a través de una aplicación Intune para Windows se detallará a continuación.
Utilice la Win32 Content Prep Tool de Microsoft para empaquetar los archivos de carga útil dentro de un archivo .intunewin . Se trata de un formato de archivo comprimido que permite el despliegue seguro de una aplicación. En esta entrada en el blog se puede encontrar información detallada sobre cómo funciona este empaque. En este ejemplo, tenemos un directorio que contiene un archivo ejecutable y DLL. Usamos la herramienta de preparación de contenido de Win32 para empaquetar esos archivos en un archivo .intunewin .
El archivo de salida .intunewin se escribirá en el directorio de salida que haya especificado. En este caso, hemos empaquetado Dism.exe y DismCore.dll en el archivo Dism. intunewin .
Ahora que ha creado el paquete de aplicación de Windows, puede proceder a desplegarlo. En el centro de administración de Intune, vaya a “Apps” > “Windows apps” > “Add”.
Seleccione “Windows app (Win32)” en el menú desplegable:
Cargue el archivo .intunewin que se creó previamente y complete la información de su aplicación.
A continuación, agregue un comando de instalación , que en este caso será el ejecutable (Dism.exe) . Para el comando de desinstalación , puede introducir cualquier cosa. Además, elegimos ejecutar esta aplicación como "Sistema" y para el comportamiento de reinicio del dispositivo hemos seleccionado “No specific action”. Al elegir "System", esto significa que se ejecutará como la cuenta NT AUTHORITY\SYSTEM.
Las reglas de detección se utilizan para evitar la instalación de una aplicación cuando ya existe. Por lo tanto, si el resultado de una regla de detección es correcto, no se instalará una aplicación. Como queremos que nuestra aplicación se ejecute pase lo que pase, hemos subido un script de PowerShell en este caso que intenta ejecutar un binario inexistente. De esta manera, el script de detección siempre fallará, lo que significa que la aplicación no está presente y la instalación continuará.
Omita las secciones “Dependencies” y “Supersedence” y agregue el grupo con su(s) host(s) de destino dentro de la sección “Assignments”:
Después de crear la aplicación de Windows, la verá en el centro de administración de Intune y la columna "Assigned" debería decir "Yes". Esto significa que la aplicación de Windows se asignó a los grupos que especificó y está esperando a ser implementada y ejecutada.
Para realizar la activación ad-hoc del agente de Intune en el host de destino, reiniciaremos el servicio “IntuneManagementExtension”. Una vez reiniciado el servicio, el host de destino puede tardar hasta cinco minutos en descargar y ejecutar la aplicación de Windows desde Intune. Si el host de destino no ha descargado y ejecutado su aplicación de Windows después de cinco minutos, es posible que sea necesario reiniciar el servicio nuevamente. En la sección Ad-Hoc Triggering se describen otros métodos para realizar activaciones ad hoc.
Después de reiniciar el servicio, puede monitorear AgentExecutor.log e IntuneManagementExtension.log dentro del directorio C:\ProgramData\Microsoft\IntuneManagementExtension\Logs en el host de destino. Una vez que se haya actualizado la última fecha del archivo AgentExecutor.log , el agente de Intune debería haber descargado y ejecutado la aplicación de Windows. Además, puede supervisar el directorio C:\Windows\IMECache para ver cuándo se han descargado los archivos de su aplicación. Se creará una subcarpeta con un GUID único.
En este punto, la aplicación de Windows se ha desplegado y ejecutado, y hemos obtenido una baliza Cobalt Strike en el host de destino WIN-8675309.
En esta sección se describirán varias consideraciones defensivas para aumentar el fortalecimiento de la configuración y las capacidades de detección de Intune contra los escenarios de ataque descritos en esta investigación.
Para crear reglas de detección o caza de amenazas para la actividad de movimiento lateral que abusa de Intune, primero debe habilitar el registro de auditoría. En el centro de administración de Intune, seleccione “Tenant administration” > “Diagnostic settings” > “Add diagnostic setting”:
Seleccione "AuditLogs" y "OperationalLogs", y luego elija enviar sus registros a un espacio de trabajo de Log Analytics:
Comenzará a ver cómo los esquemas IntuneAuditLogs e IntuneOperationalLogs se rellenan en su espacio de trabajo de Log Analytics.
Después de comenzar a recibir registros de Intune en su espacio de trabajo de Log Analytics, puede usar ese espacio de trabajo en una instancia de Microsoft Sentinel para comenzar a crear reglas de caza de amenazas y reglas analíticas, que se describirán en la siguiente sección.
Actualmente no hay reglas analíticas disponibles públicamente para que Microsoft Sentinel detecte los escenarios de ataque de Intune descritos en esta investigación. Por lo tanto, en las siguientes secciones se proporcionan varias lógicas de reglas que se pueden aplicar como reglas analíticas programadas dentro de Microsoft Sentinel para los siguientes escenarios de ataque dentro de Intune:
Para cada una de estas reglas analíticas, se recomienda realizar pruebas y ajustes adecuados en su entorno. Las consultas KQL resaltadas a continuación se pueden copiar y pegar desde este repositorio de consultas KQL.
La lógica de reglas vinculada a continuación alertará cada vez que un usuario haya creado un script de PowerShell o una aplicación para despliegue.
CreatedPSScriptOrWindowsApp.KQL
En las siguientes capturas de pantalla se muestra un ejemplo de la activación de esta regla en Microsoft Sentinel.
La lógica de la regla que se indica a continuación muestra todos los usuarios que han creado y eliminado un script de PowerShell en las últimas 24 horas. Esto podría ser evidencia de que un atacante intenta encubrir sus huellas después de desplegar un script de PowerShell.
En las siguientes capturas de pantalla se muestra un ejemplo de la activación de esta regla en Microsoft Sentinel:
La lógica de la regla que se indica a continuación muestra todos los usuarios que han creado y eliminado una aplicación de Windows en las últimas 24 horas. Esto podría ser una prueba de que un atacante intentó encubrir sus huellas tras desplegar una aplicación para Windows.
CreatedAndDeletedWindowsApp.kql
En las siguientes capturas de pantalla se muestra un ejemplo de la activación de esta regla en Microsoft Sentinel:
La lógica de la regla vinculada a continuación devuelve cualquier usuario que haya creado un script de PowerShell o una aplicación de Windows y también haya emitido un reinicio del dispositivo dentro de las 24 horas.
CreatedPSScriptOrWindowsAppForcedRestart.kql
En las siguientes capturas de pantalla se muestra un ejemplo de la activación de esta regla en Microsoft Sentinel:
La lógica de la regla a continuación devuelve cualquier usuario que haya creado un script de PowerShell o una aplicación de Windows y también haya emitido una sincronización de dispositivo dentro de las 24 horas.
CreatedPSScriptOrWindowsAppForcedSync.KQL
En las siguientes capturas de pantalla se muestra un ejemplo de la activación de esta regla en Microsoft Sentinel:
Se pueden crear políticas de aprobación para que un miembro de un grupo específico tenga que aprobar cualquier despliegue nuevo de scripts o aplicaciones. La aplicación de estas políticas junto con las reglas de detección descritas anteriormente puede reforzar significativamente la postura de seguridad de su instancia de Intune.
Vaya a “Tenant administration” > “Multi Admin Approval” > “Access policies” > “Create”.
Complete la información requerida, como el nombre de la política de acceso, la descripción y el tipo de perfil. Para el tipo de perfil, seleccione "Script".
Agregue uno o varios grupos que serán responsables de aprobar cualquier nuevo despliegue de scripts.
Después de crear su política, la verá rellenada en la pestaña "Access policies".
Ahora que se aplica la política, cuando un usuario intente crear un nuevo script, recibirá el siguiente mensaje. Después de enviar la solicitud con la justificación comercial, un aprobador de un grupo específico deberá permitir que se despliegue el script.
También se pueden realizar los mismos pasos descritos anteriormente para requerir la aprobación de cualquier despliegue de aplicación. Asegúrese de elegir “App” en el menú desplegable Profile type al crear la política de acceso.
Puede ver un resumen de nuestra política que hemos creado que incluye el tipo de perfil de "App".
Ahora que la política se aplica cuando un usuario intenta crear una nueva aplicación, recibirá el siguiente mensaje. Después de enviar la solicitud con una justificación empresarial, un aprobador de un grupo de aprobación especificado deberá aprobarla antes de que la aplicación se despliegue.
Microsoft tiene una guía de mejores prácticas de Microsoft Entra ID que destaca orientación detallada sobre cómo proteger su configuración de Microsoft Entra ID. Algunas de las recomendaciones más importantes relacionadas con el abuso de roles privilegiados en Microsoft Intune son:
La adopción de la arquitectura de identidad híbrida y el uso de servicios basados en la nube sigue aumentando. Las organizaciones dependen de estos servicios basados en la nube para gestionar su infraestructura empresarial, lo que incluye la gestión de endpoints de usuarios y dispositivos personales que se conectan a Office 365 y otros servicios basados en la nube. Como tal, ser capaz de detectar adecuadamente el uso indebido de servicios basados en la nube como Microsoft Intune se ha vuelto más crítico que nunca. X-Force tiene como objetivo que esta investigación destaque e inspire una mayor investigación sobre la defensa de otros servicios basados en la nube y críticos para el negocio que pueden ser abusados por actores de amenazas para el movimiento lateral y la ejecución de código.
Un agradecimiento especial a las siguientes personas por dar su feedback sobre esta investigación y revisar la entrada en el blog: