GCP - local privilege escalation ssh pivoting
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
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 e pratica il hacking AWS:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Impara e pratica il hacking GCP: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Impara e pratica il hacking Azure: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Supporta HackTricks</summary>
>
> - Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
> - **Unisciti al** đŹ [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** đŚ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
>
> </details>
HackTricks Cloud

