AWS - STS Privesc
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- V茅rifiez les plans d'abonnement !
- Rejoignez le 馃挰 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 馃惁 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud d茅p么ts github.
STS
sts:AssumeRole
Chaque r么le est cr茅茅 avec une politique de confiance de r么le, cette politique indique qui peut assumer le r么le cr茅茅. Si un r么le du m锚me compte indique qu'un compte peut l'assumer, cela signifie que le compte pourra acc茅der au r么le (et potentiellement privesc).
Par exemple, la politique de confiance de r么le suivante indique que n'importe qui peut l'assumer, donc tout utilisateur pourra privesc aux permissions associ茅es 脿 ce r么le.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}
Vous pouvez usurper un r么le en ex茅cutant :
aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
Impact potentiel : Privesc au r么le.
caution
Notez que dans ce cas, la permission sts:AssumeRole
doit 锚tre indiqu茅e dans le r么le 脿 abuser et non dans une politique appartenant 脿 l'attaquant.
Avec une exception, afin de prendre un r么le d'un compte diff茅rent, le compte de l'attaquant doit 茅galement avoir le sts:AssumeRole
sur le r么le.
sts:GetFederationToken
Avec cette permission, il est possible de g茅n茅rer des identifiants pour usurper n'importe quel utilisateur :
aws sts get-federation-token --name <username>
C'est ainsi que cette permission peut 锚tre accord茅e en toute s茅curit茅 sans donner acc猫s 脿 l'imitation d'autres utilisateurs :
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "arn:aws:sts::947247140022:federated-user/${aws:username}"
}
]
}
sts:AssumeRoleWithSAML
Une politique de confiance avec ce r么le accorde aux utilisateurs authentifi茅s via SAML l'acc猫s pour usurper le r么le.
Un exemple de politique de confiance avec cette autorisation est :
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "OneLogin",
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::290594632123:saml-provider/OneLogin"
},
"Action": "sts:AssumeRoleWithSAML",
"Condition": {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
}
}
]
}
Pour g茅n茅rer des identifiants afin d'usurper le r么le, vous pourriez utiliser quelque chose comme :
aws sts assume-role-with-saml --role-arn <value> --principal-arn <value>
Mais les fournisseurs peuvent avoir leurs propres outils pour faciliter cela, comme onelogin-aws-assume-role :
onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600
Impact potentiel : Privesc au r么le.
sts:AssumeRoleWithWebIdentity
Cette autorisation permet d'obtenir un ensemble de credentials de s茅curit茅 temporaires pour les utilisateurs qui ont 茅t茅 authentifi茅s dans une application mobile, web, EKS... avec un fournisseur d'identit茅 web. En savoir plus ici.
Par exemple, si un compte de service EKS doit 锚tre capable de se faire passer pour un r么le IAM, il aura un jeton dans /var/run/secrets/eks.amazonaws.com/serviceaccount/token
et peut assumer le r么le et obtenir des credentials en faisant quelque chose comme :
aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/<role_name> --role-session-name something --web-identity-token file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token
# The role name can be found in the metadata of the configuration of the pod
Abus de f茅d茅ration
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- V茅rifiez les plans d'abonnement !
- Rejoignez le 馃挰 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 馃惁 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud d茅p么ts github.