Az - Seamless SSO
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)
Dos documentos: O Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) loga automaticamente os usuários quando estão em seus dispositivos corporativos conectados à sua rede corporativa. Quando ativado, os usuários não precisam digitar suas senhas para fazer login no Azure AD, e geralmente, nem mesmo digitar seus nomes de usuário. Este recurso fornece aos seus usuários fácil acesso às suas aplicações baseadas em nuvem sem precisar de componentes adicionais no local.
Basicamente, o Azure AD Seamless SSO loga os usuários quando estão em um PC conectado ao domínio local.
É suportado tanto por PHS (Sincronização de Hash de Senha) quanto por PTA (Autenticação Pass-through).
O SSO de desktop usa Kerberos para autenticação. Quando configurado, o Azure AD Connect cria uma conta de computador chamada AZUREADSSOACC$
no AD local. A senha da conta AZUREADSSOACC$
é enviada em texto simples para o Azure AD durante a configuração.
Os tickets Kerberos são criptografados usando o NTHash (MD4) da senha e o Azure AD usa a senha enviada para descriptografar os tickets.
Azure AD expõe um endpoint (https://autologon.microsoftazuread-sso.com) que aceita tickets Kerberos. O navegador da máquina unida ao domínio encaminha os tickets para este endpoint para SSO.
A senha do usuário AZUREADSSOACC$
nunca muda. Portanto, um administrador de domínio poderia comprometer o hash desta conta, e então usá-lo para criar tickets silver para se conectar ao Azure com qualquer usuário local sincronizado:
Com o hash, você agora pode gerar tickets silver:
Para utilizar o ticket silver, os seguintes passos devem ser executados:
Iniciar o Navegador: O Mozilla Firefox deve ser iniciado.
Configurar o Navegador:
Navegue até about:config
.
Defina a preferência para network.negotiate-auth.trusted-uris para os valores especificados:
https://aadg.windows.net.nsatc.net
https://autologon.microsoftazuread-sso.com
Acessar a Aplicação Web:
Visite uma aplicação web que esteja integrada com o domínio AAD da organização. Um exemplo comum é Office 365.
Processo de Autenticação:
Na tela de login, o nome de usuário deve ser inserido, deixando o campo de senha em branco.
Para prosseguir, pressione TAB ou ENTER.
Isso não contorna o MFA se estiver habilitado
Também é possível realizar este ataque sem um ataque dcsync para ser mais furtivo, como explicado neste post do blog. Para isso, você só precisa de um dos seguintes:
Golden Ticket: Se você tiver a chave KRBTGT, pode criar o TGT que precisa para o usuário atacado.
Hash NTLM ou chave AES de um usuário comprometido: O SeamlessPass se comunicará com o controlador de domínio com essas informações para gerar o TGT.
Hash NTLM ou chave AES da conta AZUREADSSOACC$: Com essas informações e o Identificador de Segurança (SID) do usuário a ser atacado, é possível criar um ticket de serviço e autenticar com a nuvem (como realizado no método anterior).
Finalmente, com o TGT, é possível usar a ferramenta SeamlessPass com:
Mais informações para configurar o Firefox para funcionar com SSO sem interrupções podem ser encontradas neste post do blog.
Se os administradores do Active Directory tiverem acesso ao Azure AD Connect, eles podem definir SID para qualquer usuário da nuvem. Dessa forma, os tickets Kerberos podem ser criados também para usuários apenas na nuvem. O único requisito é que o SID seja um SID adequado.
Alterar o SID de usuários administradores apenas na nuvem agora está bloqueado pela Microsoft. Para mais informações, consulte https://aadinternals.com/post/on-prem_admin/
Qualquer pessoa que possa gerenciar contas de computador (AZUREADSSOACC$
) no contêiner ou OU em que essa conta está, pode configurar uma delegação constrained baseada em recurso sobre a conta e acessá-la.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)