GCP - BigQuery Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aby uzyskać więcej informacji na temat BigQuery, sprawdź:
Odczytując informacje przechowywane w tabeli BigQuery, może być możliwe znalezienie sensywnych informacji. Aby uzyskać dostęp do informacji, potrzebne są uprawnienia bigquery.tables.get
, bigquery.jobs.create
i bigquery.tables.getData
:
To jest inny sposób na dostęp do danych. Eksportuj je do koszyka pamięci w chmurze i pobierz pliki z informacjami.
Aby wykonać tę akcję, potrzebne są następujące uprawnienia: bigquery.tables.export
, bigquery.jobs.create
i storage.objects.create
.
Możliwe jest wprowadzenie pewnych zaufanych danych do tabeli Bigquery, aby wykorzystać lukę w innym miejscu. Można to łatwo zrobić za pomocą uprawnień bigquery.tables.get
, bigquery.tables.updateData
i bigquery.jobs.create
:
bigquery.datasets.setIamPolicy
Napastnik mógłby nadużyć tej uprawnienia, aby przyznać sobie dodatkowe uprawnienia do zestawu danych BigQuery:
bigquery.datasets.update
, (bigquery.datasets.get
)Tylko to uprawnienie pozwala na aktualizację dostępu do zestawu danych BigQuery poprzez modyfikację ACL, które wskazują, kto może uzyskać do niego dostęp:
bigquery.tables.setIamPolicy
Napastnik mógłby nadużyć tej uprawnienia, aby przyznać sobie dodatkowe uprawnienia do tabeli BigQuery:
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
Zgodnie z dokumentacją, z wymienionymi uprawnieniami możliwe jest aktualizowanie polityki wiersza.
Jednakże, używając cli bq
potrzebujesz jeszcze kilku: bigquery.rowAccessPolicies.create
, bigquery.tables.get
.
Możliwe jest znalezienie identyfikatora filtra w wynikach enumeracji polityk wierszy. Przykład:
Jeśli masz bigquery.rowAccessPolicies.delete
zamiast bigquery.rowAccessPolicies.update
, możesz po prostu usunąć politykę:
Inną potencjalną opcją obejścia polityk dostępu do wierszy byłoby po prostu zmienienie wartości ograniczonych danych. Jeśli możesz zobaczyć tylko wtedy, gdy term
to Cfba
, po prostu zmodyfikuj wszystkie rekordy tabeli, aby miały term = "Cfba"
. Jednak to jest uniemożliwione przez bigquery.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)