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)
Cloud Shell
For more information check:
GCP - Cloud Shell EnumPersistent 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:
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).
Wspomniana instancja zachowa swój katalog domowy przez co najmniej 120 dni, jeśli nie zajdzie żadna aktywność.
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:
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:
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ą:
Jak nawiązywane jest 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] (spowoduje dodanie klucza publicznego, który utworzyłeś lokalnie)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (spowoduje uruchomienie instancji)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (poinformuje cię o adresie IP google cloud shell)
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)
Last updated