GCP Pentesting
Temel Bilgiler
GCP ortamını pentest etmeye başlamadan önce, ne yapmanız gerektiğini, yanlış yapılandırmaları nasıl bulacağınızı ve nasıl sömüreceğinizi anlamanıza yardımcı olacak birkaç temel bilgiye ihtiyacınız vardır.
Organizasyon hiyerarşisi, izinler ve diğer temel kavramlar şu adreste açıklanmıştır:
GCP - Basic InformationÖğrenmek için Lablar
GCP Pentester/Kırmızı Takım Metodolojisi
Bir GCP ortamını denetlemek için çok önemli olan şeyler: hangi hizmetlerin kullanıldığı, neyin açığa çıkarıldığı, kimin neye erişimi olduğu ve iç GCP hizmetlerinin harici hizmetlerle nasıl bağlantılı olduğudur.
Kırmızı Takım açısından, bir GCP ortamını ele geçirmenin ilk adımı, bazı kimlik bilgilerini elde etmeyi başarmaktır. İşte bunu nasıl yapabileceğinize dair bazı fikirler:
Github (veya benzeri) sızıntıları - OSINT
Sosyal Mühendislik (Sayfayı kontrol edin Workspace Güvenliği)
Şifre yeniden kullanımı (şifre sızıntıları)
GCP'de barındırılan Uygulamalardaki Zayıflıklar
Sunucu Tarafı İstek Sahteciliği (SSRF) - meta veri uç noktasına erişimle
Yerel Dosya Okuma
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
tarafların ihlal edilmesi
İç Çalışan
Veya kimlik doğrulaması yapılmamış bir hizmeti ele geçirerek:
GCP - Unauthenticated Enum & AccessVeya bir inceleme yapıyorsanız, bu rollerle kimlik bilgilerini talep edebilirsiniz:
GCP - Permissions for a PentestKimlik bilgilerini elde etmeyi başardıktan sonra, bu kimlik bilgilerinin kime ait olduğunu ve neye erişimi olduğunu bilmek için bazı temel numaralandırmalar yapmanız gerekmektedir:
Temel Numaralandırma
SSRF
GCP meta verilerini nasıl numaralandıracağınız hakkında daha fazla bilgi için aşağıdaki hacktricks sayfasına bakın:
Ben Kimim
GCP'de kim olduğunuzu tahmin etmek için birkaç seçenek deneyebilirsiniz:
Org Saptama
Bu bölümde, hedef GCP (Google Cloud Platform) örgütünü saptamak için kullanılan teknikler açıklanmaktadır. Bu bilgiler, bir saldırganın hedef örgüt hakkında bilgi toplamasına ve saldırı vektörlerini belirlemesine yardımcı olabilir.
1. Google Cloud Resource Manager API Kullanarak Örgüt ID'sini Almak
Bu API, GCP örgütlerini yönetmek için kullanılır. Bir saldırgan, bu API'yi kullanarak hedef örgütün ID'sini elde edebilir.
2. Google Cloud Directory API Kullanarak Örgütün Kullanıcılarını ve Gruplarını Almak
Bu API, G Suite kullanıcılarını ve gruplarını yönetmek için kullanılır. Bir saldırgan, bu API'yi kullanarak hedef örgütün kullanıcılarını ve gruplarını elde edebilir.
3. Google Cloud Asset API Kullanarak Örgütün Varlıklarını Almak
Bu API, GCP varlıklarını yönetmek için kullanılır. Bir saldırgan, bu API'yi kullanarak hedef örgütün varlıklarını elde edebilir.
4. Google Cloud Identity and Access Management (IAM) API Kullanarak Örgütün IAM Politikalarını Almak
Bu API, GCP örgütlerinin IAM politikalarını yönetmek için kullanılır. Bir saldırgan, bu API'yi kullanarak hedef örgütün IAM politikalarını elde edebilir.
5. Google Cloud Security Command Center (SCC) Kullanarak Örgütün Güvenlik Durumunu Almak
Bu hizmet, GCP örgütlerinin güvenlik durumunu izlemek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün güvenlik durumunu elde edebilir.
6. Google Cloud Asset Inventory Kullanarak Örgütün Varlık Envanterini Almak
Bu hizmet, GCP örgütlerinin varlık envanterini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün varlık envanterini elde edebilir.
7. Google Cloud Resource Manager Kullanarak Örgütün Alt Projelerini Almak
Bu hizmet, GCP örgütlerinin alt projelerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün alt projelerini elde edebilir.
8. Google Cloud Resource Manager Kullanarak Örgütün Politikalarını Almak
Bu hizmet, GCP örgütlerinin politikalarını yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün politikalarını elde edebilir.
9. Google Cloud Resource Manager Kullanarak Örgütün Hizmetlerini Almak
Bu hizmet, GCP örgütlerinin hizmetlerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün hizmetlerini elde edebilir.
10. Google Cloud Resource Manager Kullanarak Örgütün Faturalandırma Bilgilerini Almak
Bu hizmet, GCP örgütlerinin faturalandırma bilgilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün faturalandırma bilgilerini elde edebilir.
11. Google Cloud Resource Manager Kullanarak Örgütün İzinlerini Almak
Bu hizmet, GCP örgütlerinin izinlerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün izinlerini elde edebilir.
12. Google Cloud Resource Manager Kullanarak Örgütün Kullanıcılarını Almak
Bu hizmet, GCP örgütlerinin kullanıcılarını yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün kullanıcılarını elde edebilir.
13. Google Cloud Resource Manager Kullanarak Örgütün Gruplarını Almak
Bu hizmet, GCP örgütlerinin gruplarını yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün gruplarını elde edebilir.
14. Google Cloud Resource Manager Kullanarak Örgütün Rollerini Almak
Bu hizmet, GCP örgütlerinin rollerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün rollerini elde edebilir.
15. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
16. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
17. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
18. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
19. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
20. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
21. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
22. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
23. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
24. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
25. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
26. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
27. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
28. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
29. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
30. Google Cloud Resource Manager Kullanarak Örgütün İş İlişkilerini Almak
Bu hizmet, GCP örgütlerinin iş ilişkilerini yönetmek için kullanılır. Bir saldırgan, bu hizmeti kullanarak hedef örgütün iş ilişkilerini elde edebilir.
İlkeler ve IAM Numaralandırma
Yeterli izinlere sahipseniz, GCP hesabındaki her bir varlık için ayrıcalıklarını kontrol etmek, ne yapabileceğinizi ve diğer kimliklerin nasıl ayrıcalıklarını yükseltebileceğinizi anlamanıza yardımcı olacaktır.
IAM'ı numaralandırmak için yeterli izniniz yoksa, onları anlamak için kaba kuvvet uygulayabilirsiniz. Numaralandırmayı ve kaba kuvvet uygulamayı nasıl yapacağınızı kontrol edin:
GCP - IAM, Principals & Org Policies EnumŞimdi kimlik bilgileriniz hakkında bazı bilgilere sahip olduğunuzda (ve eğer bir kırmızı takım üyesiyseniz umarım tespit edilmediniz). Ortamda hangi hizmetlerin kullanıldığını anlamak için zamanı geldi. Aşağıdaki bölümde, bazı yaygın hizmetlerin numaralandırılması için bazı yöntemleri kontrol edebilirsiniz.
Hizmetlerin Numaralandırılması
GCP'nin inanılmaz miktarda hizmeti vardır, aşağıdaki sayfada bazılarının temel bilgilerini, numaralandırma hilelerini, tespit edilmeyi önleme yöntemlerini, kalıcılık sağlama yöntemlerini ve diğer saldırı sonrası hileleri bulabilirsiniz:
GCP - ServicesTüm işi manuel olarak yapmanıza gerek yoktur, bu gönderinin altında otomatik araçlar hakkında bir bölüm bulabilirsiniz.
Ayrıca, bu aşamada kimlik doğrulaması yapılmamış kullanıcılara daha fazla hizmetin açığa çıktığını keşfedebilirsiniz, bunları sömürebilirsiniz:
GCP - Unauthenticated Enum & AccessAyrıcalık Yükseltme, Saldırı Sonrası ve Kalıcılık
Bir bulut kimlik bilgisi elde ettiğinizde veya bir bulutta çalışan bir hizmeti ele geçirdiğinizde, en yaygın yöntem, ele geçirilen hesabın sahip olabileceği yanlış yapılandırılmış ayrıcalıkları kötüye kullanmaktır. Bu nedenle, yapmanız gereken ilk şey ayrıcalıklarınızı numaralandırmaktır.
Ayrıca, bu numaralandırma sırasında, izinlerin en üst düzeyde "Organizasyon" seviyesinde ayarlanabileceğini unutmayın.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceKamuya Açık Hizmetler
GCP hizmetlerini numaralandırırken, bazılarının İnternet'e (VM/Container bağlantı noktaları, veritabanları veya kuyruk hizmetleri, anlık görüntüler veya kovalar...) öğeleri açığa çıkardığını fark etmiş olabilirsiniz. Bir pentester/red teamer olarak, AWS hesabına daha fazla erişim sağlayabilecek hassas bilgileri / zafiyetleri bulup bulamayacağınızı her zaman kontrol etmelisiniz.
Bu kitapta, açığa çıkarılmış GCP hizmetlerini nasıl bulacağınızı ve kontrol edeceğinizi bulabilirsiniz. Açığa çıkarılmış ağ hizmetlerinde zafiyetleri nasıl bulacağınız hakkında ise, özel hizmet için aşağıdaki arama yapmanızı öneririm:
GCP <--> Workspace Geçişi
Bir platformdaki varlıkları ele geçirmek, bir saldırganın diğerini ele geçirmesine izin verebilir, bunu kontrol edin:
GCP <--> Workspace PivotingOtomatik Araçlar
GCloud konsolunda, https://console.cloud.google.com/iam-admin/asset-inventory/dashboard adresinde proje tarafından kullanılan kaynakları ve IAM'ları görebilirsiniz.
Bu API tarafından desteklenen varlıkları burada görebilirsiniz: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Birden fazla bulutta kullanılabilecek araçları burada kontrol edin: pentesting-cloud-methodology.md.
gcp_scanner: Bu, GCP kaynak tarama aracıdır ve GCP'de belirli kimlik bilgilerinin hangi düzeyde erişime sahip olduğunu belirlemeye yardımcı olabilir.
gcp_enum: GCP ortamını gcloud cli kullanarak sıralayan ve sonuçları bir dosyada kaydeden bir Bash betiği.
GCP-IAM-Privilege-Escalation: Yüksek IAM ayrıcalıklarını sıralamak ve bunları kötüye kullanarak GCP'de ayrıcalıkları yükseltmek için betikler (sıralama betiğini çalıştıramadım).
gcloud yapılandırması ve hata ayıklama
gcloud, gsutil... ağını yakalama
gcloud
komut satırı aracını kullanarak --log-http
parametresini kullanabilirsiniz. Bu parametre ile aracın gerçekleştirdiği istekleri yazdırabilirsiniz. Eğer logların belirteç değerini sansürlemesini istemiyorsanız gcloud config set log_http_redact_token false
komutunu kullanabilirsiniz.
Ayrıca, iletişimi dinlemek için:
gcloud'da OAuth belirteci yapılandırma
Bir hizmet hesabı OAuth belirtecisini metadata uç noktasından çalmak için yapmanız gereken sadece şudur:
Referanslar
Last updated