GCP - Privilege Escalation
Reading time: 6 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Introduction to GCP Privilege Escalation
GCP, kao i svaka druga cloud platforma, ima neke principale: korisnike, grupe i servisne naloge, i neke resurse kao što su compute engine, cloud functions…
Zatim, putem uloga, dozvole se dodeljuju tim principima nad resursima. Ovo je način da se specificiraju dozvole koje princip ima nad resursom u GCP-u.
Postoje određene dozvole koje će omogućiti korisniku da dobije još više dozvola na resursu ili resursima trećih strana, i to se naziva privilege escalation (takođe, iskorišćavanje ranjivosti za dobijanje više dozvola).
Stoga, želeo bih da podelim tehnike eskalacije privilegija u GCP-u u 2 grupe:
- Privesc ka principu: Ovo će vam omogućiti da imituješ drugi princip, i stoga delujete kao on sa svim njegovim dozvolama. npr.: Zloupotreba getAccessToken za imitaciju servisnog naloga.
- Privesc na resursu: Ovo će vam omogućiti da dobijete više dozvola nad specifičnim resursom. npr.: možete zloupotrebiti setIamPolicy dozvolu nad cloudfunctions da biste omogućili pokretanje funkcije.
- Imajte na umu da neke dozvole resursa će vam takođe omogućiti da povežete proizvoljni servisni nalog sa resursom. To znači da ćete moći da pokrenete resurs sa SA, uđete u resurs i ukradete SA token. Stoga, ovo će omogućiti eskalaciju ka principu putem eskalacije resursa. Ovo se ranije dešavalo na nekoliko resursa, ali sada je ređe (ali se i dalje može desiti).
Očigledno, najzanimljivije tehnike eskalacije privilegija su one iz druge grupe jer će vam omogućiti da dobijete više privilegija van resursa nad kojima već imate neke privilegije. Međutim, imajte na umu da eskalacija u resursima može takođe dati pristup osetljivim informacijama ili čak drugim principima (možda čitanjem tajne koja sadrži token SA).
warning
Važno je napomenuti da su u GCP servisni nalozi i principi i dozvole, tako da će eskalacija privilegija u SA takođe omogućiti da ga imituješ.
note
Dozvole u zagradi označavaju dozvole potrebne za iskorišćavanje ranjivosti sa gcloud
. One možda neće biti potrebne ako se iskorišćavaju putem API-ja.
Permissions for Privilege Escalation Methodology
Ovo je kako ja testiram za specifične dozvole da bih izvršio specifične radnje unutar GCP-a.
- Preuzmite github repo https://github.com/carlospolop/gcp_privesc_scripts
- Dodajte u tests/ novi skript
Bypassing access scopes
Tokeni SA koji su procurili iz GCP metadata servisa imaju access scopes. Ovo su ograničenja na dozvole koje token ima. Na primer, ako token ima https://www.googleapis.com/auth/cloud-platform
opseg, imaće potpun pristup svim GCP uslugama. Međutim, ako token ima https://www.googleapis.com/auth/cloud-platform.read-only
opseg, imaće samo pristup za čitanje svim GCP uslugama čak i ako SA ima više dozvola u IAM-u.
Ne postoji direktan način da se zaobiđu ove dozvole, ali uvek možete pokušati da tražite nove kredencijale na kompromitovanom hostu, pronađete servisni ključ da generišete OAuth token bez ograničenja ili preskočite na drugu VM manje ograničenu.
Kada se koriste access scopes, OAuth token koji se generiše za računar (VM) će imati opseg ograničenje uključeno. Međutim, možda ćete moći da zaobiđete ovo ograničenje i iskoristite dozvole koje ima kompromitovani nalog.
Najbolji način da se zaobiđe ovo ograničenje je ili da pronađete nove kredencijale na kompromitovanom hostu, da pronađete servisni ključ za generisanje OAuth tokena bez ograničenja ili da kompromitujete drugu VM sa manje ograničenim SA.
Proverite SA sa ključevima generisanim sa:
for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done
Tehnike eskalacije privilegija
Način da eskalirate svoje privilegije u AWS-u je da imate dovoljno dozvola da, na neki način, pristupite privilegijama drugih servisnih naloga/korisnika/grupa. Povezivanje eskalacija dok ne dobijete administratorski pristup organizaciji.
warning
GCP ima stotine (ako ne i hiljade) dozvola koje entitet može dobiti. U ovoj knjizi možete pronaći sve dozvole koje znam koje možete zloupotrebiti da eskalirate privilegije, ali ako znate neki put koji ovde nije pomenut, molim vas podelite ga.
Podstranice ove sekcije su raspoređene po servisima. Na svakom servisu možete pronaći različite načine za eskalaciju privilegija na tim servisima.
Zloupotreba GCP-a za lokalnu eskalaciju privilegija
Ako ste unutar mašine u GCP-u, možda ćete moći da zloupotrebite dozvole za eskalaciju privilegija čak i lokalno:
GCP - local privilege escalation ssh pivoting
Reference
- https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/
- https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/
- https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.