GCP - Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 deluješ 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 prikačite proizvoljni servisni nalog na resurs. 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 putem čitanja tajne koja sadrži token SA).
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š.
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.
Ovo je kako ja testiram specifične dozvole za izvođenje specifičnih akcija unutar GCP-a.
Preuzmite github repo https://github.com/carlospolop/gcp_privesc_scripts
Dodajte u tests/ novi skript
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č za generisanje OAuth tokena 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 ograničenje opsega 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:
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.
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.
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 pivotingUč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)