GCP - Cloudfunctions Privesc

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

cloudfunctions

Więcej informacji na temat Cloud Functions:

cloudfunctions.functions.create , cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

Atakujący posiadający te uprawnienia może utworzyć nową funkcję Cloud z dowolnym (złośliwym) kodem i przypisać jej konto usługi. Następnie wyciek tokena konta usługi z metadanych umożliwia eskalację uprawnień do niego. Może być wymagane posiadanie pewnych uprawnień do wywołania funkcji.

Skrypty eksploitów dla tej metody można znaleźć tutaj oraz tutaj, a gotowy plik .zip można znaleźć tutaj.

cloudfunctions.functions.update , cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

Atakujący posiadający te uprawnienia może modyfikować kod funkcji, a nawet modyfikować przypisane konto usługi w celu wykradnięcia tokenu. Może być wymagane posiadanie pewnych uprawnień do wywołania funkcji.

Skrypt eksploatacyjny dla tej metody można znaleźć tutaj.

cloudfunctions.functions.sourceCodeSet

Z tym uprawnieniem można uzyskać podpisany URL umożliwiający przesłanie pliku do kubełka funkcji (ale kod funkcji nie zostanie zmieniony, nadal trzeba go zaktualizować)

# Generate the URL
curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/locations/{location}/functions:generateUploadUrl \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{}'

Nie jestem pewien, jak przydatne jest to uprawnienie z perspektywy atakującego, ale dobrze wiedzieć.

cloudfunctions.functions.setIamPolicy, iam.serviceAccounts.actAs

Nadaj sobie dowolne z wcześniejszych uprawnień .update lub .create w celu eskalacji.

cloudfunctions.functions.update

Posiadanie tylko uprawnień cloudfunctions, bez iam.serviceAccounts.actAs, uniemożliwi aktualizację funkcji, WIĘC TO NIE JEST WAŻNA ESKALACJA.

Uprawnienia do zapisu w kubełku

Atakujący posiadający uprawnienia do zapisu w kubełku, w którym przechowywany jest kod Cloud Functions, będzie mógł modyfikować kod, nadpisując plik function_code.zip, oraz będzie mógł wykonać dowolny kod po jego wykonaniu.

Referencje

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated