GCP - Add Custom SSH Metadata
Last updated
Last updated
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)
Modifikacija metapodataka na instanci može dovesti do značajnih bezbednosnih rizika ako napadač dobije potrebne dozvole.
Na GCP-u, Linux sistemi često izvršavaju skripte iz Python Linux Guest Environment for Google Compute Engine. Kritična komponenta ovoga je accounts daemon, koji je dizajniran da redovno proverava krajnju tačku metapodataka instance za ažuriranja autorizovanih SSH javnih ključeva.
Stoga, ako napadač može da modifikuje prilagođene metapodatke, mogao bi da natera daemon da pronađe novi javni ključ, koji će biti obrađen i integrisan u lokalni sistem. Ključ će biti dodat u ~/.ssh/authorized_keys
datoteku postojećeg korisnika ili potencijalno kreirati novog korisnika sa sudo
privilegijama, u zavisnosti od formata ključa. I napadač će moći da kompromituje host.
Istražite postojeće SSH ključeve na instanci:
Izvršite komandu da opišete instancu i njene metapodatke kako biste locirali postojeće SSH ključeve. Relevantni deo u izlazu biće pod metadata
, posebno ključ ssh-keys
.
Obratite pažnju na format SSH ključeva: korisničko ime prethodi ključe, odvojeno dvotačkom.
Pripremite tekstualnu datoteku za SSH ključ metapodatke:
Sačuvajte detalje korisničkih imena i njihovih odgovarajućih SSH ključeva u tekstualnu datoteku pod imenom meta.txt
. Ovo je neophodno za očuvanje postojećih ključeva dok dodajete nove.
Generišite novi SSH ključ za ciljanog korisnika (alice
u ovom primeru):
Koristite komandu ssh-keygen
da generišete novi SSH ključ, osiguravajući da se polje komentara (-C
) poklapa sa ciljnim korisničkim imenom.
Dodajte novi javni ključ u meta.txt
, imitujući format koji se nalazi u metapodacima instance.
Ažurirajte SSH ključ metapodatke instance:
Primijenite ažurirane SSH ključ metapodatke na instancu koristeći komandu gcloud compute instances add-metadata
.
Pristupite instanci koristeći novi SSH ključ:
Povežite se na instancu putem SSH koristeći novi ključ, pristupajući shell-u u kontekstu ciljanog korisnika (alice
u ovom primeru).
Ako nijedan zanimljiv korisnik nije pronađen, moguće je kreirati novog koji će dobiti sudo
privilegije:
Moguće je proširiti domet SSH pristupa na više Virtuelnih Mašina (VM) u cloud okruženju primenom SSH ključeva na nivou projekta. Ovaj pristup omogućava SSH pristup bilo kojoj instanci unutar projekta koja nije eksplicitno blokirala SSH ključeve na nivou projekta. Evo sažetog vodiča:
Primena SSH ključeva na nivou projekta:
Koristite komandu gcloud compute project-info add-metadata
da dodate SSH ključeve iz meta.txt
u metapodatke projekta. Ova akcija osigurava da SSH ključevi budu prepoznati na svim VM-ovima u projektu, osim ako VM nema omogućenu opciju "Blokiraj SSH ključeve na nivou projekta".
SSH u instance koristeći ključeve na nivou projekta:
Sa SSH ključevima na nivou projekta, možete SSH u bilo koju instancu unutar projekta. Instance koje ne blokiraju ključeve na nivou projekta će prihvatiti SSH ključ, omogućavajući pristup.
Direktna metoda za SSH u instancu je korišćenje komande gcloud compute ssh [INSTANCE]
. Ova komanda koristi vaše trenutno korisničko ime i SSH ključeve postavljene na nivou projekta da pokuša pristup.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)