GCP - Compute Enum
Reading time: 9 minutes
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 गिटहब रिपोजिटरी में सबमिट करके।
GCP VPC & Networking
इस बारे में जानें कि यह कैसे काम करता है:
Enumeration
# List networks
gcloud compute networks list
gcloud compute networks describe <network>
# List subnetworks
gcloud compute networks subnets list
gcloud compute networks subnets get-iam-policy <name> --region <region>
gcloud compute networks subnets describe <name> --region <region>
# List FW rules in networks
gcloud compute firewall-rules list --format="table(
name,
network,
direction,
priority,
sourceRanges.list():label=SRC_RANGES,
destinationRanges.list():label=DEST_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
denied[].map().firewall_rule().list():label=DENY,
sourceTags.list():label=SRC_TAGS,
sourceServiceAccounts.list():label=SRC_SVC_ACCT,
targetTags.list():label=TARGET_TAGS,
targetServiceAccounts.list():label=TARGET_SVC_ACCT,
disabled
)"
# List Hierarchical Firewalls
gcloud compute firewall-policies list (--folder <value>| --organization <value>)
gcloud compute firewall-policies describe <fw_policy>
gcloud compute firewall-policies list-rules <fw_policy>
# Get Firewalls of each region
gcloud compute network-firewall-policies list
## Get final FWs applied in a region
gcloud compute network-firewall-policies get-effective-firewalls --network=<vpc_name> --region <region>
आप आसानी से खुले फ़ायरवॉल नियमों के साथ कंप्यूट इंस्टेंस ढूंढ सकते हैं https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_firewall_enum
कंप्यूट इंस्टेंस
यह वह तरीका है जिससे आप GCP के अंदर वर्चुअल मशीनें चला सकते हैं। अधिक जानकारी के लिए इस पृष्ठ की जांच करें:
enumeration
# Get list of zones
# It's interesting to know which zones are being used
gcloud compute regions list | grep -E "NAME|[^0]/"
# List compute instances & get info
gcloud compute instances list
gcloud compute instances describe <instance name>
gcloud compute instances get-iam-policy <instance> --zone=ZONE
gcloud compute instances get-screenshot <instance name> # Instace must have "Display Device" enabled
gcloud compute instances os-inventory list-instances # Get OS info of instances (OS Config agent is running on instances)
# Enumerate disks
gcloud compute disks list
gcloud compute disks describe <disk>
gcloud compute disks get-iam-policy <disk>
अधिक जानकारी के लिए कि कैसे SSH या मेटाडेटा को अधिकार बढ़ाने के लिए एक उदाहरण को संशोधित करें, इस पृष्ठ को देखें:
GCP - local privilege escalation ssh pivoting
अधिकार बढ़ाना
अगले पृष्ठ में, आप देख सकते हैं कि कैसे अधिकार बढ़ाने के लिए कंप्यूट अनुमतियों का दुरुपयोग करें:
बिना प्रमाणीकरण वाला Enum
GCP - Compute Unauthenticated Enum
पोस्ट एक्सप्लोइटेशन
GCP - Compute Post Exploitation
स्थिरता
सीरियल कंसोल लॉग
कंप्यूट इंजन सीरियल कंसोल लॉग एक विशेषता है जो आपको आपके वर्चुअल मशीन उदाहरणों के बूट और ऑपरेटिंग सिस्टम लॉग को देखने और निदान करने की अनुमति देती है।
सीरियल कंसोल लॉग उदाहरण के बूट प्रक्रिया का निम्न-स्तरीय दृश्य प्रदान करते हैं, जिसमें कर्नेल संदेश, इनिट स्क्रिप्ट और अन्य सिस्टम घटनाएँ शामिल हैं जो बूट-अप के दौरान होती हैं। यह बूट मुद्दों को डिबग करने, गलत कॉन्फ़िगरेशन या सॉफ़्टवेयर त्रुटियों की पहचान करने, या नेटवर्क कनेक्टिविटी समस्याओं को हल करने के लिए उपयोगी हो सकता है।
ये लॉग संवेदनशील जानकारी को उजागर कर सकते हैं जो सिस्टम लॉग से होती है जिसे निम्न स्तर के उपयोगकर्ता आमतौर पर नहीं देख सकते, लेकिन उचित IAM अनुमतियों के साथ आप उन्हें पढ़ने में सक्षम हो सकते हैं।
आप सीरियल पोर्ट लॉग को क्वेरी करने के लिए निम्नलिखित gcloud कमांड का उपयोग कर सकते हैं (आवश्यक अनुमति compute.instances.getSerialPortOutput
है):
gcloud compute instances get-serial-port-output <instance-name>
Startup Scripts output
यह स्टार्टअप स्क्रिप्ट्स का आउटपुट VM से देखने के लिए संभव है:
sudo journalctl -u google-startup-scripts.service
OS Configuration Manager
आप OS कॉन्फ़िगरेशन प्रबंधन सेवा का उपयोग VM उदाहरण (VM) के लिए निरंतर कॉन्फ़िगरेशन (इच्छित स्थिति और सॉफ़्टवेयर) को तैनात, क्वेरी और बनाए रखने के लिए कर सकते हैं। Compute Engine पर, आपको VM पर निरंतर सॉफ़्टवेयर कॉन्फ़िगरेशन बनाए रखने के लिए guest policies का उपयोग करना होगा।
OS कॉन्फ़िगरेशन प्रबंधन सुविधा आपको कॉन्फ़िगरेशन नीतियों को परिभाषित करने की अनुमति देती है जो यह निर्दिष्ट करती हैं कि कौन से सॉफ़्टवेयर पैकेज स्थापित किए जाने चाहिए, कौन से सेवाएँ सक्षम की जानी चाहिए, और आपके VMs पर कौन से फ़ाइलें या कॉन्फ़िगरेशन मौजूद होने चाहिए। आप अपने VMs के सॉफ़्टवेयर कॉन्फ़िगरेशन को प्रबंधित करने के लिए एक घोषणात्मक दृष्टिकोण का उपयोग कर सकते हैं, जो आपको अपने कॉन्फ़िगरेशन प्रबंधन प्रक्रिया को स्वचालित और स्केल करने में अधिक आसानी प्रदान करता है।
यह IAM अनुमतियों के माध्यम से उदाहरणों में लॉगिन करने की भी अनुमति देता है, इसलिए यह privesc और pivoting के लिए बहुत उपयोगी है।
warning
किसी पूरे प्रोजेक्ट या उदाहरण में os-config सक्षम करने के लिए आपको बस metadata कुंजी enable-oslogin
को true
पर सेट करने की आवश्यकता है।
इसके अलावा, आप 2fa सक्षम करने के लिए enable-oslogin-2fa
मेटाडेटा को true
पर सेट कर सकते हैं।
जब आप इसे एक उदाहरण बनाते समय सक्षम करते हैं, तो मेटाडेटा कुंजियाँ स्वचालित रूप से सेट की जाएंगी।
OS-config में 2fa के बारे में अधिक, यह केवल तब लागू होता है जब उपयोगकर्ता एक उपयोगकर्ता हो, यदि यह एक SA (जैसे कि compute SA) है तो इसे किसी अतिरिक्त चीज़ की आवश्यकता नहीं होगी।
Enumeration
gcloud compute os-config patch-deployments list
gcloud compute os-config patch-deployments describe <patch-deployment>
gcloud compute os-config patch-jobs list
gcloud compute os-config patch-jobs describe <patch-job>
Images
Custom Images
कस्टम कंप्यूट इमेज में संवेदनशील विवरण या अन्य कमजोर कॉन्फ़िगरेशन हो सकते हैं जिनका आप लाभ उठा सकते हैं।
जब एक इमेज बनाई जाती है, तो आप 3 प्रकार की एन्क्रिप्शन चुन सकते हैं: Google प्रबंधित कुंजी (डिफ़ॉल्ट), KMS से कुंजी, या क्लाइंट द्वारा दी गई कच्ची कुंजी।
Enumeration
आप निम्नलिखित कमांड के साथ एक प्रोजेक्ट में गैर-मानक इमेज की सूची पूछ सकते हैं:
gcloud compute machine-images list
gcloud compute machine-images describe <name>
gcloud compute machine-images get-iam-policy <name>
आप फिर निर्यात किसी भी छवि से वर्चुअल डिस्क को कई प्रारूपों में कर सकते हैं। निम्नलिखित कमांड छवि test-image
को qcow2 प्रारूप में निर्यात करेगी, जिससे आप फ़ाइल को डाउनलोड कर सकते हैं और आगे की जांच के लिए स्थानीय रूप से एक VM बना सकते हैं:
gcloud compute images export --image test-image \
--export-format qcow2 --destination-uri [BUCKET]
# Execute container inside a docker
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh
विशेषाधिकार वृद्धि
Compute Instances विशेषाधिकार वृद्धि अनुभाग की जांच करें।
कस्टम इंस्टेंस टेम्पलेट्स
एक इंस्टेंस टेम्पलेट इंस्टेंस गुणों को परिभाषित करता है ताकि सुसंगत कॉन्फ़िगरेशन को तैनात करने में मदद मिल सके। इनमें चल रहे इंस्टेंस के कस्टम मेटाडेटा के समान प्रकार के संवेदनशील डेटा हो सकते हैं। आप जांचने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
# List the available templates
gcloud compute instance-templates list
# Get the details of a specific template
gcloud compute instance-templates describe [TEMPLATE NAME]
यह जानना दिलचस्प हो सकता है कि नए इमेज़ किस डिस्क का उपयोग कर रही हैं, लेकिन ये टेम्पलेट आमतौर पर संवेदनशील जानकारी नहीं रखेंगे।
स्नैपशॉट
स्नैपशॉट डिस्क के बैकअप होते हैं। ध्यान दें कि यह डिस्क को क्लोन करने के समान नहीं है (एक और उपलब्ध विशेषता)।
स्नैपशॉट उस डिस्क के समान एन्क्रिप्शन का उपयोग करेगा जिससे इसे लिया गया है।
एन्यूमरेशन
gcloud compute snapshots list
gcloud compute snapshots describe <snapshot>
gcloud compute snapshots get-iam-policy <snapshot>
विशेषाधिकार वृद्धि
Compute Instances विशेषाधिकार वृद्धि अनुभाग की जांच करें।
संदर्भ
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 गिटहब रिपोजिटरी में सबमिट करके।