Az - Conditional Access Policies / MFA Bypass
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Las políticas de acceso condicional de Azure son reglas establecidas en Microsoft Azure para hacer cumplir controles de acceso a servicios y aplicaciones de Azure basados en ciertas condiciones. Estas políticas ayudan a las organizaciones a asegurar sus recursos aplicando los controles de acceso correctos bajo las circunstancias adecuadas. Las políticas de acceso condicional definen Quién puede acceder a Qué desde Dónde y Cómo.
Aquí hay un par de ejemplos:
Política de Riesgo de Inicio de Sesión: Esta política podría configurarse para requerir autenticación multifactor (MFA) cuando se detecta un riesgo de inicio de sesión. Por ejemplo, si el comportamiento de inicio de sesión de un usuario es inusual en comparación con su patrón regular, como iniciar sesión desde un país diferente, el sistema puede solicitar autenticación adicional.
Política de Cumplimiento de Dispositivos: Esta política puede restringir el acceso a los servicios de Azure solo a dispositivos que cumplan con los estándares de seguridad de la organización. Por ejemplo, el acceso podría permitirse solo desde dispositivos que tengan software antivirus actualizado o que estén ejecutando una cierta versión del sistema operativo.
Es posible que una política de acceso condicional esté verificando alguna información que puede ser fácilmente manipulada, permitiendo un bypass de la política. Y si, por ejemplo, la política estaba configurando MFA, el atacante podrá eludirla.
Es posible establecer una condición basada en la plataforma del dispositivo (Android, iOS, Windows, macOS), sin embargo, esto se basa en el user-agent, por lo que es bastante fácil de eludir. Incluso haciendo que todas las opciones exijan MFA, si usas un user-agent que no reconoce, podrás eludir el MFA.
Por supuesto, si esto está establecido en la política condicional, un atacante podría simplemente usar una VPN en el país permitido o intentar encontrar una manera de acceder desde una dirección IP permitida para eludir estas condiciones.
Podrías indicar que si los clientes acceden a las aplicaciones de Office 365 desde el navegador necesitan MFA:
Para eludir esto, es posible pretender que inicias sesión en una aplicación desde una aplicación de escritorio (como Microsoft Teams en el siguiente ejemplo) lo que eludirá la protección:
Como la aplicación de Microsoft Teams tiene muchos permisos, podrás utilizar ese acceso.
Puedes encontrar el ID de más aplicaciones públicas con permisos predefinidos de Office365 en la base de datos de roadtools:
Este ataque es especialmente interesante porque, por defecto, las aplicaciones públicas de Office365 tendrán permisos para acceder a algunos datos.
Por defecto, otras aplicaciones creadas por los usuarios no tendrán permisos y podrían ser privadas. Sin embargo, los usuarios también podrían crear aplicaciones públicas otorgándoles algunos permisos.
Un escenario potencial donde se establece una política para requerir MFA para acceder a una aplicación cuando el usuario está utilizando un navegador (quizás porque es una aplicación web y, por lo tanto, será la única forma), si hay una aplicación proxy -una aplicación permitida para interactuar con otras aplicaciones en nombre de los usuarios-, el usuario podría iniciar sesión en la aplicación proxy y luego, a través de esta aplicación proxy, iniciar sesión en la aplicación inicialmente protegida por MFA.
Consulta las técnicas Invoke-MFASweep y donkeytoken.
Una opción de Azure MFA es recibir una llamada en el número de teléfono configurado donde se le pedirá al usuario que envíe el carácter #
.
Como los caracteres son solo tonos, un atacante podría comprometer el mensaje de buzón de voz del número de teléfono, configurar como mensaje el tono de #
y luego, al solicitar el MFA, asegurarse de que el teléfono de la víctima esté ocupado (llamándolo) para que la llamada de Azure se redirija al buzón de voz.
Las políticas a menudo piden un dispositivo compatible o MFA, por lo que un atacante podría registrar un dispositivo compatible, obtener un token PRT y eludir de esta manera el MFA.
Comienza registrando un dispositivo compatible en Intune, luego obtén el PRT con:
Encuentra más información sobre este tipo de ataque en la siguiente página:
Az - Pass the PRTObtén todas las políticas
MFASweep es un script de PowerShell que intenta iniciar sesión en varios servicios de Microsoft utilizando un conjunto de credenciales proporcionado y tratará de identificar si MFA está habilitado. Dependiendo de cómo estén configuradas las políticas de acceso condicional y otros ajustes de autenticación multifactor, algunos protocolos pueden terminar siendo de un solo factor. También tiene una verificación adicional para configuraciones de ADFS y puede intentar iniciar sesión en el servidor ADFS local si se detecta.
Donkey token es un conjunto de funciones que tienen como objetivo ayudar a los consultores de seguridad que necesitan validar las Políticas de Acceso Condicional, pruebas para portales de Microsoft habilitados para 2FA, etc.
Prueba cada portal si es posible iniciar sesión sin MFA:
Porque el portal de Azure no está restringido, es posible obtener un token del endpoint del portal para acceder a cualquier servicio detectado por la ejecución anterior. En este caso, se identificó Sharepoint, y se solicita un token para acceder a él:
Suponiendo que el token tiene el permiso Sites.Read.All (de Sharepoint), incluso si no puedes acceder a Sharepoint desde la web debido a MFA, es posible usar el token para acceder a los archivos con el token generado:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)