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

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:

Cloud SSRF - HackTricks

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:

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>