GCP - Privilege Escalation
Last updated
Last updated
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)
GCP, diğer bulutlar gibi bazı prensipler: kullanıcılar, gruplar ve hizmet hesapları ile bazı kaynaklar: hesaplama motoru, bulut fonksiyonları… Sonra, roller aracılığıyla, bu prensiplere kaynaklar üzerinde izinler verilir. Bu, GCP'de bir prensibin bir kaynak üzerindeki izinlerini belirtmenin yoludur. Kullanıcının bir kaynak veya üçüncü taraf kaynaklar üzerinde daha fazla izin almasına olanak tanıyan belirli izinler vardır ve buna yetki yükseltme denir (ayrıca, daha fazla izin almak için zafiyetlerin istismar edilmesi).
Bu nedenle, GCP yetki yükseltme tekniklerini 2 gruba ayırmak istiyorum:
Bir prensibe yetki yükseltme: Bu, başka bir prensibi taklit etmenizi sağlar ve dolayısıyla onun tüm izinleriyle hareket edersiniz. Örneğin: Bir hizmet hesabını taklit etmek için getAccessToken kullanmak.
Kaynak üzerinde yetki yükseltme: Bu, belirli bir kaynak üzerinde daha fazla izin almanızı sağlar. Örneğin: Bulut fonksiyonlarını tetiklemek için setIamPolicy iznini kötüye kullanabilirsiniz.
Bazı kaynak izinlerinin, kaynağa keyfi bir hizmet hesabı eklemenize de izin vereceğini unutmayın. Bu, bir SA ile bir kaynak başlatabileceğiniz, kaynağa girebileceğiniz ve SA token'ını çalabileceğiniz anlamına gelir. Bu, daha önce birkaç kaynakta gerçekleşti, ancak şimdi daha az sık görülüyor (ama yine de olabilir).
Açıkça, en ilginç yetki yükseltme teknikleri ikinci gruptaki tekniklerdir çünkü bu, zaten bazı izinlere sahip olduğunuz kaynakların dışındaki daha fazla ayrıcalık elde etmenizi sağlar. Ancak, kaynaklarda yükselmenin size hassas bilgilere veya hatta diğer prensiplere (belki bir SA'nın token'ını içeren bir sırrı okuyarak) erişim verebileceğini unutmayın.
Ayrıca, GCP'de Hizmet Hesapları hem prensipler hem de izinlerdir, bu nedenle bir SA'da yetki yükseltmek, onu da taklit etmenizi sağlar.
Parantez içindeki izinler, zafiyeti gcloud
ile istismar etmek için gereken izinleri gösterir. API üzerinden istismar ediliyorsa bunlar gerekli olmayabilir.
Bu, GCP içinde belirli eylemleri gerçekleştirmek için belirli izinleri test etme şeklimdir.
Github reposunu indirin https://github.com/carlospolop/gcp_privesc_scripts
tests/ dizinine yeni script ekleyin
GCP meta veri hizmetinden sızan SA token'ları erişim kapsamlarına sahiptir. Bunlar, token'ın sahip olduğu izinler üzerinde kısıtlamalardır. Örneğin, token https://www.googleapis.com/auth/cloud-platform
kapsamına sahipse, tüm GCP hizmetlerine tam erişim olacaktır. Ancak, token https://www.googleapis.com/auth/cloud-platform.read-only
kapsamına sahipse, SA IAM'de daha fazla izne sahip olsa bile, tüm GCP hizmetlerine yalnızca salt okunur erişim olacaktır.
Bu izinleri aşmanın doğrudan bir yolu yoktur, ancak her zaman kırılmış hostta yeni kimlik bilgileri aramayı, kısıtlama olmadan bir OAuth token'ı oluşturmak için hizmet anahtarını bulmayı veya daha az kısıtlı bir VM'ye atlamayı deneyebilirsiniz.
erişim kapsamları kullanıldığında, hesaplama örneği (VM) için oluşturulan OAuth token'ı bir kapsam kısıtlaması içerir. Ancak, bu kısıtlamayı aşabilir ve ele geçirilen hesabın sahip olduğu izinleri istismar edebilirsiniz.
Bu kısıtlamayı aşmanın en iyi yolu, ya kırılmış hostta yeni kimlik bilgileri bulmak, ya kısıtlama olmadan bir OAuth token'ı oluşturmak için hizmet anahtarını bulmak ya da daha az kısıtlı bir SA ile farklı bir VM'yi ele geçirmek olacaktır.
Anahtarları ile SA'yı kontrol edin:
AWS'de yetkilerinizi yükseltmenin yolu, diğer hizmet hesaplarının/kullanıcılarının/gruplarının yetkilerine bir şekilde erişebilecek kadar yeterli izne sahip olmaktır. Yükseltmeleri zincirleme yaparak organizasyon üzerinde yönetici erişimi elde etmek.
GCP'nin bir varlığa verilebilecek yüzlerce (binlerce değilse) izni vardır. Bu kitapta, yetki yükseltmek için kötüye kullanabileceğiniz bildiğim tüm izinleri bulabilirsiniz, ancak burada belirtilmeyen bir yol biliyorsanız, lütfen paylaşın.
Bu bölümün alt sayfaları hizmetlere göre sıralanmıştır. Her hizmette, hizmetler üzerinde yetki yükseltmenin farklı yollarını bulabilirsiniz.
Eğer GCP'de bir makinenin içindeyseniz, yerel olarak yetkileri yükseltmek için izinleri kötüye kullanma imkanınız olabilir:
GCP - local privilege escalation ssh pivotingAWS 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)