AWS - STS Privesc
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)
sts:AssumeRole
Toda função é criada com uma política de confiança da função, essa política indica quem pode assumir a função criada. Se uma função da mesma conta diz que uma conta pode assumi-la, isso significa que a conta poderá acessar a função (e potencialmente privesc).
Por exemplo, a seguinte política de confiança da função indica que qualquer um pode assumi-la, portanto qualquer usuário poderá privesc para as permissões associadas a essa função.
Você pode se passar por um papel executando:
Impacto Potencial: Privesc para o papel.
Observe que, neste caso, a permissão sts:AssumeRole
precisa ser indicada no papel a ser abusado e não em uma política pertencente ao atacante.
Com uma exceção, para assumir um papel de uma conta diferente, a conta do atacante também precisa ter o sts:AssumeRole
sobre o papel.
sts:GetFederationToken
Com essa permissão, é possível gerar credenciais para se passar por qualquer usuário:
Esta é a maneira como essa permissão pode ser concedida de forma segura, sem dar acesso para se passar por outros usuários:
sts:AssumeRoleWithSAML
Uma política de confiança com este papel concede acesso a usuários autenticados via SAML para se passar pelo papel.
Um exemplo de uma política de confiança com esta permissão é:
Para gerar credenciais para se passar pelo papel, em geral, você poderia usar algo como:
Mas provedores podem ter suas próprias ferramentas para facilitar isso, como onelogin-aws-assume-role:
Impacto Potencial: Privesc para o papel.
sts:AssumeRoleWithWebIdentity
Esta permissão concede permissão para obter um conjunto de credenciais de segurança temporárias para usuários que foram autenticados em um aplicativo móvel, web, EKS... com um provedor de identidade web. Saiba mais aqui.
Por exemplo, se uma conta de serviço EKS deve ser capaz de impersonar um papel IAM, ela terá um token em /var/run/secrets/eks.amazonaws.com/serviceaccount/token
e pode assumir o papel e obter credenciais fazendo algo como:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)