GCP - Cloud Shell Persistence
Cloud Shell
Aby uzyskać więcej informacji, sprawdź:
GCP - Cloud Shell EnumTrwał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:
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).
Wspomniana instancja zachowa swoją katalog domowy przez co najmniej 120 dni, jeśli nie wystąpi żadna aktywność.
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:
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:
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ą:
Jak jest nawiązywane połączenie SSH
W zasadzie używane są te 3 wywołania API:
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (pozwoli Ci dodać swój klucz publiczny utworzony lokalnie)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (pozwoli Ci uruchomić instancję)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (poda Ci adres IP powłoki Google Cloud)
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