GCP - local privilege escalation ssh pivoting
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
neste cenĂĄrio vamos supor que vocĂȘ comprometeu uma conta sem privilĂ©gios dentro de uma VM em um projeto do Compute Engine.
Surpreendentemente, as permissĂ”es do GPC do Compute Engine que vocĂȘ comprometeu podem ajudĂĄ-lo a escalar privilĂ©gios localmente dentro de uma mĂĄquina. Mesmo que isso nem sempre seja muito Ăștil em um ambiente cloud, Ă© bom saber que Ă© possĂvel.
Leia os scripts
Compute Instances provavelmente existem para executar alguns scripts para realizar açÔes com suas service accounts.
Como o IAM é granular, uma conta pode ter privilégios de leitura/escrita sobre um recurso, mas sem privilégios de listagem.
Um ótimo exemplo hipotético disso é uma Compute Instance que tem permissão para ler/gravar backups em um storage bucket chamado instance82736-long-term-xyz-archive-0332893.
Executar gsutil ls a partir da linha de comando nĂŁo retorna nada, pois a service account nĂŁo tem a permissĂŁo IAM storage.buckets.list. No entanto, se vocĂȘ executar gsutil ls gs://instance82736-long-term-xyz-archive-0332893 pode encontrar um backup completo do sistema de arquivos, dando acesso em texto claro a dados que sua conta Linux local nĂŁo possui.
VocĂȘ pode ser capaz de encontrar esse nome de bucket dentro de um script (em bash, Python, RubyâŠ).
Custom Metadata
Administrators can add custom metadata at the instance and project level. Essa Ă© simplesmente uma forma de passar pares arbitrĂĄrios chave/valor para dentro de uma instĂąncia, e Ă© comumente usada para variĂĄveis de ambiente e scripts de startup/shutdown.
AlĂ©m disso, Ă© possĂvel adicionar userdata, que Ă© um script que serĂĄ executado toda vez que a mĂĄquina for iniciada ou reiniciada e que tambĂ©m pode ser acessado a partir do endpoint de metadata.
For more info check:
Abusing IAM permissions
A maioria das permissĂ”es listadas a seguir sĂŁo concedidas ao default Compute SA, o Ășnico problema Ă© que o escopo de acesso padrĂŁo impede que o SA as utilize. No entanto, se o escopo cloud-platform estiver habilitado ou apenas o escopo compute estiver habilitado, vocĂȘ poderĂĄ abusar delas.
Check the following permissions:
- compute.instances.osLogin
- compute.instances.osAdminLogin
- compute.projects.setCommonInstanceMetadata
- compute.instances.setMetadata
- compute.instances.setIamPolicy
Search for Keys in the filesystem
Verifique se outros usuĂĄrios efetuaram login no gcloud dentro da mĂĄquina e deixaram suas credenciais no sistema de arquivos:
Procurar credenciais gcloud no sistema de arquivos
``` sudo find / -name "gcloud" ```Estes sĂŁo os arquivos mais interessantes:
~/.config/gcloud/credentials.db~/.config/gcloud/legacy_credentials/[ACCOUNT]/adc.json~/.config/gcloud/legacy_credentials/[ACCOUNT]/.boto~/.credentials.json
Mais API Keys regexes
PadrÔes de grep para GCP credentials and keys
```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>
## ReferĂȘncias
- [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]
> Aprenda e pratique 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;">\
> Aprenda e pratique 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;">
> Aprenda e pratique 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>Support HackTricks</summary>
>
> - Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
> - **Junte-se ao** đŹ [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** đŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositĂłrios do github.
>
> </details>
HackTricks Cloud

