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)
Per ulteriori informazioni su BigQuery controlla:
GCP - Bigquery EnumLeggendo le informazioni memorizzate all'interno di una tabella BigQuery potrebbe essere possibile trovare sensitive information. Per accedere alle informazioni, i permessi necessari sono bigquery.tables.get
, bigquery.jobs.create
e bigquery.tables.getData
:
Questo è un altro modo per accedere ai dati. Esportalo in un bucket di cloud storage e scarica i file con le informazioni.
Per eseguire questa azione sono necessari i seguenti permessi: bigquery.tables.export
, bigquery.jobs.create
e storage.objects.create
.
Potrebbe essere possibile introdurre determinati dati fidati in una tabella Bigquery per abusare di una vulnerabilità in un altro luogo. Questo può essere facilmente fatto con i permessi bigquery.tables.get
, bigquery.tables.updateData
e bigquery.jobs.create
:
bigquery.datasets.setIamPolicy
Un attaccante potrebbe abusare di questo privilegio per darsi ulteriori permessi su un dataset di BigQuery:
bigquery.datasets.update
, (bigquery.datasets.get
)Solo questo permesso consente di aggiornare il tuo accesso a un dataset di BigQuery modificando le ACL che indicano chi può accedervi:
bigquery.tables.setIamPolicy
Un attaccante potrebbe abusare di questo privilegio per darsi ulteriori permessi su una tabella BigQuery:
bigquery.rowAccessPolicies.update
, bigquery.rowAccessPolicies.setIamPolicy
, bigquery.tables.getData
, bigquery.jobs.create
Secondo la documentazione, con i permessi menzionati è possibile aggiornare una policy di riga.
Tuttavia, utilizzando il cli bq
hai bisogno di qualcos'altro: bigquery.rowAccessPolicies.create
, bigquery.tables.get
.
È possibile trovare l'ID del filtro nell'output dell'enumerazione delle politiche di riga. Esempio:
Se hai bigquery.rowAccessPolicies.delete
invece di bigquery.rowAccessPolicies.update
, puoi anche semplicemente eliminare la policy:
Un'altra opzione potenziale per bypassare le politiche di accesso alle righe sarebbe semplicemente cambiare il valore dei dati riservati. Se puoi vedere solo quando term
è Cfba
, modifica semplicemente tutti i record della tabella per avere term = "Cfba"
. Tuttavia, questo è impedito da bigquery.
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)