AWS - STS Enum

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

STS

AWS Security Token Service (STS) é principalmente projetado para emitir credenciais temporárias e de privilégio limitado. Essas credenciais podem ser solicitadas para usuários de AWS Identity and Access Management (IAM) ou para usuários autenticados (usuários federados).

Dado que o propósito do STS é emitir credenciais para a impersonação de identidade, o serviço é imensamente valioso para escalada de privilégios e manutenção de persistência, mesmo que possa não ter uma ampla variedade de opções.

Impersonação de Assumir Função

A ação AssumeRole fornecida pelo AWS STS é crucial, pois permite a um principal adquirir credenciais para outro principal, essencialmente se passando por ele. Ao ser invocada, responde com um ID de chave de acesso, uma chave secreta e um token de sessão correspondente ao ARN especificado.

Para Testadores de Penetração ou membros da Equipe Vermelha, essa técnica é fundamental para escalada de privilégios (como detalhado aqui). No entanto, vale ressaltar que essa técnica é bastante evidente e pode não pegar um atacante desprevenido.

Lógica de Assumir Função

Para assumir uma função na mesma conta se a função a ser assumida permitir especificamente um ARN de função como em:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

O papel priv-role neste caso, não precisa ser especificamente permitido a assumir esse papel (com essa permissão é suficiente).

No entanto, se um papel está permitindo que uma conta o assuma, como em:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

O papel que está tentando assumir precisará de permissão específica sts:AssumeRole sobre esse papel para assumi-lo.

Se você tentar assumir um papel de uma conta diferente, o papel assumido deve permitir (indicando o ARN do papel ou a conta externa), e o papel que está tentando assumir o outro DEVE ter permissões para assumi-lo (neste caso, isso não é opcional, mesmo que o papel assumido esteja especificando um ARN).

Enumeração

# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>

# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>

Privesc

Na página a seguir, você pode verificar como abusar das permissões do STS para escalar privilégios:

pageAWS - STS Privesc

Pós-Exploração

pageAWS - STS Post Exploitation

Persistência

pageAWS - IAM Persistence

Referências

Aprenda hacking na AWS de zero a herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización