GCP - local privilege escalation ssh pivoting
Tip
Impara & pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara & pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara & pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sostieni HackTricks
- Controlla i subscription plans!
- Unisciti al đŹ Discord group o al telegram group o seguici su Twitter đŚ @hacktricks_live.
- Condividi hacking tricks inviando PRs ai HackTricks e HackTricks Cloud github repos.
in this scenario we are going to suppose that you have compromised a non privilege account inside a VM in a Compute Engine project.
Sorprendentemente, i permessi GPC del compute engine che hai compromesso possono aiutarti a escalate privileges locally inside a machine. Anche se questo non sarà sempre molto utile in un ambiente cloud, è bene sapere che è possibile.
Leggi gli script
Compute Instances sono probabilmente lĂŹ per eseguire alcuni script per effettuare azioni con i loro service accounts.
PoichÊ IAM è molto granulare, un account può avere privilegi read/write su una risorsa ma nessun privilegio di list.
Un ottimo esempio ipotetico è una Compute Instance che ha il permesso di leggere/scrivere backup in un bucket di storage chiamato instance82736-long-term-xyz-archive-0332893.
Eseguire gsutil ls dalla riga di comando non restituisce nulla, poichĂŠ il service account 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, ottenendo accesso in chiaro a dati che il tuo account Linux locale non possiede.
Potresti essere in grado di trovare il nome di questo bucket allâinterno di uno script (in bash, Python, RubyâŚ).
Custom Metadata
Gli amministratori possono aggiungere custom metadata a livello di instance e project. Questo è semplicemente un modo per passare coppie chiave/valore arbitrarie in unâinstance, ed è comunemente usato per variabili dâambiente e startup/shutdown scripts.
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 metadata.
For more info check:
Abusing IAM permissions
La maggior parte dei permessi proposti qui sotto sono assegnati al default Compute SA, lâunico problema è che lo scope di accesso predefinito impedisce alla SA di usarli. Tuttavia, se lo scope cloud-platform è abilitato o anche solo lo scope compute è abilitato, sarai in grado di abusarne.
Check the following permissions:
- compute.instances.osLogin
- compute.instances.osAdminLogin
- compute.projects.setCommonInstanceMetadata
- compute.instances.setMetadata
- compute.instances.setIamPolicy
Cerca chiavi nel filesystem
Controlla se altri utenti hanno effettuato il login con gcloud allâinterno della macchina e lasciato le loro credenziali nel filesystem:
Cerca credenziali gcloud nel filesystem
``` sudo find / -name "gcloud" ```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
Altre regex per API Keys
Pattern grep per credenziali e chiavi GCP
```bash TARGET_DIR="/path/to/whatever"Service account keys
grep -Pzr â(?s){[^{}]?service_account[^{}]?private_key.*?}â
â$TARGET_DIRâ
Legacy GCP creds
grep -Pzr â(?s){[^{}]?client_id[^{}]?client_secret.*?}â
â$TARGET_DIRâ
Google API keys
grep -Pr âAIza[a-zA-Z0-9\-_]{35}â
â$TARGET_DIRâ
Google OAuth tokens
grep -Pr âya29.[a-zA-Z0-9_-]{100,200}â
â$TARGET_DIRâ
Generic SSH keys
grep -Pzr â(?s)ââBEGIN[ A-Z]?PRIVATE KEY[a-zA-Z0-9/+=\n-]?END[ A-Z]*?PRIVATE KEYâââ
â$TARGET_DIRâ
Signed storage URLs
grep -Pir âstorage.googleapis.com.*?Goog-Signature=[a-f0-9]+â
â$TARGET_DIRâ
Signed policy documents in HTML
grep -Pzr â(?s)<form action.?googleapis.com.?name=âsignatureâ value=â.*?â>â
â$TARGET_DIRâ
</details>
## Riferimenti
- [https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/](https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/)
> [!TIP]
> Impara & pratica AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://hacktricks-training.com/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Impara & pratica GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://hacktricks-training.com/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Impara & pratica Az Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://hacktricks-training.com/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Sostieni HackTricks</summary>
>
> - Controlla i [**subscription plans**](https://github.com/sponsors/carlospolop)!
> - **Unisciti al** đŹ [**Discord group**](https://discord.gg/hRep4RUj7f) o al [**telegram group**](https://t.me/peass) o **seguici** su **Twitter** đŚ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Condividi hacking tricks inviando PRs ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>
HackTricks Cloud

