GCP - local privilege escalation ssh pivoting
Last updated
Last updated
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In questo scenario supponiamo che tu abbia compromesso un account non privilegiato all'interno di una VM in un progetto Compute Engine.
Incredibilmente, i permessi GCP del compute engine che hai compromesso possono aiutarti a escalare i privilegi localmente all'interno di una macchina. Anche se questo non sarà sempre molto utile in un ambiente cloud, è bene sapere che è possibile.
Compute Instances sono probabilmente lì per eseguire alcuni script per eseguire azioni con i loro account di servizio.
Poiché IAM è molto granulare, un account può avere privilegi di lettura/scrittura su una risorsa ma nessun privilegio di elenco.
Un grande esempio ipotetico di questo è un'istanza di calcolo che ha il permesso di leggere/scrivere backup in un bucket di archiviazione chiamato instance82736-long-term-xyz-archive-0332893
.
Eseguendo gsutil ls
dalla riga di comando non restituisce nulla, poiché l'account di servizio non ha il permesso IAM storage.buckets.list
. Tuttavia, se esegui gsutil ls gs://instance82736-long-term-xyz-archive-0332893
, potresti trovare un backup completo del filesystem, dandoti accesso in chiaro ai dati di cui il tuo account Linux locale è privo.
Potresti essere in grado di trovare questo nome di bucket all'interno di uno script (in bash, Python, Ruby...).
Gli amministratori possono aggiungere metadati personalizzati a livello di istanza e progetto. Questo è semplicemente un modo per passare coppie chiave/valore arbitrarie in un'istanza, ed è comunemente usato per variabili d'ambiente e script di avvio/arresto.
Inoltre, è possibile aggiungere userdata, che è uno script che verrà eseguito ogni volta che la macchina viene avviata o riavviata e che può essere accessibile anche dall'endpoint dei metadati.
Per ulteriori informazioni, controlla:
La maggior parte dei permessi proposti di seguito sono assegnati al Compute SA predefinito, l'unico problema è che il perimetro di accesso predefinito impedisce al SA di usarli. Tuttavia, se il perimetro cloud-platform
è abilitato o solo il perimetro compute
è abilitato, sarai in grado di abusarne.
Controlla i seguenti permessi:
Controlla se altri utenti hanno effettuato l'accesso in gcloud all'interno della macchina e hanno lasciato le loro credenziali nel filesystem:
Questi sono i file più interessanti:
~/.config/gcloud/credentials.db
~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json
~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto
~/.credentials.json
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)