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

This commit is contained in:
Translator
2025-06-24 14:03:12 +00:00
parent 2b86f9c2ae
commit e07e692b68
2 changed files with 48 additions and 51 deletions

View File

@@ -1,42 +0,0 @@
# AWS - IAM Roles Anywhere Privesc
{{#include ../../../../banners/hacktricks-training.md}}
AWS IAM RolesAnywhere omogućava radnim opterećenjima van AWS-a da preuzmu IAM uloge koristeći X.509 sertifikate. Međutim, kada politike poverenja nisu pravilno definisane, mogu se zloupotrebiti za eskalaciju privilegija.
Ova politika nema ograničenja o tome koji su trust anchor ili atributi sertifikata dozvoljeni. Kao rezultat toga, bilo koji sertifikat povezan sa bilo kojim trust anchor-om u nalogu može se koristiti za preuzimanje ove uloge.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Za privesc, `aws_signing_helper` je potreban sa https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html
Zatim, koristeći važeći sertifikat, napadač može preći u ulogu sa višim privilegijama.
```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
```
### References
- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -27,19 +27,19 @@ Možete se pretvarati da ste uloga koja se izvršava:
```bash
aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
```
**Potencijalni Uticaj:** Privesc na ulogu.
**Potential Impact:** Privesc do uloge.
> [!CAUTION]
> Imajte na umu da u ovom slučaju dozvola `sts:AssumeRole` treba da bude **naznačena u ulozi koju treba zloupotrebiti** i ne u politici koja pripada napadaču.\
> Sa jednim izuzetkom, da bi se **preuzela uloga iz druge računa**, napadačev račun **takođe treba** da ima **`sts:AssumeRole`** nad ulogom.
> Sa jednim izuzetkom, da bi se **preuzela uloga iz drugog naloga** napadačev nalog **takođe treba** da ima **`sts:AssumeRole`** nad ulogom.
### **`sts:GetFederationToken`**
Sa ovom dozvolom je moguće generisati akreditive za impersonaciju bilo kog korisnika:
Sa ovom dozvolom moguće je generisati akreditive za impersonaciju bilo kog korisnika:
```bash
aws sts get-federation-token --name <username>
```
Ovako se ova dozvola može dati sigurno, bez davanja pristupa za imitaciju drugih korisnika:
Ovo je kako se ova dozvola može dati sigurno bez davanja pristupa za imitaciju drugih korisnika:
```json
{
"Version": "2012-10-17",
@@ -78,11 +78,11 @@ Primer politike poverenja sa ovom dozvolom je:
]
}
```
Da biste generisali akreditive za impersonaciju uloge, generalno možete koristiti nešto poput:
Da biste generisali akreditive za impersonaciju uloge, mogli biste koristiti nešto poput:
```bash
aws sts assume-role-with-saml --role-arn <value> --principal-arn <value>
```
Ali **provajderi** mogu imati **svoje alate** koji olakšavaju ovo, kao što je [onelogin-aws-assume-role](https://github.com/onelogin/onelogin-python-aws-assume-role):
Ali **provajderi** mogu imati **svoje alate** kako bi to olakšali, poput [onelogin-aws-assume-role](https://github.com/onelogin/onelogin-python-aws-assume-role):
```bash
onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --aws-region eu-west-1 -z 3600
```
@@ -90,17 +90,56 @@ onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --
### `sts:AssumeRoleWithWebIdentity`
Ova dozvola omogućava dobijanje skupa privremenih bezbednosnih akreditiva za **korisnike koji su autentifikovani u mobilnoj, web aplikaciji, EKS...** sa provajderom web identiteta. [Saznajte više ovde.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)
Ova dozvola omogućava dobijanje skupa privremenih bezbednosnih kredencijala za **korisnike koji su autentifikovani u mobilnoj, web aplikaciji, EKS...** sa provajderom web identiteta. [Saznajte više ovde.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)
Na primer, ako **EKS servisni nalog** treba da **imitira IAM ulogu**, imaće token u **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** i može **da preuzme ulogu i dobije akreditive** radeći nešto poput:
Na primer, ako **EKS servisni nalog** treba da može da **imitira IAM ulogu**, imaće token u **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** i može **da preuzme ulogu i dobije kredencijale** radeći nešto poput:
```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
```
### Zloupotreba federacije
### Federation Abuse
{{#ref}}
../aws-basic-information/aws-federation-abuse.md
{{#endref}}
### IAM Roles Anywhere Privesc
AWS IAM RolesAnywhere omogućava radnim opterećenjima van AWS-a da preuzmu IAM uloge koristeći X.509 sertifikate. Međutim, kada politike poverenja nisu pravilno definisane, mogu se zloupotrebiti za eskalaciju privilegija.
Ova politika nema ograničenja o tome koji su trust anchor ili atributi sertifikata dozvoljeni. Kao rezultat, svaki sertifikat povezan sa bilo kojim trust anchor u nalogu može se koristiti za preuzimanje ove uloge.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Za privesc, `aws_signing_helper` je potreban sa https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html
Zatim, koristeći važeći sertifikat, napadač može preći u ulogu sa višim privilegijama.
```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
```
### References
- [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}}