Az - OAuth Apps Phishing
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)
Aplicações Azure são configuradas com as permissões que poderão usar quando um usuário consente a aplicação (como enumerar o diretório, acessar arquivos ou realizar outras ações). Note que a aplicação estará agindo em nome do usuário, então mesmo que o app possa estar pedindo permissões de administração, se o usuário que consente não tiver essa permissão, o app não poderá realizar ações administrativas.
Por padrão, qualquer usuário pode dar consentimento a apps, embora isso possa ser configurado para que os usuários só possam consentir a apps de editores verificados para permissões selecionadas ou até mesmo remover a permissão para que os usuários consintam a aplicações.
Se os usuários não puderem consentir, administradores como GA
, Application Administrator
ou Cloud Application
Administrator
podem consentir as aplicações que os usuários poderão usar.
Além disso, se os usuários puderem consentir apenas a apps usando permissões de baixo risco, essas permissões são por padrão openid, profile, email, User.Read e offline_access, embora seja possível adicionar mais a essa lista.
E se eles puderem consentir a todos os apps, poderão consentir a todos os apps.
Não autenticado: De uma conta externa, crie uma aplicação com as permissões de baixo risco User.Read
e User.ReadBasic.All
, por exemplo, phishing de um usuário, e você poderá acessar informações do diretório.
Isso requer que o usuário phishing esteja capaz de aceitar apps OAuth de inquilinos externos.
Se o usuário phishing for um administrador que pode consentir qualquer app com quaisquer permissões, a aplicação também poderá solicitar permissões privilegiadas.
Autenticado: Tendo comprometido um principal com privilégios suficientes, crie uma aplicação dentro da conta e phishing de algum usuário privilegiado que pode aceitar permissões OAuth privilegiadas.
Nesse caso, você já pode acessar as informações do diretório, então a permissão User.ReadBasic.All
não é mais interessante.
Você provavelmente está interessado em permissões que requerem um administrador para concedê-las, porque um usuário comum não pode dar permissões a apps OAuth, por isso você precisa phishing apenas aqueles usuários (mais sobre quais funções/permissões concedem esse privilégio mais tarde).
Note que você precisa executar este comando de um usuário dentro do inquilino, você não pode encontrar essa configuração de um inquilino externo. O seguinte cli pode ajudá-lo a entender as permissões dos usuários:
Os usuários podem consentir a todos os aplicativos: Se dentro de permissionGrantPoliciesAssigned
você encontrar: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
, então os usuários podem aceitar todos os aplicativos.
Os usuários podem consentir a aplicativos de editores verificados ou da sua organização, mas apenas para permissões que você selecionar: Se dentro de permissionGrantPoliciesAssigned
você encontrar: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, então os usuários podem aceitar todos os aplicativos.
Desativar o consentimento do usuário: Se dentro de permissionGrantPoliciesAssigned
você encontrar apenas: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
e ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, então os usuários não podem consentir nada.
É possível encontrar o significado de cada uma das políticas comentadas em:
Verifique os usuários que são considerados administradores de aplicativos (podem aceitar novas aplicações):
O ataque envolve várias etapas direcionadas a uma empresa genérica. Veja como pode se desenrolar:
Registro de Domínio e Hospedagem de Aplicação: O atacante registra um domínio que se assemelha a um site confiável, por exemplo, "safedomainlogin.com". Sob este domínio, um subdomínio é criado (por exemplo, "companyname.safedomainlogin.com") para hospedar uma aplicação projetada para capturar códigos de autorização e solicitar tokens de acesso.
Registro da Aplicação no Azure AD: O atacante então registra uma Aplicação Multi-Tenant em seu Tenant do Azure AD, nomeando-a após a empresa alvo para parecer legítima. Eles configuram a URL de Redirecionamento da aplicação para apontar para o subdomínio que hospeda a aplicação maliciosa.
Configuração de Permissões: O atacante configura a aplicação com várias permissões de API (por exemplo, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Essas permissões, uma vez concedidas pelo usuário, permitem que o atacante extraia informações sensíveis em nome do usuário.
Distribuição de Links Maliciosos: O atacante cria um link contendo o id do cliente da aplicação maliciosa e o compartilha com usuários-alvo, enganando-os para conceder consentimento.
Registre uma nova aplicação. Pode ser apenas para o diretório atual se você estiver usando um usuário do diretório atacado ou para qualquer diretório se este for um ataque externo (como na imagem a seguir).
Também defina a URI de redirecionamento para a URL esperada onde você deseja receber o código para obter tokens (http://localhost:8000/callback
por padrão).
Em seguida, crie um segredo da aplicação:
Selecione permissões de API (por exemplo, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Execute a página da web (azure_oauth_phishing_example) que solicita as permissões:
Envie a URL para a vítima
Neste caso http://localhost:8000
As vítimas precisam aceitar o aviso:
Use o token de acesso para acessar as permissões solicitadas:
365-Stealer: Confira https://www.alteredsecurity.com/post/introduction-to-365-stealer para aprender como configurá-lo.
Dependendo das permissões solicitadas, você pode ser capaz de acessar diferentes dados do locatário (listar usuários, grupos... ou até mesmo modificar configurações) e informações do usuário (arquivos, notas, e-mails...). Então, você pode usar essas permissões para realizar essas ações.
Verifique as seções de Aplicações e Principal de Serviço da página:
Az - EntraID PrivescAprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)