AWS - Cognito Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 para usuários autenticados em seu aplicativo (potencialmente, as pessoas poderão apenas se inscrever) e também podem conceder uma função IAM para usuários não autenticados.
Para informações básicas sobre o Cognito, consulte:
AWS - Cognito EnumOs Identity Pools podem conceder funções IAM para usuários não autenticados que apenas conhecem o Identity Pool ID (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 Identity Pool. Se um atacante puder registrar um usuário ou já tiver acesso ao provedor de identidade usado no identity pool, ele poderá acessar a função IAM concedida a usuários autenticados e abusar de seus privilégios.
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 Identity Pool que está aceitando como provedor de identidade o Cognito User Pool. Check how to do that here.
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 blog post. Para instruções de instalação, consulte a página principal do Pacu.
Exemplo de uso do cognito__attack
para tentar a criação de usuários e todos os vetores de privesc contra um determinado identity pool e cliente de user pool:
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:
Aprenda e pratique Hacking AWS:HackTricks Treinamento Especialista em Red Team AWS (ARTE) Aprenda e pratique Hacking GCP: HackTricks Treinamento Especialista em Red Team GCP (GRTE)