AWS - IAM 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)
Para mais informações sobre IAM, confira:
AWS - IAM, Identity Center & SSO Enumiam:CreatePolicyVersion
Concede a capacidade de criar uma nova versão de política IAM, contornando a necessidade de permissão iam:SetDefaultPolicyVersion
usando a flag --set-as-default
. Isso permite definir permissões personalizadas.
Comando de Exploração:
Impacto: Escalona privilégios diretamente ao permitir qualquer ação em qualquer recurso.
iam:SetDefaultPolicyVersion
Permite alterar a versão padrão de uma política IAM para outra versão existente, potencialmente escalonando privilégios se a nova versão tiver mais permissões.
Comando Bash:
Impacto: Escalação de privilégio indireta ao habilitar mais permissões.
iam:CreateAccessKey
Permite criar um ID de chave de acesso e uma chave de acesso secreta para outro usuário, levando a uma potencial escalação de privilégio.
Exploit:
Impacto: Escalação de privilégio direta ao assumir as permissões estendidas de outro usuário.
iam:CreateLoginProfile
| iam:UpdateLoginProfile
Permite criar ou atualizar um perfil de login, incluindo a definição de senhas para login no console AWS, levando a uma escalação de privilégio direta.
Exploit para Criação:
Exploit para Atualização:
Impacto: Escalação de privilégio direta ao fazer login como "qualquer" usuário.
iam:UpdateAccessKey
Permite habilitar uma chave de acesso desativada, potencialmente levando a acesso não autorizado se o atacante possuir a chave desativada.
Exploit:
Impacto: Escalação de privilégio direta ao reativar chaves de acesso.
iam:CreateServiceSpecificCredential
| iam:ResetServiceSpecificCredential
Permite gerar ou redefinir credenciais para serviços específicos da AWS (por exemplo, CodeCommit, Amazon Keyspaces), herdando as permissões do usuário associado.
Exploit para Criação:
Exploit para Redefinir:
Impacto: Escalação direta de privilégios dentro das permissões de serviço do usuário.
iam:AttachUserPolicy
|| iam:AttachGroupPolicy
Permite anexar políticas a usuários ou grupos, escalando diretamente os privilégios ao herdar as permissões da política anexada.
Exploit para Usuário:
Exploit para Grupo:
Impacto: Escalação de privilégio direta para qualquer coisa que a política concede.
iam:AttachRolePolicy
, ( sts:AssumeRole
|iam:createrole
) | iam:PutUserPolicy
| iam:PutGroupPolicy
| iam:PutRolePolicy
Permite anexar ou colocar políticas em funções, usuários ou grupos, possibilitando a escalada direta de privilégios ao conceder permissões adicionais.
Exploit para Função:
Exploit para Políticas Inline:
Você pode usar uma política como:
Impacto: Escalação direta de privilégios ao adicionar permissões através de políticas.
iam:AddUserToGroup
Permite adicionar a si mesmo a um grupo IAM, escalando privilégios ao herdar as permissões do grupo.
Exploit:
Impacto: Escalação direta de privilégios para o nível das permissões do grupo.
iam:UpdateAssumeRolePolicy
Permite alterar o documento da política de assumir função de uma função, possibilitando a assunção da função e suas permissões associadas.
Exploit:
Onde a política se parece com a seguinte, que concede ao usuário permissão para assumir a função:
Impacto: Escalação direta de privilégios ao assumir as permissões de qualquer função.
iam:UploadSSHPublicKey
|| iam:DeactivateMFADevice
Permite o upload de uma chave pública SSH para autenticação no CodeCommit e a desativação de dispositivos MFA, levando a uma potencial escalada indireta de privilégios.
Exploit para Upload de Chave SSH:
Exploit para Desativação de MFA:
Impacto: Escalação de privilégio indireta ao habilitar o acesso ao CodeCommit ou desabilitar a proteção MFA.
iam:ResyncMFADevice
Permite a ressincronização de um dispositivo MFA, potencialmente levando a uma escalada de privilégio indireta ao manipular a proteção MFA.
Comando Bash:
Impacto: Escalação de privilégio indireta ao adicionar ou manipular dispositivos MFA.
iam:UpdateSAMLProvider
, iam:ListSAMLProviders
, (iam:GetSAMLProvider
)Com essas permissões, você pode alterar os metadados XML da conexão SAML. Então, você poderia abusar da federação SAML para fazer login com qualquer papel que esteja confiando nele.
Observe que, ao fazer isso, usuários legítimos não poderão fazer login. No entanto, você poderia obter o XML, para que possa colocar o seu, fazer login e configurar o anterior de volta.
TODO: Uma ferramenta capaz de gerar os metadados SAML e fazer login com um papel especificado
iam:UpdateOpenIDConnectProviderThumbprint
, iam:ListOpenIDConnectProviders
, (iam:
GetOpenIDConnectProvider
)(Inseguro sobre isso) Se um atacante tiver essas permissões, ele poderia adicionar uma nova impressão digital para conseguir fazer login em todos os papéis que confiam no provedor.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)