GCP Pentesting
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Temel Bilgiler
GCP ortamında pentesting yapmadan önce, nasıl çalıştığına dair bilmeniz gereken birkaç temel şey var; bu, ne yapmanız gerektiğini, yanlış yapılandırmaları nasıl bulacağınızı ve bunları nasıl istismar edeceğinizi anlamanıza yardımcı olacaktır.
Organizasyon hiyerarşisi, izinler ve diğer temel kavramlar gibi kavramlar şu belgede açıklanmaktadır:
Öğrenme Laboratuvarları
- https://gcpgoat.joshuajebaraj.com/
- https://github.com/ine-labs/GCPGoat
- https://github.com/lacioffi/GCP-pentest-lab/
- https://github.com/carlospolop/gcp_privesc_scripts
GCP Pentester/Kırmızı Ekip Metodolojisi
Bir GCP ortamını denetlemek için bilmek çok önemlidir: hangi hizmetlerin kullanıldığı, neyin açık olduğu, kimin neye erişimi olduğu ve iç GCP hizmetlerinin harici hizmetlerle nasıl bağlantılı olduğudur.
Kırmızı ekip bakış açısıyla, bir GCP ortamını tehdit etmenin ilk adımı bazı kimlik bilgilerini elde etmektir. Bunu nasıl yapacağınıza dair bazı fikirler:
- Github’daki sızıntılar (veya benzeri) - OSINT
- Sosyal Mühendislik (Sayfayı kontrol edin Workspace Security)
- Şifre tekrar kullanımı (şifre sızıntıları)
- GCP-Hosted Uygulamalardaki Güvenlik Açıkları
- Sunucu Tarafı İstek Sahteciliği ile metadata uç noktasına erişim
- Yerel Dosya Okuma
/home/KULLANICI_ADI/.config/gcloud/*C:\Users\KULLANICI_ADI\.config\gcloud\*-
- tarafların ihlal edilmesi
- İç Çalışan
Ya da kimlik doğrulaması yapılmamış bir hizmeti tehlikeye atarak:
GCP - Unauthenticated Enum & Access
Ya da bir gözden geçirme yapıyorsanız, bu rollerle kimlik bilgilerini talep edebilirsiniz:
GCP - Permissions for a Pentest
Note
Kimlik bilgilerini elde ettikten sonra, bu kimlik bilgilerin kime ait olduğunu ve neye erişimleri olduğunu bilmeniz gerekir, bu nedenle bazı temel sayım işlemleri yapmalısınız:
Temel Sayım
SSRF
GCP metadata’sını sayım yapmak hakkında daha fazla bilgi için aşağıdaki hacktricks sayfasını kontrol edin:
Whoami
GCP’de kim olduğunuzu tahmin etmeye çalışmak için birkaç seçenek deneyebilirsiniz:
#If you are inside a compromise machine
gcloud auth list
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=$(gcloud auth print-access-token)" https://www.googleapis.com/oauth2/v1/tokeninfo
gcloud auth print-identity-token #Get info from the token
#If you compromised a metadata token or somehow found an OAuth token
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=<token>" https://www.googleapis.com/oauth2/v1/tokeninfo
Kullanıcı hakkında daha fazla bilgi almak için /userinfo API uç noktasını da kullanabilirsiniz:
curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAuth $(gcloud auth print-access-token)" https://www.googleapis.com/oauth2/v1/userinfo
curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAuth <access_token>" https://www.googleapis.com/oauth2/v1/userinfo
Org Enumeration
# Get organizations
gcloud organizations list #The DIRECTORY_CUSTOMER_ID is the Workspace ID
gcloud resource-manager folders list --organization <org_number> # Get folders
gcloud projects list # Get projects
İlkeler ve IAM Sayımı
Yeterli izinleriniz varsa, GCP hesabındaki her varlığın ayrıcalıklarını kontrol etmek, sizin ve diğer kimliklerin neler yapabileceğini ve ayrıcalıkları nasıl yükseltebileceğinizi anlamanıza yardımcı olacaktır.
IAM’yi saymak için yeterli izinleriniz yoksa, bunları kaba kuvvetle çalabilirsiniz.
Sayım ve kaba kuvvet uygulama yöntemlerini kontrol edin:
GCP - IAM, Principals & Org Policies Enum
Note
Artık kimlik bilgileriniz hakkında bazı bilgilere sahip olduğunuzda (ve eğer bir kırmızı takım üyesiyseniz umarım tespit edilmemişsinizdir). Ortamda hangi hizmetlerin kullanıldığını anlamanın zamanı geldi.
Aşağıdaki bölümde bazı yaygın hizmetleri saymanın yollarını kontrol edebilirsiniz.
Hizmet Sayımı
GCP, şaşırtıcı miktarda hizmete sahiptir, aşağıdaki sayfada temel bilgiler, sayım kılavuzları, tespiti önleme yöntemleri, kalıcılık sağlama ve bunlardan bazıları hakkında diğer sonrasında istismar hilelerini bulacaksınız:
Tüm çalışmaları manuel olarak gerçekleştirmenize gerek olmadığını unutmayın, bu yazının aşağısında otomatik araçlar hakkında bir bölüm bulabilirsiniz.
Ayrıca, bu aşamada kimlik doğrulaması yapılmamış kullanıcılara açık daha fazla hizmet keşfetmiş olabilirsiniz, bunları istismar edebilirsiniz:
GCP - Unauthenticated Enum & Access
Ayrıcalık Yükseltme, Sonrasında İstismar ve Kalıcılık
Bulut kimlik bilgilerini elde ettiğinizde veya bulut içinde çalışan bir hizmeti ele geçirdiğinizde en yaygın yol, ele geçirilen hesabın sahip olduğu yanlış yapılandırılmış ayrıcalıkları istismar etmektir. Bu nedenle, yapmanız gereken ilk şey ayrıcalıklarınızı saymaktır.
Ayrıca, bu sayım sırasında izinlerin “Organizasyon” seviyesinde de ayarlanabileceğini unutmayın.
Kamuya Açık Hizmetler
GCP hizmetlerini sayarken, bazılarını İnternete elemanlar açtığını bulmuş olabilirsiniz (VM/Konteyner portları, veritabanları veya kuyruk hizmetleri, anlık görüntüler veya bucket’lar…).
Pentester/kırmızı takım üyesi olarak, bunlarda hassas bilgiler / zafiyetler bulup bulamayacağınızı her zaman kontrol etmelisiniz, çünkü bunlar size AWS hesabına daha fazla erişim sağlayabilir.
Bu kitapta, açık GCP hizmetlerini bulma ve bunları kontrol etme hakkında bilgi bulmalısınız. Açık ağ hizmetlerinde zafiyetler bulma hakkında, belirli hizmeti aramanızı öneririm:
GCP <–> Workspace Pivotlama
Bir platformdaki ilkeleri ele geçirmek, bir saldırganın diğerini ele geçirmesine olanak tanıyabilir, bunu kontrol edin:
Otomatik Araçlar
- GCloud konsolunda, https://console.cloud.google.com/iam-admin/asset-inventory/dashboard projeye ait kullanılan kaynakları ve IAM’leri görebilirsiniz.
- Bu API tarafından desteklenen varlıkları burada görebilirsiniz: https://cloud.google.com/asset-inventory/docs/supported-asset-types
- Birçok bulutta kullanılabilecek araçları burada kontrol edin.
- gcp_scanner: Bu, GCP’de belirli kimlik bilgilerinin sahip olduğu erişim seviyesini belirlemeye yardımcı olabilecek bir GCP kaynak tarayıcısıdır.
# Install
git clone https://github.com/google/gcp_scanner.git
cd gcp_scanner
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
# Execute with gcloud creds
python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
- gcp_enum: GCP ortamını gcloud cli kullanarak listelemek ve sonuçları bir dosyaya kaydetmek için Bash scripti.
- GCP-IAM-Privilege-Escalation: Yüksek IAM ayrıcalıklarını listelemek ve bunları kötüye kullanarak GCP’de ayrıcalıkları artırmak için scriptler (listeleme scriptini çalıştırmayı başaramadım).
- BF My GCP Permissions: İzinlerinizi brute force ile kırmak için script.
gcloud config & debug
# Login so gcloud can use your credentials
gcloud auth login
gcloud config set project security-devbox
gcloud auth print-access-token
# Login so SDKs can use your user credentials
gcloud auth application-default login
gcloud auth application-default set-quota-project security-devbox
gcloud auth application-default print-access-token
# Update gcloud
gcloud components update
gcloud, gsutil… ağını yakala
Unutmayın ki gcloud cli ile yapılan istekleri yazdırmak için --log-http parametresini kullanabilirsiniz. Logların token değerini gizlemesini istemiyorsanız gcloud config set log_http_redact_token false kullanın.
Ayrıca, iletişimi kesmek için:
gcloud config set proxy/address 127.0.0.1
gcloud config set proxy/port 8080
gcloud config set proxy/type http
gcloud config set auth/disable_ssl_validation True
# If you don't want to completely disable ssl_validation use:
gcloud config set core/custom_ca_certs_file cert.pem
# Back to normal
gcloud config unset proxy/address
gcloud config unset proxy/port
gcloud config unset proxy/type
gcloud config unset auth/disable_ssl_validation
gcloud config unset core/custom_ca_certs_file
OAuth token configure in gcloud
Metadata uç noktasından sızdırılmış bir hizmet hesabı OAuth token’ını kullanmak için sadece şunu yapabilirsiniz:
# Via env vars
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>
gcloud projects list
# Via setup
echo "<token>" > /some/path/to/token
gcloud config set auth/access_token_file /some/path/to/token
gcloud projects list
gcloud config unset auth/access_token_file
Referanslar
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

