mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
-42
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user