GCP Pentesting
Informazioni di Base
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 configurazioni errate e come sfruttarle.
Concetti come la gerarchia dell'organizzazione, le autorizzazioni e altri concetti di base sono spiegati in:
pageGCP - Basic InformationLaboratori per imparare
Metodologia del Pentester/Red Team di GCP
Per ispezionare un ambiente GCP è molto importante sapere: quali servizi vengono utilizzati, cosa viene esposto, chi ha accesso a cosa, e come sono collegati i servizi interni di GCP e i servizi esterni.
Dal punto di vista del Red Team, il primo passo per compromettere un ambiente GCP è riuscire a ottenere delle credenziali. Ecco alcune idee su come farlo:
Leak in github (o simili) - OSINT
Ingegneria Sociale (Controlla la pagina Workspace Security)
Riutilizzo delle password (leak di password)
Vulnerabilità nelle Applicazioni ospitate su GCP
Server Side Request Forgery con accesso al punto di metadata
Lettura di File Locali
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
3° parti violati
Dipendente Interno
Oppure compromettendo un servizio non autenticato esposto:
pageGCP - Unauthenticated Enum & AccessOppure se stai facendo una revisione potresti semplicemente chiedere le credenziali con questi ruoli:
pageGCP - Permissions for a PentestDopo aver ottenuto le credenziali, devi sapere a chi appartengono quelle credenziali, e a cosa hanno accesso, quindi devi eseguire una enumerazione di base:
Enumerazione di Base
SSRF
Per ulteriori informazioni su come enumerare i metadati di GCP controlla la seguente pagina di hacktricks:
Whoami
In GCP puoi provare diverse opzioni per cercare di indovinare chi sei:
Enumerazione dell'Organizzazione
Principali & Enumerazione IAM
Se hai abbastanza autorizzazioni, verificare i privilegi di ogni 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 autorizzazioni per enumerare IAM, puoi forzarne il furto per capirli. Controlla come fare l'enumerazione e il brute-forcing in:
pageGCP - IAM, Principals & Org Policies EnumOra che hai alcune informazioni sulle tue credenziali (e se sei un red team sperabilmente non sei stato rilevato). È ora di capire quali servizi vengono utilizzati nell'ambiente. Nella sezione seguente puoi controllare alcuni modi per enumerare alcuni servizi comuni.
Enumerazione dei Servizi
GCP ha un'enorme quantità di servizi, nella pagina seguente troverai informazioni di base, cheat sheet per l'enumerazione, come evitare la rilevazione, ottenere persistenza e altri trucchi di post-exploitation su alcuni di essi:
pageGCP - ServicesNota che non è necessario eseguire tutto il lavoro manualmente, qui in questo post puoi trovare una sezione su strumenti automatici.
Inoltre, in questa fase potresti aver scoperto più servizi esposti agli utenti non autenticati, potresti essere in grado di sfruttarli:
pageGCP - Unauthenticated Enum & AccessEscalation dei Privilegi, Post-Exploitation & Persistenza
Il modo più comune una volta ottenute alcune credenziali cloud o compromesso alcuni servizi in esecuzione all'interno di un cloud è abusare dei privilegi mal configurati che l'account compromesso potrebbe avere. Quindi, la prima cosa da fare è enumerare i tuoi privilegi.
Inoltre, durante questa enumerazione, ricorda che le autorizzazioni possono essere impostate al livello più alto dell'"Organizzazione".
pageGCP - Privilege EscalationpageGCP - Post ExploitationpageGCP - PersistenceServizi Esposti Pubblicamente
Mentre stai enumerando i servizi GCP potresti averne trovati alcuni che espongono elementi su Internet (porte VM/Containers, database o servizi di coda, snapshot o bucket...). Come pentester/red teamer dovresti sempre verificare se puoi trovare informazioni sensibili/vulnerabilità su di essi poiché potrebbero fornirti ulteriore accesso all'account GCP.
In questo libro dovresti trovare informazioni su come trovare servizi GCP esposti e come controllarli. Per trovare vulnerabilità nei servizi di rete esposti ti consiglierei di cercare il servizio specifico in:
GCP <--> Workspace Pivoting
Compromettere i principali in una piattaforma potrebbe consentire a un attaccante di compromettere l'altra, controlla in:
pageGCP <--> Workspace PivotingStrumenti Automatici
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 gli strumenti che possono essere utilizzati in diversi cloud qui.
gcp_scanner: Questo è uno scanner di risorse GCP che può aiutare a determinare a che livello di accesso determinate credenziali possiedono 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 i privilegi IAM elevati e per escalare i privilegi in GCP abusandone (non sono riuscito a far funzionare lo script di enumerazione).
Configurazione e debug di gcloud
Cattura rete di gcloud, gsutil...
Ricorda che puoi utilizzare il parametro --log-http
con la cli gcloud
per stampare le richieste che lo strumento sta eseguendo. Se non vuoi che i log oscurino il valore del token, utilizza gcloud config set log_http_redact_token false
Inoltre, per intercettare la comunicazione:
Configurare il token OAuth in gcloud
Per utilizzare un token OAuth dell'account di servizio esfiltrato dall'endpoint dei metadati, è sufficiente eseguire:
Riferimenti
Last updated