GCP - Cloud Shell Persistence
Last updated
Last updated
Za više informacija pogledajte:
Google Cloud Shell pruža vam pristup komandnoj liniji za vaše cloud resurse direktno iz vašeg pregledača bez dodatnih troškova.
Možete pristupiti Google-ovom Cloud Shell-u sa web konzole ili pokretanjem gcloud cloud-shell ssh
.
Ova konzola ima neke zanimljive mogućnosti za napadače:
Svaki Google korisnik sa pristupom Google Cloud-u ima pristup potpuno autentifikovanom Cloud Shell instanci (Servisni nalozi mogu, čak i ako su Vlasnici organizacije).
Pomenuta instanca će zadržati svoj matični direktorijum najmanje 120 dana ako nema aktivnosti.
Ne postoji mogućnost za organizaciju da prati aktivnost te instance.
To u osnovi znači da napadač može postaviti zadnja vrata u matičnom direktorijumu korisnika i sve dok se korisnik povezuje sa GC Shell-om svakih 120 dana barem, zadnja vrata će preživeti i napadač će dobiti shell svaki put kada se pokrene samo radeći:
U home fascikli postoji još jedan fajl pod nazivom .customize_environment
koji će se izvršiti svaki put kada korisnik pristupi cloud shell-u (kao u prethodnoj tehnici). Samo ubacite prethodnu backdoor ili neku sličnu kako biste održali postojanost dok god korisnik "često" koristi cloud shell:
Važno je napomenuti da će se prvi put kada se izvrši radnja koja zahteva autentifikaciju, pojaviti prozor za autorizaciju u korisnikovom pregledaču. Ovaj prozor mora biti prihvaćen pre nego što se komanda može izvršiti. Ako se pojavi neočekivani prozor, to bi moglo izazvati sumnju i potencijalno ugroziti korišćenu metodu upornosti.
Ovo je prozor koji se pojavljuje prilikom izvršavanja gcloud projects list
iz cloud shell-a (kao napadač) viđen u korisničkoj sesiji pregledača:
Međutim, ako je korisnik aktivno koristio cloud shell, prozor za autorizaciju se neće pojaviti i možete prikupiti token korisnika sa:
U osnovi, koriste se ove 3 API poziva:
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (će vam omogućiti da dodate svoj javni ključ koji ste kreirali lokalno)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (će pokrenuti instancu)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (će vam reći IP adresu google cloud shell-a)
Međutim, možete pronaći dodatne informacije na https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key