GCP - Compute Post Exploitation
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Informationen zu Compute und VPC (Netzwerk) überprüfen Sie:
GCP - Compute EnumDies würde einem Angreifer ermöglichen, auf die Daten in bereits vorhandenen Bildern zuzugreifen oder neue Bilder von laufenden VMs zu erstellen und auf deren Daten zuzugreifen, ohne Zugriff auf die laufende VM zu haben.
Es ist möglich, ein VM-Bild in einen Bucket zu exportieren und es dann herunterzuladen und lokal mit dem Befehl zu mounten:
Um diese Aktion auszuführen, benötigt der Angreifer möglicherweise Berechtigungen für den Speicher-Bucket und auf jeden Fall Berechtigungen für cloudbuild, da es der Dienst ist, der aufgefordert wird, den Export durchzuführen.
Darüber hinaus müssen für das Funktionieren die Berechtigungen des codebuild SA und des compute SA privilegiert sein.
Der cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com
benötigt:
roles/iam.serviceAccountTokenCreator
roles/compute.admin
roles/iam.serviceAccountUser
Und der SA <project-id>-compute@developer.gserviceaccount.com
benötigt:
roles/compute.storageAdmin
roles/storage.objectAdmin
Es ist nicht möglich, Snapshots und Festplatten direkt zu exportieren, aber es ist möglich, einen Snapshot in eine Festplatte, eine Festplatte in ein Image zu transformieren und gemäß der vorherigen Sektion dieses Image zu exportieren, um es lokal zu überprüfen.
Mit dem Ziel, auf die Daten, die in einem Image gespeichert sind oder innerhalb einer laufenden VM, von wo ein Angreifer ein Image erstellt hat, zuzugreifen, ist es möglich, einem externen Konto Zugriff auf das Image zu gewähren:
und dann eine neue VM daraus erstellen:
Wenn Sie Ihrem externen Konto keinen Zugriff über das Image gewähren konnten, könnten Sie eine VM mit diesem Image im Projekt des Opfers starten und die Metadaten dazu bringen, eine Reverse-Shell auszuführen, um auf das Image zuzugreifen, indem Sie den Parameter hinzufügen:
Mit dem Ziel, auf die Daten zuzugreifen, die auf einem Disk oder einem Snapshot gespeichert sind, könnten Sie den Snapshot in einen Disk, einen Disk in ein Image umwandeln und die vorherigen Schritte befolgen.
Oder Sie könnten einem externen Konto Zugriff auf den Disk gewähren (wenn der Ausgangspunkt ein Snapshot ist, gewähren Sie Zugriff auf den Snapshot oder erstellen Sie einen Disk daraus):
Hängen Sie die Festplatte an eine Instanz an:
Mounten Sie das Laufwerk innerhalb der VM:
SSH in die VM:
Identifizieren Sie das Laufwerk: Sobald Sie in der VM sind, identifizieren Sie das neue Laufwerk, indem Sie die Laufwerksgeräte auflisten. Typischerweise finden Sie es als /dev/sdb
, /dev/sdc
usw.
Formatieren und Mounten Sie das Laufwerk (wenn es sich um ein neues oder rohes Laufwerk handelt):
Erstellen Sie einen Mount-Punkt:
Mounten Sie das Laufwerk:
Wenn Sie keinen Zugriff auf ein externes Projekt für den Snapshot oder das Laufwerk gewähren können, müssen Sie möglicherweise diese Aktionen innerhalb einer Instanz im selben Projekt wie der Snapshot/das Laufwerk durchführen.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)