GCP - Privilege Escalation
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın: GCP Hacking'i öğrenin ve pratik yapın:
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.
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.
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:
Github reposunu indirin
kullanıldığında, hesaplama örneği (VM) için oluşturulan OAuth token'ı bir kısıtlaması içerir. Ancak, bu kısıtlamayı aşabilir ve ele geçirilen hesabın sahip olduğu izinleri istismar edebilirsiniz.
AWS Hacking'i öğrenin ve pratik yapın: GCP Hacking'i öğrenin ve pratik yapın:
kontrol edin!
💬 veya katılın ya da Twitter'da 🐦 'i takip edin.**
Hacking ipuçlarını paylaşmak için ve github reposuna PR gönderin.