GCP - Voeg Aangepaste SSH Metadata By

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Wysig die metadata

Metadata-wijziging op ’n instansie kan lei tot beduidende sekuriteitsrisiko’s as ’n aanvaller die nodige toestemmings verkry.

Inkorporering van SSH Sleutels in Aangepaste Metadata

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 regte skep, afhangende van die sleutel se formaat. En die aanvaller sal in staat wees om die gasheer te kompromitteer.

Voeg SSH sleutel by bestaande bevoorregte gebruiker

  1. 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.
gcloud compute instances describe [INSTANCE] --zone [ZONE]
  • Let op die formaat van die SSH sleutels: die gebruikersnaam kom voor die sleutel, geskei deur ’n dubbelepunt.
  1. 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.
  1. 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.
ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
  • Voeg die nuwe publieke sleutel by meta.txt, wat die formaat naboots wat in die instansie se metadata gevind word.
  1. Werk die Instansie se SSH Sleutel Metadata Op:
  • Pas die opgedateerde SSH sleutel metadata op die instansie toe met die gcloud compute instances add-metadata opdrag.
gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
  1. Toegang tot die Instansie met die Nuwe SSH Sleutel:
  • Maak verbinding met die instansie met SSH met die nuwe sleutel, en toegang die skulp in die konteks van die teiken gebruiker (alice in hierdie voorbeeld).
ssh -i ./key alice@localhost
sudo id

Skep ’n nuwe bevoorregte gebruiker en voeg ’n SSH sleutel by

As daar geen interessante gebruiker gevind word nie, is dit moontlik om ’n nuwe een te skep wat sudo regte gegee sal word:

# define the new account username
NEWUSER="definitelynotahacker"

# create a key
ssh-keygen -t rsa -C "$NEWUSER" -f ./key -P ""

# create the input meta file
NEWKEY="$(cat ./key.pub)"
echo "$NEWUSER:$NEWKEY" > ./meta.txt

# update the instance metadata
gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-keys=meta.txt

# ssh to the new account
ssh -i ./key "$NEWUSER"@localhost

SSH sleutels op projekvlak

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:

  1. 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 “Blok projekwye SSH sleutels” opsie geaktiveer het.
gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
  1. 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 en 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.

Verwysings

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks