GCP - Storage Privesc

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Storage

Informazioni di base:

pageGCP - Storage Enum

storage.objects.get

Questa autorizzazione ti consente di scaricare file memorizzati all'interno di Cloud Storage. Ciò potrebbe consentirti di ottenere privilegi più elevati perché in alcune occasioni informazioni sensibili vengono salvate lì. Inoltre, alcuni servizi GCP memorizzano le loro informazioni in bucket:

  • GCP Composer: Quando crei un ambiente Composer, il codice di tutti i DAG verrà salvato all'interno di un bucket. Questi task potrebbero contenere informazioni interessanti all'interno del loro codice.

  • GCR (Container Registry): L'immagine dei container viene memorizzata all'interno di bucket, il che significa che se puoi leggere i bucket sarai in grado di scaricare le immagini e cercare perdite e/o codice sorgente.

storage.objects.setIamPolicy

Puoi concederti l'autorizzazione per abusare di uno qualsiasi degli scenari precedenti di questa sezione.

storage.buckets.setIamPolicy

Per un esempio su come modificare le autorizzazioni con questa autorizzazione, controlla questa pagina:

pageGCP - Public Buckets Privilege Escalation

storage.hmacKeys.create

La funzionalità di "interoperabilità" di Cloud Storage, progettata per interazioni tra cloud come con AWS S3, comporta la creazione di chiavi HMAC per Service Account e utenti. Un attaccante può sfruttare ciò generando una chiave HMAC per un Service Account con privilegi elevati, escalando così i privilegi all'interno di Cloud Storage. Mentre le chiavi HMAC associate all'utente sono recuperabili solo tramite la console web, sia l'accesso che le chiavi segrete rimangono perpetuamente accessibili, consentendo un potenziale accesso di backup. Al contrario, le chiavi HMAC associate al Service Account sono accessibili tramite API, ma le loro chiavi di accesso e segrete non sono recuperabili dopo la creazione, aggiungendo un livello di complessità per l'accesso continuo.

# Create key
gsutil hmac create <sa-email>

# Configure gsutil to use it
gsutil config -a

# Use it
gsutil ls gs://[BUCKET_NAME]

Un altro script di exploit per questo metodo può essere trovato qui.

storage.objects.create, storage.objects.delete = Permessi di scrittura su Storage

Per poter creare un nuovo oggetto all'interno di un bucket, è necessario avere il permesso storage.objects.create e, secondo la documentazione, è necessario anche il permesso storage.objects.delete per modificare un oggetto esistente.

Un'exploit molto comune dei bucket in cui è possibile scrivere nel cloud avviene nel caso in cui il bucket stia salvando file del server web, potresti essere in grado di memorizzare nuovo codice che verrà utilizzato dall'applicazione web.

Composer

Composer è Apache Airflow gestito all'interno di GCP. Ha diverse funzionalità interessanti:

  • Viene eseguito all'interno di un cluster GKE, quindi il SA utilizzato dal cluster è accessibile dal codice in esecuzione all'interno di Composer.

  • Memorizza il codice in un bucket, quindi chiunque abbia accesso in scrittura a quel bucket sarà in grado di modificare/aggiungere un codice DGA (il codice che Apache Airflow eseguirà). Quindi, se hai accesso in scrittura al bucket utilizzato da Composer per memorizzare il codice, puoi elevare i privilegi all'account di servizio in esecuzione nel cluster GKE.

Cloud Functions

  • Il codice di Cloud Functions viene memorizzato in Storage, quindi sovrascrivendolo, è possibile eseguire codice arbitrario.

App Engine

  • Il codice sorgente di App Engine viene memorizzato in bucket, sovrascrivendo il codice potrebbe essere possibile eseguire codice arbitrario. QUESTO NON È POSSIBILE

  • Sembra che i layer dei container siano memorizzati nel bucket, forse cambiando quelli?

GCR

  • Google Container Registry memorizza le immagini all'interno di bucket, se puoi scrivere su quei bucket potresti essere in grado di muoverti lateralmente verso dove vengono eseguiti quei bucket.

  • Il bucket utilizzato da GCR avrà un URL simile a gs://<eu/usa/asia/nothing>.artifacts.<project>.appspot.com (I sottodomini di primo livello sono specificati qui).

Riferimenti

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated