Az - Device Registration

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Informações Básicas

Quando um dispositivo se junta ao AzureAD, um novo objeto é criado no AzureAD.

Ao registrar um dispositivo, o usuário é solicitado a fazer login com sua conta (pedindo MFA se necessário), em seguida, solicita tokens para o serviço de registro de dispositivo e depois pede uma confirmação final.

Em seguida, dois pares de chaves RSA são gerados no dispositivo: A chave do dispositivo (chave pública) que é enviada para o AzureAD e a chave de transporte (chave privada) que é armazenada no TPM, se possível.

Em seguida, o objeto é gerado no AzureAD (não no Intune) e o AzureAD devolve ao dispositivo um certificado assinado por ele. Você pode verificar que o dispositivo está associado ao AzureAD e informações sobre o certificado (como se está protegido pelo TPM).

dsregcmd /status

Após o registro do dispositivo, um Token de Atualização Principal é solicitado pelo módulo LSASS CloudAP e fornecido ao dispositivo. Com o PRT, também é entregue a chave de sessão criptografada para que apenas o dispositivo possa descriptografá-la (usando a chave pública da chave de transporte) e é necessária para usar o PRT.

Para mais informações sobre o que é um PRT, consulte:

pageAz - Primary Refresh Token (PRT)

TPM - Módulo de Plataforma Confiável

O TPM protege contra a extração de chaves de um dispositivo desligado (se protegido por PIN) e contra a extração do material privado da camada do sistema operacional. Mas ele não protege contra sniffing da conexão física entre o TPM e a CPU ou usar o material criptográfico no TPM enquanto o sistema está em execução a partir de um processo com direitos de SYSTEM.

Se você verificar a seguinte página, verá que roubar o PRT pode ser usado para acessar como um usuário, o que é ótimo porque o PRT está localizado nos dispositivos, então ele pode ser roubado deles (ou se não for roubado, pode ser abusado para gerar novas chaves de assinatura):

pageAz - Pass the PRT

Registrando um dispositivo com tokens SSO

Seria possível para um atacante solicitar um token para o serviço de registro de dispositivo da Microsoft a partir do dispositivo comprometido e registrá-lo:

# 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

Substituindo um ticket de dispositivo

Era possível solicitar um ticket de dispositivo, substituir o atual do dispositivo e, durante o fluxo, roubar o PRT (portanto, não é necessário roubá-lo do TPM. Para mais informações verifique esta palestra.

No entanto, isso foi corrigido.

Sobrescrever a chave WHFB

Verifique os slides originais aqui

Resumo do ataque:

  • É possível sobrescrever a chave WHFB registrada de um dispositivo via SSO

  • Isso derrota a proteção do TPM pois a chave é capturada durante a geração da nova chave

  • Isso também fornece persistência

Os usuários podem modificar sua própria propriedade searchableDeviceKey via o Azure AD Graph, no entanto, o atacante precisa ter um dispositivo no locatário (registrado na hora ou tendo roubado certificado + chave de um dispositivo legítimo) e um token de acesso válido para o Azure AD Graph.

Em seguida, é possível gerar uma nova chave com:

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

e então PATCH as informações do searchableDeviceKey:

É possível obter um token de acesso de um usuário via phishing de código de dispositivo e abusar dos passos anteriores para roubar seu acesso. Para mais informações, consulte:

pageAz - Phishing Primary Refresh Token (Microsoft Entra)

Referências

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización