GCP - Cloud SQL Post Exploitation
Cloud SQL
Aby uzyskać więcej informacji na temat Cloud SQL, sprawdź:
GCP - Cloud SQL Enumcloudsql.instances.update
, ( cloudsql.instances.get
)
cloudsql.instances.update
, ( cloudsql.instances.get
)Aby połączyć się z bazami danych, wystarczy mieć dostęp do portu bazy danych oraz znać nazwę użytkownika i hasło, nie ma żadnych wymagań IAM. Dlatego łatwym sposobem na uzyskanie dostępu, zakładając, że baza danych ma publiczny adres IP, jest zaktualizowanie dozwolonych sieci i pozwolenie na dostęp z własnego adresu IP.
Można również użyć --no-backup
aby zakłócić tworzenie kopii zapasowych bazy danych.
Ponieważ to są wymagania, nie jestem całkowicie pewien, do czego służą uprawnienia cloudsql.instances.connect
i cloudsql.instances.login
. Jeśli wiesz, prześlij PR!
cloudsql.users.list
cloudsql.users.list
Pobierz listę wszystkich użytkowników bazy danych:
cloudsql.users.create
cloudsql.users.create
To uprawnienie pozwala na utworzenie nowego użytkownika wewnątrz bazy danych:
cloudsql.users.update
cloudsql.users.update
To uprawnienie pozwala na aktualizację użytkownika wewnątrz bazy danych. Na przykład, można zmienić jego hasło:
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
Kopie zapasowe mogą zawierać stare wrażliwe informacje, dlatego warto je sprawdzić. Przywróć kopię zapasową w bazie danych:
Aby działać w bardziej skrytym sposób, zaleca się utworzenie nowej instancji SQL i odzyskanie danych tam, zamiast w obecnie działających bazach danych.
cloudsql.backupRuns.delete
cloudsql.backupRuns.delete
To uprawnienie umożliwia usuwanie kopii zapasowych:
cloudsql.instances.export
, storage.objects.create
cloudsql.instances.export
, storage.objects.create
Eksportuj bazę danych do kubełka Cloud Storage, aby móc uzyskać do niej dostęp stamtąd:
cloudsql.instances.import
, storage.objects.get
cloudsql.instances.import
, storage.objects.get
Zaimportuj bazę danych (nadpisz) z kubełka Cloud Storage:
cloudsql.databases.delete
cloudsql.databases.delete
Usuń bazę danych z instancji bazy danych:
Last updated