AWS - Enumeração Não Autenticada do Cognito
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Cognito Não Autenticado
Cognito é um serviço da AWS que permite que desenvolvedores concedam acesso aos serviços da AWS para os usuários de seus aplicativos. Os desenvolvedores concederão funções IAM a usuários autenticados em seu aplicativo (potencialmente pessoas poderão apenas se inscrever) e também podem conceder uma função IAM a usuários não autenticados.
Para informações básicas sobre o Cognito, consulte:
ID do Pool de Identidade
Pools de Identidade podem conceder funções IAM a usuários não autenticados que apenas conhecem o ID do Pool de Identidade (o que é bastante comum de encontrar), e um atacante com essa informação poderia tentar acessar essa função IAM e explorá-la.
Além disso, funções IAM também podem ser atribuídas a usuários autenticados que acessam o Pool de Identidade. Se um atacante puder registrar um usuário ou já tiver acesso ao provedor de identidade usado no pool de identidade, ele poderá acessar a função IAM concedida a usuários autenticados e abusar de seus privilégios.
Verifique como fazer isso aqui.
ID do Pool de Usuários
Por padrão, o Cognito permite registrar novos usuários. Ser capaz de registrar um usuário pode lhe dar acesso ao aplicativo subjacente ou à função de acesso IAM autenticada de um Pool de Identidade que está aceitando como provedor de identidade o Pool de Usuários do Cognito. Verifique como fazer isso aqui.
Módulos Pacu para pentesting e enumeração
Pacu, o framework de exploração da AWS, agora inclui os módulos "cognito__enum" e "cognito__attack" que automatizam a enumeração de todos os ativos do Cognito em uma conta e sinalizam configurações fracas, atributos de usuário usados para controle de acesso, etc., e também automatizam a criação de usuários (incluindo suporte a MFA) e escalonamento de privilégios com base em atributos personalizados modificáveis, credenciais de pool de identidade utilizáveis, funções assumíveis em tokens de id, etc.
Para uma descrição das funções dos módulos, consulte a parte 2 do post do blog. Para instruções de instalação, consulte a página principal do Pacu.
Uso
Exemplo de uso do cognito__attack
para tentar a criação de usuários e todos os vetores de privesc contra um determinado pool de identidade e cliente de pool de usuários:
Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
Exemplo de uso do cognito__enum para coletar todos os grupos de usuários, clientes de grupos de usuários, grupos de identidade, usuários, etc. visíveis na conta AWS atual:
Pacu (new:test) > run cognito__enum
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.