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

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