GCP - Privilegieneskalation

Reading time: 6 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Einführung in die GCP-Privilegieneskalation

GCP hat, wie jede andere Cloud, einige Prinzipien: Benutzer, Gruppen und Dienstkonten sowie einige Ressourcen wie Compute Engine, Cloud Functions…
Dann werden über Rollen Berechtigungen diesen Prinzipien über die Ressourcen gewährt. Dies ist der Weg, um die Berechtigungen, die ein Prinzip über eine Ressource in GCP hat, zu spezifizieren.
Es gibt bestimmte Berechtigungen, die es einem Benutzer ermöglichen, noch mehr Berechtigungen über die Ressource oder Drittanbieter-Ressourcen zu erhalten, und das nennt man Privilegieneskalation (auch die Ausnutzung von Schwachstellen, um mehr Berechtigungen zu erhalten).

Daher möchte ich die Techniken zur Privilegieneskalation in GCP in 2 Gruppen unterteilen:

  • Privesc zu einem Prinzip: Dies ermöglicht es Ihnen, ein anderes Prinzip zu impersonifizieren und somit wie es mit all seinen Berechtigungen zu handeln. z.B.: Missbrauch von getAccessToken, um ein Dienstkonto zu impersonifizieren.
  • Privesc auf der Ressource: Dies ermöglicht es Ihnen, mehr Berechtigungen über die spezifische Ressource zu erhalten. z.B.: Sie können die Berechtigung setIamPolicy über Cloud Functions missbrauchen, um die Funktion auszulösen.
  • Beachten Sie, dass einige Ressourcenberechtigungen es Ihnen auch ermöglichen, ein beliebiges Dienstkonto an die Ressource anzuhängen. Das bedeutet, dass Sie eine Ressource mit einem SA starten, in die Ressource gelangen und das SA-Token stehlen können. Daher wird dies ermöglichen, über eine Ressourcenskalation zu einem Prinzip zu eskalieren. Dies ist in mehreren Ressourcen zuvor passiert, aber jetzt ist es seltener (kann aber immer noch passieren).

Offensichtlich sind die interessantesten Techniken zur Privilegieneskalation die der zweiten Gruppe, da sie es Ihnen ermöglichen, mehr Privilegien außerhalb der Ressourcen zu erhalten, über die Sie bereits einige Privilegien haben. Beachten Sie jedoch, dass Eskalation in Ressourcen Ihnen auch Zugang zu sensiblen Informationen oder sogar zu anderen Prinzipien geben kann (vielleicht durch das Lesen eines Geheimnisses, das ein Token eines SA enthält).

warning

Es ist auch wichtig zu beachten, dass in GCP Dienstkonten sowohl Prinzipien als auch Berechtigungen sind, sodass die Eskalation von Berechtigungen in einem SA es Ihnen auch ermöglicht, es zu impersonifizieren.

note

Die in Klammern angegebenen Berechtigungen geben die Berechtigungen an, die erforderlich sind, um die Schwachstelle mit gcloud auszunutzen. Diese könnten nicht erforderlich sein, wenn sie über die API ausgenutzt werden.

Berechtigungen für die Methodik zur Privilegieneskalation

So teste ich spezifische Berechtigungen, um spezifische Aktionen innerhalb von GCP durchzuführen.

  1. Laden Sie das GitHub-Repo https://github.com/carlospolop/gcp_privesc_scripts herunter.
  2. Fügen Sie im Verzeichnis tests/ das neue Skript hinzu.

Umgehung von Zugriffsscoping

Tokens von SA, die aus dem GCP-Metadatenservice geleakt wurden, haben Zugriffsscoping. Dies sind Einschränkungen für die Berechtigungen, die das Token hat. Zum Beispiel, wenn das Token den https://www.googleapis.com/auth/cloud-platform Scope hat, hat es vollen Zugriff auf alle GCP-Dienste. Wenn das Token jedoch den https://www.googleapis.com/auth/cloud-platform.read-only Scope hat, hat es nur schreibgeschützten Zugriff auf alle GCP-Dienste, selbst wenn das SA mehr Berechtigungen in IAM hat.

Es gibt keinen direkten Weg, diese Berechtigungen zu umgehen, aber Sie könnten immer versuchen, nach neuen Anmeldeinformationen im kompromittierten Host zu suchen, den Dienstschlüssel zu finden, um ein OAuth-Token ohne Einschränkungen zu generieren, oder zu einer anderen VM mit weniger Einschränkungen zu springen.

Wenn Zugriffsscoping verwendet wird, hat das OAuth-Token, das für die Recheninstanz (VM) generiert wird, eine Scope-Einschränkung. Sie könnten jedoch in der Lage sein, diese Einschränkung zu umgehen und die Berechtigungen des kompromittierten Kontos auszunutzen.

Der beste Weg, diese Einschränkung zu umgehen, besteht darin, entweder neue Anmeldeinformationen im kompromittierten Host zu finden, den Dienstschlüssel zu finden, um ein OAuth-Token ohne Einschränkungen zu generieren, oder eine andere VM mit einem weniger eingeschränkten SA zu kompromittieren.

Überprüfen Sie SA mit Schlüsseln, die generiert wurden mit:

bash
for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done

Privilegieneskalationstechniken

Der Weg, um Ihre Berechtigungen in AWS zu eskalieren, besteht darin, genügend Berechtigungen zu haben, um auf die Berechtigungen anderer Dienstkonten/Nutzer/Gruppen zugreifen zu können. Ketteneskalationen, bis Sie Administratorzugriff auf die Organisation haben.

warning

GCP hat Hunderte (wenn nicht Tausende) von Berechtigungen, die einer Entität gewährt werden können. In diesem Buch finden Sie alle Berechtigungen, die ich kenne, die Sie missbrauchen können, um Privilegien zu eskalieren, aber wenn Sie einen Pfad kennen, der hier nicht erwähnt wird, teilen Sie ihn bitte.

Die Unterseiten dieses Abschnitts sind nach Diensten geordnet. Sie finden in jedem Dienst verschiedene Möglichkeiten, um Privilegien auf den Diensten zu eskalieren.

Missbrauch von GCP zur lokalen Eskalation von Berechtigungen

Wenn Sie sich auf einer Maschine in GCP befinden, könnten Sie in der Lage sein, Berechtigungen zu missbrauchen, um Privilegien sogar lokal zu eskalieren:

GCP - local privilege escalation ssh pivoting

Referenzen

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks