GCP - Cloud Shell Persistence
Cloud Shell
Aby uzyskać więcej informacji, sprawdź:
pageGCP - Cloud Shell EnumTrwała Tylna Furtka
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ć tylną furtkę w katalogu domowym użytkownika i dopóki użytkownik łączy się z GC Shell co najmniej raz na 120 dni, tylna furtka przetrwa, a atakujący uzyska dostęp do powłoki za każdym razem, gdy zostanie uruchomiona, po prostu wykonując:
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 (tak jak w poprzedniej technice). Wystarczy wstawić poprzednie tylne drzwi lub podobne, aby utrzymać trwałość tak długo, jak użytkownik używa "często" 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 gcloud projects list
z powłoki chmury (jako atakujący) widziane 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, który utworzyłeś 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 chmury Google)
Ale możesz znaleźć więcej informacji na 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