GCP - Alan Genel Yetkilendirmeyi Anlamak

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

Bu gönderi, daha fazla ayrıntı için erişilebilen https://www.hunters.security/en/blog/delefriend-a-newly-discovered-design-flaw-in-domain-wide-delegation-could-leave-google-workspace-vulnerable-for-takeover bağlantısının tanıtımıdır.

Alan Genel Yetkilendirmeyi Anlamak

Google Workspace’in Alan Genel yetkilendirmesi, bir kimlik nesnesinin, ya bir harici uygulama olarak Google Workspace Marketplace’ten ya da bir iç GCP Hizmet Hesabı olarak, kullanıcılar adına Workspace’teki verilere erişmesine olanak tanır. Bu özellik, Google API’leri veya kullanıcı taklidi gerektiren hizmetlerle etkileşimde bulunan uygulamalar için kritik öneme sahiptir ve görevleri otomatikleştirerek verimliliği artırır ve insan hatalarını en aza indirir. OAuth 2.0 kullanarak, uygulama geliştiricileri ve yöneticileri, bu hizmet hesaplarına bireysel kullanıcı onayı olmadan kullanıcı verilerine erişim verebilir.

Google Workspace, iki ana türde küresel yetkilendirilmiş nesne kimlikleri oluşturulmasına izin verir:

  • GWS Uygulamaları: Marketplace’ten gelen uygulamalar, yetkilendirilmiş bir kimlik olarak ayarlanabilir. Her Workspace uygulaması, potansiyel kötüye kullanımı en aza indirmek için Google tarafından incelenir. Bu, kötüye kullanım riskini tamamen ortadan kaldırmasa da, bu tür olayların gerçekleşmesini önemli ölçüde zorlaştırır.
  • GCP Hizmet Hesabı: Daha fazla bilgi için GCP Hizmet Hesapları burada öğrenin.

Alan Genel Yetkilendirme: Arkada Neler Oluyor

Bir GCP Hizmet Hesabının Google API’lerine diğer kimlikler adına nasıl erişebileceği:

  1. Kimlik bir JWT oluşturur: Kimlik, bir JWT’yi imzalamak için hizmet hesabının özel anahtarını (JSON anahtar çift dosyasının bir parçası) kullanır. Bu JWT, hizmet hesabı, taklit edilecek hedef kullanıcı ve talep edilen REST API’ye erişim için OAuth kapsamları hakkında iddialar içerir.
  2. Kimlik, erişim token’ı talep etmek için JWT’yi kullanır: Uygulama/kullanıcı, Google’ın OAuth 2.0 hizmetinden bir erişim token’ı talep etmek için JWT’yi kullanır. Talep ayrıca taklit edilecek hedef kullanıcıyı (kullanıcının Workspace e-posta adresi) ve erişim talep edilen kapsamları içerir.
  3. Google’ın OAuth 2.0 hizmeti bir erişim token’ı döner: Erişim token’ı, belirtilen kapsamlar için kullanıcı adına hareket etme yetkisini temsil eder. Bu token genellikle kısa ömürlüdür ve periyodik olarak yenilenmesi gerekir (uygulamanın ihtiyacına göre). JWT token’ında belirtilen OAuth kapsamlarının geçerliliği ve sonuçta elde edilen erişim token’ı üzerinde etkisi olduğunu anlamak önemlidir. Örneğin, birden fazla kapsamı olan erişim token’ları, birçok REST API uygulaması için geçerlilik taşır.
  4. Kimlik, Google API’lerini çağırmak için erişim token’ını kullanır: Şimdi ilgili bir erişim token’ı ile hizmet, gerekli REST API’ye erişebilir. Uygulama, bu erişim token’ını Google API’lerine yönelik HTTP isteklerinin “Authorization” başlığında kullanır. Bu API’ler, taklit edilen kimliği doğrulamak ve gerekli yetkilendirmeye sahip olduğunu onaylamak için token’ı kullanır.
  5. Google API’leri talep edilen verileri döner: Erişim token’ı geçerliyse ve hizmet hesabı uygun yetkilendirmeye sahipse, Google API’leri talep edilen verileri döner. Örneğin, aşağıdaki resimde, hedef bir Workspace kullanıcısıyla ilişkili tüm Gmail mesaj kimliklerini listelemek için users.messages.list yöntemini kullandık.

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