Az - Device Registration

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Información Básica

Cuando un dispositivo se une a AzureAD se crea un nuevo objeto en AzureAD.

Al registrar un dispositivo, se solicita al usuario que inicie sesión con su cuenta (solicitando MFA si es necesario), luego solicita tokens para el servicio de registro de dispositivos y luego solicita una confirmación final.

Luego, se generan dos pares de claves RSA en el dispositivo: La clave del dispositivo (clave pública) que se envía a AzureAD y la clave de transporte (clave privada) que se almacena en TPM si es posible.

Luego, se genera el objeto en AzureAD (no en Intune) y AzureAD devuelve al dispositivo un certificado firmado por él. Puedes verificar que el dispositivo está unido a AzureAD e información sobre el certificado (como si está protegido por TPM).

dsregcmd /status

Después del registro del dispositivo se solicita un Token de Actualización Principal por el módulo LSASS CloudAP y se entrega al dispositivo. Con el PRT también se entrega la clave de sesión encriptada para que solo el dispositivo pueda descifrarla (usando la clave pública de la clave de transporte) y es necesaria para usar el PRT.

Para obtener más información sobre qué es un PRT, consulta:

pageAz - Primary Refresh Token (PRT)

TPM - Módulo de Plataforma Confiable

El TPM protege contra la extracción de claves de un dispositivo apagado (si está protegido por PIN) y contra la extracción del material privado desde la capa del sistema operativo. Pero no protege contra interceptar la conexión física entre el TPM y la CPU o usar el material criptográfico en el TPM mientras el sistema se está ejecutando desde un proceso con derechos de SYSTEM.

Si revisas la siguiente página, verás que robar el PRT se puede utilizar para acceder como el usuario, lo cual es genial porque el PRT se encuentra en los dispositivos, por lo que se puede robar de ellos (o si no se roba, se puede abusar para generar nuevas claves de firma):

pageAz - Pass the PRT

Registrando un dispositivo con tokens SSO

Sería posible para un atacante solicitar un token para el servicio de registro de dispositivos de Microsoft desde el dispositivo comprometido y registrarlo:

# Initialize SSO flow
roadrecon auth prt-init
.\ROADtoken.exe <nonce>

# Request token with PRT with PRT cookie
roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie <cookie>

# Custom pyhton script to register a device (check roadtx)
registerdevice.py

Sobrescribiendo un ticket de dispositivo

Era posible solicitar un ticket de dispositivo, sobrescribir el actual del dispositivo, y durante el flujo robar el PRT (por lo que no es necesario robarlo del TPM. Para más información consulta esta charla.

Sin embargo, esto fue corregido.

Sobrescribir la clave WHFB

Consulta las diapositivas originales aquí

Resumen del ataque:

  • Es posible sobrescribir la clave WHFB registrada desde un dispositivo a través de SSO

  • Derrota la protección del TPM ya que la clave es capturada durante la generación de la nueva clave

  • Esto también proporciona persistencia

Los usuarios pueden modificar su propia propiedad searchableDeviceKey a través del Azure AD Graph, sin embargo, el atacante necesita tener un dispositivo en el inquilino (registrado sobre la marcha o haber robado el certificado + clave de un dispositivo legítimo) y un token de acceso válido para el Azure AD Graph.

Luego, es posible generar una nueva clave con:

roadtx genhellokey -d <device id> -k tempkey.key

y luego ACTUALIZA la información del searchableDeviceKey:

Es posible obtener un token de acceso de un usuario a través de phishing de código de dispositivo y abusar de los pasos anteriores para robar su acceso. Para obtener más información, consulta:

pageAz - Phishing Primary Refresh Token (Microsoft Entra)

Referencias

Aprende a hackear AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización