From 45524eec4a311c14cc73ff0a14960534ad77ebec Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 30 Sep 2025 19:17:53 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat --- .../aws-sts-privesc.md | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md index badeb9b7e..f47be71c3 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md @@ -6,9 +6,9 @@ ### `sts:AssumeRole` -Svaka uloga se kreira sa **politikom poverenja u ulogu**, ova politika navodi **ko može da preuzme kreiranu ulogu**. Ako uloga iz **istog naloga** kaže da nalog može da je preuzme, to znači da će taj nalog moći da pristupi ulozi (i potencijalno izvrši **privesc**). +Svaka uloga se kreira sa **politikom poverenja uloge**, ova politika ukazuje **ko može preuzeti kreiranu ulogu**. Ako uloga iz **istog naloga** navodi da neki nalog može da je preuzme, to znači da će taj nalog moći da pristupi ulozi (i potencijalno izvrši **privesc**). -Na primer, sledeća politika poverenja u ulogu pokazuje da svako može da je preuzme, dakle **bilo koji korisnik će moći da privesc** na dozvole povezane sa tom ulogom. +Na primer, sledeća politika poverenja uloge pokazuje da svako može da je preuzme, stoga će **bilo koji korisnik moći da izvrši privesc** nad dozvolama povezanim sa tom ulogom. ```json { "Version": "2012-10-17", @@ -23,20 +23,20 @@ Na primer, sledeća politika poverenja u ulogu pokazuje da svako može da je pre ] } ``` -Možete preuzeti ulogu pokretanjem: +Možete да се представите као одређена улога покретањем: ```bash aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ``` -**Potencijalni uticaj:** Privesc na rolu. +**Potencijalni uticaj:** Privesc to the role. > [!CAUTION] -> Imajte na umu da u ovom slučaju dozvola `sts:AssumeRole` mora biti **navedena u roli koju zloupotrebljavate** i ne u politici koja pripada attacker account.\ -> Sa jednom izuzetkom, da biste **preuzeli rolu iz drugog naloga** attacker account **takođe mora** imati **`sts:AssumeRole`** nad tom rolom. +> Imajte na umu da u ovom slučaju dozvola `sts:AssumeRole` mora biti **naznačena u roli koju se želi zloupotrebiti** i ne može biti samo u politici koja pripada napadaču.\ +> Sa jednom izuzetkom, da bi se **assume a role from a different account** nalog napadača **takođe mora** imati **`sts:AssumeRole`** nad tom rolom. ### `sts:AssumeRoleWithSAML` -Politika poverenja sa ovom rolom daje **korisnicima autentifikovanim putem SAML-a pristup da se predstavljaju kao ta rola.** +Politika poverenja vezana za ovu rolu daje **korisnicima autentifikovanim putem SAML mogućnost da se predstave kao ta rola.** Primer politike poverenja sa ovom dozvolom je: ```json @@ -59,21 +59,21 @@ Primer politike poverenja sa ovom dozvolom je: ] } ``` -Da biste generisali kredencijale kako biste se predstavili kao uloga, uopšteno možete koristiti nešto poput: +Da biste generisali credentials za impersonate role, uopšteno možete koristiti nešto poput: ```bash aws sts assume-role-with-saml --role-arn --principal-arn ``` -Ali **provajderi** mogu imati sopstvene **alate** da to olakšaju, kao što je [onelogin-aws-assume-role](https://github.com/onelogin/onelogin-python-aws-assume-role): +Ali **provajderi** mogu imati **svoje alate** koji to olakšavaju, kao [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 ``` -**Potencijalni uticaj:** Privesc to the role. +**Potencijalni uticaj:** Privesc na ulogu. ### `sts:AssumeRoleWithWebIdentity` -Ovo dopuštenje omogućava dobijanje skupa privremenih bezbednosnih akreditiva za **korisnike koji su autentifikovani u mobilnoj aplikaciji, web aplikaciji, EKS...** kod provajdera web identiteta. [Learn more here.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) +Ovo dopuštenje omogućava pribavljanje skupa privremenih sigurnosnih akreditiva za **korisnike koji su autentifikovani u mobilnoj, web aplikaciji, EKS...** pomoću provajdera web identiteta. [Learn more here.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) -Na primer, ako bi **EKS service account** trebalo da bude u mogućnosti da **preuzme IAM rolu**, imaće token u **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** i može **preuzeti rolu i dobiti akreditive** radeći nešto poput: +For example, if an **EKS service account** should be able to **impersonate an IAM role**, it will have a token in **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** and can **assume the role and get credentials** doing something like: ```bash aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/ --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 @@ -86,9 +86,13 @@ aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/ ### IAM Roles Anywhere Privesc -AWS IAM RolesAnywhere omogućava workload-ima izvan AWS-a da preuzmu IAM roles koristeći X.509 sertifikate. Ali kada trust policies nisu pravilno ograničene, mogu se zloupotrebiti za privilege escalation. +AWS IAM Roles Anywhere omogućava radnim opterećenjima izvan AWS-a da preuzimaju IAM role koristeći X.509 sertifikate. Međutim, kada trust policy nisu pravilno ograničene, mogu se zloupotrebiti za eskalaciju privilegija. -Ova politika ne sadrži ograničenja koja definišu koji trust anchor ili certificate attributes su dozvoljeni. Kao rezultat, bilo koji sertifikat vezan za bilo koji trust anchor u nalogu može se koristiti da assume this role. +Da bi se razumeo ovaj napad, neophodno je objasniti šta je trust anchor. Trust anchor u AWS IAM Roles Anywhere predstavlja root of trust entitet — sadrži javni sertifikat Certificate Authority (CA) koji je registrovan u nalogu, kako bi AWS mogao da validira predstavljene X.509 sertifikate. Na taj način, ako je klijentski sertifikat izdat od strane te CA i trust anchor je aktivan, AWS ga prepoznaje kao važeći. + +Pored toga, profile je konfiguracija koja definiše koje atribute X.509 sertifikata (kao što su CN, OU ili SAN) će biti transformisani u session tags, a ti tagovi će kasnije biti upoređeni sa uslovima trust policy. + +Ova policy nema ograničenja koja trust anchor ili atributi sertifikata su dozvoljeni. Kao rezultat, bilo koji sertifikat vezan za bilo koji trust anchor u nalogu može biti iskorišćen da preuzme ovu ulogu. ```json { "Version": "2012-10-17", @@ -108,9 +112,9 @@ Ova politika ne sadrži ograničenja koja definišu koji trust anchor ili certif } ``` -Za privesc, potreban je `aws_signing_helper` sa https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html +Za privesc, `aws_signing_helper` je potreban i dostupan na https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html -Zatim, koristeći važeći sertifikat, attacker može pivot into the higher privilege role +Zatim, koristeći važeći sertifikat, attacker može pivot u ulogu sa višim privilegijama ```bash aws_signing_helper credential-process \ --certificate readonly.pem \ @@ -119,13 +123,13 @@ aws_signing_helper credential-process \ --profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \ --role-arn arn:aws:iam::123456789012:role/Admin ``` -Trust anchor potvrđuje da klijentski sertifikat `readonly.pem` potiče od njegovog ovlašćenog CA; kada je trust anchor kreiran, javni sertifikat CA je bio uključen (i sada se koristi za validaciju `readonly.pem`). Unutar `readonly.pem` nalazi se javni ključ, koji AWS koristi da verifikuje da je potpis napravljen odgovarajućim privatnim ključem `readonly.key`. +Trust anchor potvrđuje da `readonly.pem` sertifikat klijenta potiče od njegovog ovlašćenog CA, i u okviru tog `readonly.pem` sertifikata nalazi se javni ključ koji AWS koristi da proveri da je potpis napravljen odgovarajućim privatnim ključem `readonly.key`. -Sertifikat takođe dokazuje identitet i pruža atribute (kao što su CN ili OU) koje `default` profil transformiše u tagove, koje role’s trust policy može koristiti da odluči da li da odobri pristup; ako u trust policy nema uslova, ti tagovi se ignorišu i svako sa važećim sertifikatom može proći. +Sertifikat takođe pruža atribute (kao što su CN ili OU) koje `default` profil prevodi u tagove, koje politika poverenja role može koristiti da odluči da li da odobri pristup. Ako u politici poverenja nema uslova, ti tagovi nemaju upotrebu i pristup se odobrava svakome ko ima važeći sertifikat. Da bi ovaj napad bio moguć, i trust anchor i `default` profil moraju biti aktivni. -### Reference +### References - [https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation](https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation)