AWS - STS Privesc

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan başlayarak AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

STS

sts:AssumeRole

Her rol, bir rol güven politikası ile oluşturulur, bu politika oluşturulan rolü kimin üstlenebileceğini belirtir. Eğer aynı hesaptan bir rol, bir hesabın onu üstlenebileceğini belirtiyorsa, bu demektir ki hesap rolüne erişebilecek (ve potansiyel olarak yetki yükseltme yapabilecek).

Örneğin, aşağıdaki rol güven politikası herhangi birinin üstlenebileceğini belirtir, bu nedenle herhangi bir kullanıcı yetkileriyle yetki yükseltebilecektir.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "sts:AssumeRole"
}
]
}

Aşağıdaki komutu kullanarak bir rol taklit edebilirsiniz:

aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname

Potansiyel Etki: Rol için ayrıcalık yükseltme.

Bu durumda, izin sts:AssumeRolenin saldırganın ait olduğu bir politikada değil, kötüye kullanmak için rolde belirtilmesi gerektiğini unutmayın. Bir istisna dışında, farklı bir hesaptan bir rolü varsaymak için saldırgan hesabının da rol üzerinde sts:AssumeRole iznine sahip olması gerekmektedir.

sts:AssumeRoleWithSAML

Bu role sahip bir güven politikası, SAML ile kimlik doğrulama yapan kullanıcılara rolü taklit etme erişimi sağlar.

Bu izne sahip bir güven politikasının örneği:

{
"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"
}
}
}
]
}

Genel olarak rolü taklit etmek için kimlik bilgileri oluşturmak için şunu kullanabilirsiniz:

aws sts  assume-role-with-saml --role-arn <value> --principal-arn <value>

Ancak hizmet sağlayıcılar, bunu daha kolay hale getirmek için kendi araçlarına sahip olabilirler, örneğin onelogin-aws-assume-role:

onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600

Potansiyel Etki: Rol için ayrıcalık yükseltme.

sts:AssumeRoleWithWebIdentity

Bu izin, bir web kimlik sağlayıcı ile kimlik doğrulaması yapılmış olan mobil, web uygulaması, EKS... kullanıcıları için geçici güvenlik kimlik bilgileri almak için izin verir. Daha fazlasını buradan öğrenin.

Örneğin, bir EKS hizmet hesabı, bir IAM rolünü taklit edebilmeli ise, /var/run/secrets/eks.amazonaws.com/serviceaccount/token yolunda bir belirteçi olacaktır ve aşağıdaki gibi bir işlem yaparak rolü üstlenebilir ve kimlik bilgilerini alabilir:

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

Federasyon Kötüye Kullanımı

pageAWS - Federation Abuse
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated