GCP - IAM Post Exploitation
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
IAM
Możesz znaleźć więcej informacji o IAM w:
GCP - IAM, Principals & Org Policies Enum
Nadawanie dostępu do konsoli zarządzania
Access to the GCP management console is provided to user accounts, not service accounts. Aby zalogować się do interfejsu web, możesz przyznać dostęp do a Google account którym zarządzasz. Może to być ogólne konto “@gmail.com”, nie musi ono być członkiem docelowej organizacji.
Aby jednak przyznać prymitywną rolę Owner ogólnemu kontu “@gmail.com”, będziesz musiał użyć the web console. gcloud zwróci błąd, jeśli spróbujesz przyznać mu uprawnienie wyższe niż Editor.
Możesz użyć następującego polecenia, aby przyznać użytkownikowi prymitywną rolę Editor w istniejącym projekcie:
gcloud projects add-iam-policy-binding [PROJECT] --member user:[EMAIL] --role roles/editor
Jeśli udało ci się to zrobić, spróbuj uzyskać dostęp do interfejsu webowego i zbadać go stamtąd.
To jest najwyższy poziom, jaki możesz przypisać za pomocą narzędzia gcloud.
Usuń komponenty IAM iam.*.delete
Uprawnienia iam.*.delete (np. iam.roles.delete, iam.serviceAccountApiKeyBindings.delete, iam.serviceAccountKeys.delete itd.) pozwalają tożsamości usuwać krytyczne komponenty IAM, takie jak role niestandardowe, powiązania kluczy API, klucze kont usługowych oraz same konta usługowe. W rękach atakującego umożliwia to usunięcie prawidłowych mechanizmów dostępu w celu spowodowania odmowy usługi.
Aby przeprowadzić taki atak, można na przykład usunąć role używając:
gcloud iam roles delete <ROLE_ID> --project=<PROJECT_ID>
iam.serviceAccountKeys.disable || iam.serviceAccounts.disable
Uprawnienia iam.serviceAccountKeys.disable i iam.serviceAccounts.disable pozwalają na wyłączenie aktywnych kluczy Service Account lub samych Service Account, co w rękach atakującego może posłużyć do zakłócenia działania, spowodowania denial of service lub utrudnienia incident response przez uniemożliwienie użycia prawidłowych poświadczeń.
Aby wyłączyć Service Account, możesz użyć następującego polecenia:
gcloud iam service-accounts disable <SA_EMAIL> --project=<PROJECT_ID>
Aby wyłączyć klucze Service Account, możesz użyć następującego polecenia:
gcloud iam service-accounts keys disable <KEY_ID> --iam-account=<SA_EMAIL>
iam.*.undelete
Uprawnienia iam.*.undelete pozwalają na przywracanie wcześniej usuniętych elementów, takich jak API key bindings, custom roles lub service accounts. W rękach atakującego mogą być wykorzystane do odwrócenia działań obronnych (przywrócenia usuniętego dostępu), odtworzenia usuniętych wektorów kompromitacji w celu utrzymania dostępu lub uniknięcia działań naprawczych, co utrudnia opanowanie incydentu.
gcloud iam service-accounts undelete "${SA_ID}" --project="${PROJECT}"
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

