Az - Conditional Access Policies / MFA Bypass
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
As políticas de Acesso Condicional do Azure são regras configuradas no Microsoft Azure para impor controles de acesso aos serviços e aplicativos do Azure com base em certas condições. Essas políticas ajudam as organizações a proteger seus recursos aplicando os controles de acesso corretos nas circunstâncias adequadas. As políticas de acesso condicional basicamente definem Quem pode acessar O Que de Onde e Como.
Aqui estão alguns exemplos:
Política de Risco de Login: Esta política pode ser configurada para exigir autenticação multifator (MFA) quando um risco de login é detectado. Por exemplo, se o comportamento de login de um usuário for incomum em comparação com seu padrão regular, como fazer login de um país diferente, o sistema pode solicitar autenticação adicional.
Política de Conformidade de Dispositivos: Esta política pode restringir o acesso aos serviços do Azure apenas a dispositivos que estejam em conformidade com os padrões de segurança da organização. Por exemplo, o acesso pode ser permitido apenas a partir de dispositivos que tenham software antivírus atualizado ou que estejam executando uma determinada versão do sistema operacional.
É possível que uma política de acesso condicional esteja verificando algumas informações que podem ser facilmente manipuladas, permitindo um bypass da política. E se, por exemplo, a política estiver configurando MFA, o atacante poderá contorná-la.
É possível definir uma condição com base na plataforma do dispositivo (Android, iOS, Windows, macOS), no entanto, isso é baseado no user-agent, então é bastante fácil de contornar. Mesmo fazendo todas as opções exigirem MFA, se você usar um user-agent que não é reconhecido, conseguirá contornar a MFA.
Claro, se isso estiver configurado na política condicional, um atacante pode simplesmente usar uma VPN no país permitido ou tentar encontrar uma maneira de acessar a partir de um endereço IP permitido para contornar essas condições.
Você poderia indicar que se os clientes acessarem aplicativos do Office 365 pelo navegador, eles precisam de MFA:
Para contornar isso, é possível fingir que você está fazendo login em um aplicativo a partir de um aplicativo de desktop (como no Microsoft Teams no exemplo a seguir), o que contornará a proteção:
Como o aplicativo Microsoft Teams tem muitas permissões, você poderá usar esse acesso.
Você pode encontrar o ID de mais aplicativos públicos com permissões pré-definidas do Office365 no banco de dados do roadtools:
Este ataque é especialmente interessante porque, por padrão, aplicativos públicos do Office365 terão permissões para acessar alguns dados.
Por padrão, outros aplicativos criados por usuários não terão permissões e podem ser privados. No entanto, os usuários também podem criar aplicativos públicos concedendo-lhes algumas permissões.
Um cenário potencial onde uma política é definida para exigir MFA para acessar um aplicativo quando o usuário está usando um navegador (talvez porque seja um aplicativo web e, portanto, será a única maneira), se houver um aplicativo proxy - um aplicativo permitido para interagir com outros aplicativos em nome dos usuários -, o usuário poderia fazer login no aplicativo proxy e então, através deste aplicativo proxy, fazer login no aplicativo inicialmente protegido por MFA.
Verifique as técnicas Invoke-MFASweep e donkeytoken.
Uma opção de MFA do Azure é receber uma chamada no número de telefone configurado onde será solicitado ao usuário que envie o caractere #
.
Como os caracteres são apenas tons, um atacante poderia comprometer a mensagem de correio de voz do número de telefone, configurando como mensagem o tom de #
e então, ao solicitar o MFA, garantir que o telefone da vítima esteja ocupado (ligando para ele) para que a chamada do Azure seja redirecionada para o correio de voz.
As políticas frequentemente pedem um dispositivo compatível ou MFA, então um atacante poderia registrar um dispositivo compatível, obter um token PRT e burlar assim o MFA.
Comece registrando um dispositivo compatível no Intune, então obtenha o PRT com:
Encontre mais informações sobre esse tipo de ataque na seguinte página:
Az - Pass the PRTObtenha todas as políticas
MFASweep é um script PowerShell que tenta fazer login em vários serviços da Microsoft usando um conjunto de credenciais fornecido e tentará identificar se o MFA está habilitado. Dependendo de como as políticas de acesso condicional e outras configurações de autenticação multifatorial estão configuradas, alguns protocolos podem acabar sendo deixados como fator único. Ele também possui uma verificação adicional para configurações de ADFS e pode tentar fazer login no servidor ADFS local se detectado.
Donkey token é um conjunto de funções que visa ajudar consultores de segurança que precisam validar Políticas de Acesso Condicional, testes para portais Microsoft com 2FA habilitado, etc..
Teste cada portal se é possível fazer login sem MFA:
Porque o portal Azure não é restrito, é possível coletar um token do endpoint do portal para acessar qualquer serviço detectado pela execução anterior. Neste caso, o Sharepoint foi identificado, e um token para acessá-lo é solicitado:
Supondo que o token tenha a permissão Sites.Read.All (do Sharepoint), mesmo que você não consiga acessar o Sharepoint pela web por causa do MFA, é possível usar o token para acessar os arquivos com o token gerado:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)