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

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:

GCP - Basic Information

Öğrenme Laboratuvarları

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\*
    1. 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:

Cloud SSRF - HackTricks

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:

GCP - Services

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.

GCP - Privilege Escalation

GCP - Post Exploitation

GCP - Persistence

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:

HackTricks - HackTricks

GCP <–> Workspace Pivotlama

Bir platformdaki ilkeleri ele geçirmek, bir saldırganın diğerini ele geçirmesine olanak tanıyabilir, bunu kontrol edin:

GCP <–> Workspace Pivoting

Otomatik Araçlar

# 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