GCP - BigQuery Privesc
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen über BigQuery siehe:
GCP - Bigquery EnumDurch das Lesen der Informationen, die in einer BigQuery-Tabelle gespeichert sind, könnte es möglich sein, sensible Informationen zu finden. Um auf die Informationen zuzugreifen, sind die benötigten Berechtigungen bigquery.tables.get
, bigquery.jobs.create
und bigquery.tables.getData
:
Dies ist eine weitere Möglichkeit, auf die Daten zuzugreifen. Exportieren Sie sie in einen Cloud-Speicher-Bucket und laden Sie die Dateien mit den Informationen herunter.
Um diese Aktion durchzuführen, sind die folgenden Berechtigungen erforderlich: bigquery.tables.export
, bigquery.jobs.create
und storage.objects.create
.
Es könnte möglich sein, bestimmte vertrauenswürdige Daten in eine Bigquery-Tabelle einzufügen, um eine Schwachstelle an anderer Stelle auszunutzen. Dies kann einfach mit den Berechtigungen bigquery.tables.get
, bigquery.tables.updateData
und bigquery.jobs.create
durchgeführt werden:
bigquery.datasets.setIamPolicy
Ein Angreifer könnte dieses Privileg missbrauchen, um sich selbst weitere Berechtigungen über ein BigQuery-Dataset zu geben:
bigquery.datasets.update
, (bigquery.datasets.get
)Nur diese Berechtigung ermöglicht es, Ihren Zugriff auf ein BigQuery-Dataset zu aktualisieren, indem die ACLs geändert werden, die angeben, wer darauf zugreifen kann:
bigquery.tables.setIamPolicy
Ein Angreifer könnte dieses Privileg missbrauchen, um sich selbst weitere Berechtigungen über eine BigQuery-Tabelle zu geben:
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
Laut den Dokumenten ist es mit den genannten Berechtigungen möglich, eine Zeilenrichtlinie zu aktualisieren.
Allerdings benötigst du zusätzlich zur CLI bq
noch einige weitere: bigquery.rowAccessPolicies.create
, bigquery.tables.get
.
Es ist möglich, die Filter-ID in der Ausgabe der Zeilenrichtlinienenumeration zu finden. Beispiel:
Wenn Sie bigquery.rowAccessPolicies.delete
anstelle von bigquery.rowAccessPolicies.update
haben, könnten Sie auch einfach die Richtlinie löschen:
Eine weitere potenzielle Option, um Zeilenzugriffsrichtlinien zu umgehen, wäre, einfach den Wert der eingeschränkten Daten zu ändern. Wenn Sie nur sehen können, wenn term
Cfba
ist, ändern Sie einfach alle Datensätze der Tabelle so, dass term = "Cfba"
ist. Dies wird jedoch von BigQuery verhindert.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)