GCP - Add Custom SSH Metadata
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Metadata-wysig op 'n instansie kan lei tot beduidende sekuriteitsrisiko's as 'n aanvaller die nodige toestemmings verkry.
Op GCP, Linux stelsels voer dikwels skripte uit vanaf die Python Linux Guest Environment for Google Compute Engine. 'n Kritieke komponent hiervan is die accounts daemon, wat ontwerp is om gereeld die instansie metadata-eindpunt na te gaan vir opdaterings aan die geautoriseerde SSH publieke sleutels.
Daarom, as 'n aanvaller aangepaste metadata kan wysig, kan hy die daemon laat vind 'n nuwe publieke sleutel, wat verwerk en geïntegreer sal word in die plaaslike stelsel. Die sleutel sal bygevoeg word in die ~/.ssh/authorized_keys
lêer van 'n bestaande gebruiker of moontlik 'n nuwe gebruiker met sudo
toestemmings skep, afhangende van die sleutel se formaat. En die aanvaller sal in staat wees om die gasheer te kompromitteer.
Ondersoek Bestaande SSH Sleutels op die Instansie:
Voer die opdrag uit om die instansie en sy metadata te beskryf om bestaande SSH sleutels te vind. Die relevante afdeling in die uitvoer sal onder metadata
wees, spesifiek die ssh-keys
sleutel.
Let op die formaat van die SSH sleutels: die gebruikersnaam kom voor die sleutel, geskei deur 'n dubbelepunt.
Bereid 'n Tekslêer voor vir SSH Sleutel Metadata:
Stoor die besonderhede van gebruikersname en hul ooreenstemmende SSH sleutels in 'n tekslêer genaamd meta.txt
. Dit is noodsaaklik om die bestaande sleutels te behou terwyl nuwe bygevoeg word.
Genereer 'n Nuwe SSH Sleutel vir die Teiken Gebruiker (alice
in hierdie voorbeeld):
Gebruik die ssh-keygen
opdrag om 'n nuwe SSH sleutel te genereer, en verseker dat die kommentaarveld (-C
) ooreenstem met die teiken gebruikersnaam.
Voeg die nuwe publieke sleutel by meta.txt
, wat die formaat naboots wat in die instansie se metadata gevind word.
Werk die Instansie se SSH Sleutel Metadata Op:
Pas die opgedateerde SSH sleutel metadata toe op die instansie met die gcloud compute instances add-metadata
opdrag.
Toegang tot die Instansie met die Nuwe SSH Sleutel:
Verbind met die instansie met SSH met die nuwe sleutel, en toegang die skulp in die konteks van die teiken gebruiker (alice
in hierdie voorbeeld).
As daar geen interessante gebruiker gevind word nie, is dit moontlik om 'n nuwe een te skep wat sudo
toestemmings sal ontvang:
Dit is moontlik om die bereik van SSH-toegang tot verskeie Virtuele Masjiene (VM's) in 'n wolkomgewing te verbreed deur SSH sleutels op projekvlak toe te pas. Hierdie benadering laat SSH-toegang toe tot enige instansie binne die projek wat nie eksplisiet projekwye SSH-sleutels geblokkeer het nie. Hier is 'n samegevatte gids:
Pas SSH Sleutels op die Projekvlak toe:
Gebruik die gcloud compute project-info add-metadata
opdrag om SSH sleutels van meta.txt
by die projek se metadata te voeg. Hierdie aksie verseker dat die SSH sleutels oor alle VM's in die projek erken word, tensy 'n VM die "Blokkeer projekwye SSH-sleutels" opsie geaktiveer het.
SSH in Instansies met Projekwye Sleutels:
Met projekwye SSH sleutels in plek, kan jy SSH in enige instansie binne die projek. Instansies wat nie projekwye sleutels blokkeer nie, sal die SSH-sleutel aanvaar, wat toegang verleen.
'n Direkte metode om in 'n instansie te SSH is deur die gcloud compute ssh [INSTANCE]
opdrag te gebruik. Hierdie opdrag gebruik jou huidige gebruikersnaam en die SSH sleutels wat op projekvlak gestel is om toegang te probeer verkry.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)