gcpwn adalah alat yang saya buat sendiri saat mencoba mempelajari GCP dan memanfaatkan pustaka klien GRPC yang lebih baru. Alat ini terdiri dari berbagai modul enumerasi yang saya tulis ditambah modul eksploitasi yang memanfaatkan penelitian yang dilakukan oleh pihak lain di bidang tersebut (misal: Rhino Security) serta beberapa alat mandiri yang sudah dikenal seperti GCPBucketBrute dalam upaya menjadikan alat tersebut sebagai solusi terpadu untuk pengujian GCP . Meskipun skrip eksploitasi lainnya umumnya hanya digunakan satu kali, GCPwn menyimpan data dan izin saat Anda menjalankan modul yang mengatur data untuk Anda, dan menggunakannya kembali untuk membuat hidup Anda lebih mudah dalam hal izin pentesting/pelacakan.
Penulis: Scott Weston (@webbinroot), NetSPI
Dependensi yang Diperlukan: Lihat Persyaratan.txt + Panduan Instalasi Wiki
Ketergantungan Catatan: Diuji terutama pada Kali Linux; Instalasi Docker tersedia melalui Dockerfile
Alat ini ditujukan terutama untuk pentester, mereka yang baru mempelajari keamanan GCP, dan peneliti keamanan secara umum.
Untuk pentester, seperti yang diilustrasikan di atas, alat ini mengotomatiskan banyak skrip yang biasanya Anda jalankan dan menyimpan data untuk membuat modul eksploitasi menjadi mudah untuk dieksekusi.
Bagi mereka yang baru mempelajari keamanan GCP, alat ini disiapkan sedemikian rupa sehingga mudah untuk menambahkan modul Anda sendiri melalui permintaan Pull saat Anda mendalami layanan individual.
Bagi peneliti keamanan, alat ini memungkinkan Anda menjalankan sejumlah besar panggilan API GCP dan saya mendokumentasikan cara mem-proxy alat tersebut di latar belakang melalui alat lokal seperti Burp Suite. Jadi menjalankan enum_all
dengan burp suite yang mencatat semua permintaan akan memberi Anda visibilitas ke semua titik akhir API yang berbeda di semua pustaka python yang berbeda dengan satu perintah. Setidaknya itulah harapannya, saya membuatnya berfungsi sebagian dengan variabel env, jika seseorang dapat menyelesaikan pemecahan kodenya :)
Tinjau wiki di https://github.com/NetSPI/gcpwn/wiki untuk:
Petunjuk Instalasi & Pengaturan Folder : Cara mengatur alat untuk penggunaan pertama kali dan folder default yang digunakan
Manajemen Otentikasi & Info Token : Muat kredensial pengguna dan/atau layanan untuk mendapatkan pengaturan kredit
Mengelola Proyek & Mengambil Data Sumber Daya : Cara mengelola ID Proyek dan cara mengambil data yang disebutkan dari tabel SQLite.
Panduan Modul : Cara memanggil modul + mendalami setiap modul
Pembuatan Modul : Cara menambahkan modul Anda sendiri melalui permintaan tarik (Sedang Berlangsung - Tanggal Target 15/9/2024)
Penggaruk Kepala Penelitian : Topik penelitian/pertanyaan terbuka (Sedang Berlangsung - Tanggal Target 22/9/2024)
Alat ini akan otomatis default ke stdout "tabel". Alat mendukung tabel, txt, dan csv. Jika Anda mengalami masalah dengan tabel, dapat mengubah konfigurasi global dengan yang berikut:
# See global configs global_configs # Set global configs for preferred output global_configs set std-output txt
Atau Anda dapat memasukkan --txt
, --table
, dan/atau --csv
dengan setiap modules run
perintah untuk mengubah stdoutput
modules run enum_buckets --txt
Data yang disebutkan disimpan dalam tabel lokal di GCPwn. Untuk melihat keluaran tabel dijalankan
# See all tables data tables # See all table columns data tables--columns # Get all data back and export to CSV file data --columns column1,column2 --csv [OUTPUT_FILE]
Jalankan modul enum_all
diikuti dengan creds info
untuk melihat izin yang baru disebutkan. Modul process_iam_bindings
kemudian akan memberi Anda ringkasan pengikatan kebijakan TXT/CSV jika dapat dihitung, dan analyze_vulns
akan mencoba menandai peran/izin yang buruk. Lihat bendera umum di bawah.
Hitung Semuanya (Pilih Salah Satu yang Paling Sesuai)
# Quickest: Run all enumeration modules + testIAM Permissions modules run enum_all --iam # Longer: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org modules run enum_all --iam --all-permissions # Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting modules run enum_all --iam --all-permissions --download
Ambil semua Pengikatan Kebijakan IAM dari enum_all atau modul lain di atas dan kembalikan analisis ringkasan/vuln
# Review Permissions User Has Thus Far creds info # Return Policy Summary from IAM Bindings if Applicable modules run process_iam_bindings [--txt] [--csv] # Analyze IAM Bindings + Other Items (like allUsers) if Applicable modules run analyze_vulns [--txt] [--csv]
fwd:cloudsec 2024: https://www.youtube.com/watch?v=opvv9h3Qe0s ("GCPwn: Alat Pentesting Untuk GCP - Scott Weston")
Desa Awan Defcon 32: https://www.youtube.com/watch?v=rxXyYo1n9cw
https://www.netspi.com/blog/technical-blog/cloud-pentesting/introduction-to-gcpwn-part-1/
Saya akan mengawasi terbitan/tarikan untuk hal-hal baru yang keren, karena itu saya punya pekerjaan harian, jadi beri saya waktu setidaknya 24 jam atau lebih :)
Jika ini masalah kecil, lebih baik pilih tab Masalah melalui Masalah untuk perbaikan cepat.
Dibangun di atas bahu para raksasa, penghargaan untuk beberapa kode & ide/penelitian terinspirasi oleh:
Keamanan Badak (https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)
GCPBucketBrute (https://github.com/RhinoSecurityLabs/GCPBucketBrute)
BANYAK Dokumentasi Google (https://cloud.google.com/python/docs/reference)