GCP Pentesting
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)
Prima di iniziare il pentesting di un ambiente GCP, ci sono alcune cose di base che devi sapere su come funziona per aiutarti a capire cosa devi fare, come trovare misconfigurazioni e come sfruttarle.
Concetti come gerarchia dell'organizzazione, permessi e altri concetti di base sono spiegati in:
Per auditare un ambiente GCP è molto importante sapere: quali servizi vengono utilizzati, cosa è esposto, chi ha accesso a cosa e come sono connessi i servizi GCP interni e i servizi esterni.
Dal punto di vista di un Red Team, il primo passo per compromettere un ambiente GCP è riuscire a ottenere alcune credenziali. Ecco alcune idee su come farlo:
Leak in github (o simili) - OSINT
Ingegneria Sociale (Controlla la pagina Workspace Security)
Riutilizzo della password (leak di password)
Vulnerabilità nelle applicazioni ospitate su GCP
Server Side Request Forgery con accesso all'endpoint dei metadati
Lettura di file locali
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
breach di terze parti
Dipendente interno
Oppure compromettendo un servizio non autenticato esposto:
O se stai facendo una revisione potresti semplicemente chiedere le credenziali con questi ruoli:
Dopo aver ottenuto le credenziali, devi sapere a chi appartengono quelle credenziali, e a cosa hanno accesso, quindi devi eseguire alcune enumerazioni di base:
Per ulteriori informazioni su come enumerare i metadati GCP controlla la seguente pagina di hacktricks:
In GCP puoi provare diverse opzioni per cercare di indovinare chi sei:
Puoi anche utilizzare l'endpoint API /userinfo
per ottenere ulteriori informazioni sull'utente:
Se hai abbastanza permessi, controllare i privilegi di ciascuna entità all'interno dell'account GCP ti aiuterà a capire cosa puoi fare tu e altre identità e come escalare i privilegi.
Se non hai abbastanza permessi per enumerare IAM, puoi rubare e forzare per scoprirli. Controlla come fare l'enumerazione e il brute-forcing in:
Ora che hai alcune informazioni sulle tue credenziali (e se sei un red team speriamo che non sei stato rilevato). È tempo di capire quali servizi vengono utilizzati nell'ambiente. Nella sezione seguente puoi controllare alcuni modi per enumerare alcuni servizi comuni.
GCP ha un'incredibile quantità di servizi, nella pagina seguente troverai informazioni di base, cheatsheet di enumerazione, come evitare il rilevamento, ottenere persistenza e altri trucchi di post-exploitation su alcuni di essi:
Nota che non è necessario eseguire tutto il lavoro manualmente, qui sotto in questo post puoi trovare una sezione su strumenti automatici.
Inoltre, in questa fase potresti aver scoperto più servizi esposti a utenti non autenticati, potresti essere in grado di sfruttarli:
Il modo più comune una volta ottenute alcune credenziali cloud o compromesso un servizio in esecuzione all'interno di un cloud è abusare dei privilegi mal configurati che l'account compromesso potrebbe avere. Quindi, la prima cosa che dovresti fare è enumerare i tuoi privilegi.
Inoltre, durante questa enumerazione, ricorda che i permessi possono essere impostati al livello più alto di "Organizzazione".
Durante l'enumerazione dei servizi GCP potresti aver trovato alcuni di essi esponendo elementi a Internet (porte VM/Container, database o servizi di coda, snapshot o bucket...). Come pentester/red teamer dovresti sempre controllare se puoi trovare informazioni sensibili / vulnerabilità su di essi poiché potrebbero fornirti ulteriore accesso all'account AWS.
In questo libro dovresti trovare informazioni su come trovare servizi GCP esposti e come controllarli. Per quanto riguarda come trovare vulnerabilità nei servizi di rete esposti, ti consiglio di cercare il servizio specifico in:
Compromettere i principi in una piattaforma potrebbe consentire a un attaccante di compromettere l'altra, controllalo in:
Nella console GCloud, in https://console.cloud.google.com/iam-admin/asset-inventory/dashboard puoi vedere le risorse e gli IAM utilizzati dal progetto.
Qui puoi vedere gli asset supportati da questa API: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Controlla strumenti che possono essere utilizzati in diversi cloud qui.
gcp_scanner: Questo è uno scanner di risorse GCP che può aiutare a determinare quale livello di accesso possiedono certe credenziali su GCP.
gcp_enum: Script Bash per enumerare un ambiente GCP utilizzando gcloud cli e salvando i risultati in un file.
GCP-IAM-Privilege-Escalation: Script per enumerare privilegi IAM elevati e per elevare privilegi in GCP abusandone (non sono riuscito a far funzionare lo script di enumerazione).
BF My GCP Permissions: Script per forzare le tue autorizzazioni.
Ricorda che puoi usare il parametro --log-http
con il gcloud
cli per stampare le richieste che lo strumento sta eseguendo. Se non vuoi che i log oscurino il valore del token, usa gcloud config set log_http_redact_token false
Inoltre, per intercettare la comunicazione:
Per utilizzare un token OAuth di un account di servizio esfiltrato dall'endpoint dei metadati puoi semplicemente fare:
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)