12 KiB
GCP - Compute Instances
{{#include ../../../../banners/hacktricks-training.md}}
Basic Information
Google Cloud Compute Instances गूगल के क्लाउड इन्फ्रास्ट्रक्चर पर अनुकूलन योग्य वर्चुअल मशीनें हैं, जो विभिन्न प्रकार के अनुप्रयोगों के लिए स्केलेबल और ऑन-डिमांड कंप्यूटिंग पावर प्रदान करती हैं। ये वैश्विक तैनाती, स्थायी भंडारण, लचीले OS विकल्प और मजबूत नेटवर्किंग और सुरक्षा एकीकरण जैसी सुविधाएँ प्रदान करती हैं, जिससे ये वेबसाइटों को होस्ट करने, डेटा संसाधित करने और क्लाउड में अनुप्रयोगों को कुशलतापूर्वक चलाने के लिए एक बहुपरकारी विकल्प बनती हैं।
Confidential VM
Confidential VMs हार्डवेयर-आधारित सुरक्षा सुविधाओं का उपयोग करती हैं जो नवीनतम पीढ़ी के AMD EPYC प्रोसेसर द्वारा प्रदान की जाती हैं, जिसमें मेमोरी एन्क्रिप्शन और सुरक्षित एन्क्रिप्टेड वर्चुअलाइजेशन शामिल हैं। ये सुविधाएँ VM को इसके भीतर संसाधित और संग्रहीत डेटा की सुरक्षा करने में सक्षम बनाती हैं, यहां तक कि होस्ट ऑपरेटिंग सिस्टम और हाइपरवाइजर से भी।
Confidential VM चलाने के लिए इसे बदलने की आवश्यकता हो सकती है जैसे कि मशीन का प्रकार, नेटवर्क इंटरफेस, बूट डिस्क इमेज।
Disk & Disk Encryption
आप डिस्क का चयन करने या नई बनाने के लिए स्वतंत्र हैं। यदि आप एक नई डिस्क का चयन करते हैं, तो आप:
- डिस्क का आकार चुन सकते हैं
- OS चुन सकते हैं
- संकेत कर सकते हैं कि क्या आप इंस्टेंस के हटाए जाने पर डिस्क को हटाना चाहते हैं
- एन्क्रिप्शन: डिफ़ॉल्ट रूप से एक गूगल प्रबंधित कुंजी का उपयोग किया जाएगा, लेकिन आप KMS से एक कुंजी का चयन भी कर सकते हैं या उपयोग करने के लिए कच्ची कुंजी निर्दिष्ट कर सकते हैं।
Deploy Container
यह वर्चुअल मशीन के अंदर एक कंटेनर तैनात करना संभव है।
आप उपयोग करने के लिए इमेज कॉन्फ़िगर कर सकते हैं, अंदर चलाने के लिए कमांड सेट कर सकते हैं, आर्गुमेंट्स, एक वॉल्यूम माउंट कर सकते हैं, और env वेरिएबल्स (संवेदनशील जानकारी?) सेट कर सकते हैं और इस कंटेनर के लिए कई विकल्प कॉन्फ़िगर कर सकते हैं जैसे privileged के रूप में निष्पादित करना, stdin और pseudo TTY।
Service Account
डिफ़ॉल्ट रूप से, कंप्यूट इंजन डिफ़ॉल्ट सेवा खाता का उपयोग किया जाएगा। इस SA का ईमेल इस प्रकार है: <proj-num>-compute@developer.gserviceaccount.com
इस सेवा खाते के पास पूरे प्रोजेक्ट पर संपादक की भूमिका (उच्च विशेषाधिकार) है।
और डिफ़ॉल्ट एक्सेस स्कोप निम्नलिखित हैं:
- https://www.googleapis.com/auth/devstorage.read_only -- बकेट्स तक पढ़ने की पहुंच :)
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/trace.append
हालांकि, इसे एक क्लिक से cloud-platform प्रदान करना या कस्टम स्कोप निर्दिष्ट करना संभव है।

Firewall
HTTP और HTTPS ट्रैफ़िक की अनुमति देना संभव है।

Networking
- IP Forwarding: इंस्टेंस के निर्माण से IP फॉरवर्डिंग सक्षम करना संभव है।
- Hostname: इंस्टेंस को एक स्थायी होस्टनेम देना संभव है।
- Interface: एक नेटवर्क इंटरफेस जोड़ना संभव है।
Extra Security
ये विकल्प VM की सुरक्षा बढ़ाएंगे और अनुशंसित हैं:
- Secure boot: Secure boot आपके VM इंस्टेंस को बूट-स्तरीय और कर्नेल-स्तरीय मैलवेयर और रूटकिट से बचाने में मदद करता है।
- Enable vTPM: वर्चुअल ट्रस्टेड प्लेटफॉर्म मॉड्यूल (vTPM) आपके गेस्ट VM की प्री-बूट और बूट अखंडता को मान्य करता है, और कुंजी निर्माण और सुरक्षा प्रदान करता है।
- Integrity supervision: Integrity monitoring आपको Stackdriver रिपोर्टों का उपयोग करके आपके शील्डेड VM इंस्टेंस की रनटाइम बूट अखंडता की निगरानी और सत्यापन करने की अनुमति देता है। vTPM को सक्षम करना आवश्यक है।
VM Access
VM तक पहुंच सक्षम करने का सामान्य तरीका है कुछ SSH सार्वजनिक कुंजियों को VM तक पहुंचने की अनुमति देना।
हालांकि, यह भी संभव है कि IAM का उपयोग करके os-config सेवा के माध्यम से VM तक पहुंच सक्षम करें। इसके अलावा, इस सेवा का उपयोग करके VM तक पहुंच के लिए 2FA सक्षम करना भी संभव है।
जब यह सेवा सक्षम होती है, तो SSH कुंजियों के माध्यम से पहुंच अक्षम होती है।

Metadata
यह स्वचालन (AWS में userdata) को परिभाषित करना संभव है जो शेल कमांड हैं जो हर बार मशीन चालू होने या पुनरारंभ होने पर निष्पादित होंगे।
यह भी संभव है कि अतिरिक्त मेटाडेटा कुंजी-मूल्य मान जो मेटाडेटा एंडपॉइंट से सुलभ होंगे, जोड़े जाएं। यह जानकारी आमतौर पर पर्यावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए उपयोग की जाती है। इसे describe विधि का उपयोग करके enumeration अनुभाग में एक कमांड से प्राप्त किया जा सकता है, लेकिन इसे इंस्टेंस के अंदर मेटाडेटा एंडपॉइंट तक पहुंचकर भी प्राप्त किया जा सकता है।
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
इसके अलावा, संलग्न सेवा खाते के लिए प्रमाणीकरण टोकन और इंस्टेंस, नेटवर्क और प्रोजेक्ट के बारे में सामान्य जानकारी भी मेटाडेटा एंडपॉइंट से उपलब्ध होगी। अधिक जानकारी के लिए देखें:
{{#ref}} https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440 {{#endref}}
एन्क्रिप्शन
डिफ़ॉल्ट रूप से एक Google-प्रबंधित एन्क्रिप्शन कुंजी का उपयोग किया जाता है लेकिन एक ग्राहक-प्रबंधित एन्क्रिप्शन कुंजी (CMEK) को कॉन्फ़िगर किया जा सकता है। आप यह भी कॉन्फ़िगर कर सकते हैं कि जब उपयोग की गई CMEF को रद्द किया जाता है तो क्या करना है: नोटिंग या VM को बंद करना।

{{#include ../../../../banners/hacktricks-training.md}}