Az - Federation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From the docs:Federation bir güven kurmuş alanlar topluluğudur. Güven seviyesi değişiklik gösterebilir, ancak genellikle kimlik doğrulama içerir ve neredeyse her zaman yetkilendirme içerir. Tipik bir federasyon, paylaşılan erişim için güven kurmuş bir dizi organizasyon içerebilir.
On-premises ortamınızı Azure AD ile federate edebilir ve bu federasyonu kimlik doğrulama ve yetkilendirme için kullanabilirsiniz. Bu oturum açma yöntemi, tüm kullanıcı kimlik doğrulamasının on-premises ortamda gerçekleşmesini sağlar. Bu yöntem, yöneticilerin daha katı erişim kontrol seviyeleri uygulamasına olanak tanır. AD FS ve PingFederate ile federasyon mevcuttur.
Temelde, Federasyonda tüm kimlik doğrulama on-prem ortamında gerçekleşir ve kullanıcı, tüm güvenilir ortamlar arasında SSO deneyimler. Bu nedenle, kullanıcılar on-prem kimlik bilgilerini kullanarak bulut uygulamalarına erişim sağlayabilirler.
Security Assertion Markup Language (SAML), sağlayıcılar arasında tüm kimlik doğrulama ve yetkilendirme bilgilerini değiştirmek için kullanılır.
Herhangi bir federasyon kurulumunda üç taraf vardır:
Kullanıcı veya İstemci
Kimlik Sağlayıcı (IdP)
Hizmet Sağlayıcı (SP)
(Images from https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)
İlk olarak, bir kullanıcı bir uygulamaya (Hizmet Sağlayıcı veya SP, örneğin AWS konsolu veya vSphere web istemcisi) erişir. Bu adım atlanabilir ve istemci doğrudan IdP'ye (Kimlik Sağlayıcı) yönlendirilebilir.
Daha sonra, SP, kullanıcı kimlik doğrulaması için uygun IdP'yi (örneğin, AD FS, Okta) belirler. Ardından, bir SAML (Security Assertion Markup Language) AuthnRequest oluşturur ve istemciyi seçilen IdP'ye yönlendirir.
IdP devralır, kullanıcıyı kimlik doğrular. Kimlik doğrulama sonrası, IdP tarafından bir SAMLResponse oluşturulur ve kullanıcı aracılığıyla SP'ye iletilir.
Son olarak, SP SAMLResponse'yi değerlendirir. Başarıyla doğrulanırsa, IdP ile bir güven ilişkisi olduğunu gösterir ve kullanıcıya erişim verilir. Bu, oturum açma sürecinin tamamlandığını işaret eder ve kullanıcının hizmeti kullanmasına olanak tanır.
SAML kimlik doğrulaması ve yaygın saldırılar hakkında daha fazla bilgi edinmek istiyorsanız:
AD FS, iddia temelli bir kimlik modelidir.
"..iddialar, kullanıcılar hakkında yapılan (örneğin, ad, kimlik, grup) basit ifadelerdir ve esasen internet üzerinde herhangi bir yerde bulunan iddia temelli uygulamalara erişimi yetkilendirmek için kullanılır."
Bir kullanıcı için iddialar SAML token'larının içine yazılır ve ardından IdP tarafından gizlilik sağlamak için imzalanır.
Bir kullanıcı ImmutableID ile tanımlanır. Bu, küresel olarak benzersizdir ve Azure AD'de saklanır.
ImmutableID, kullanıcı için on-prem olarak ms-DS-ConsistencyGuid üzerinde saklanır ve/veya kullanıcının GUID'inden türetilebilir.
Golden SAML saldırısı:
ADFS'de, SAML Yanıtı bir token imzalama sertifikası ile imzalanır.
Sertifika tehlikeye girerse, Azure AD'ye senkronize edilmiş HERHANGİ bir kullanıcı olarak kimlik doğrulamak mümkündür!
PTA istismarımız gibi, bir kullanıcı için şifre değişikliği veya MFA'nın hiçbir etkisi olmayacaktır çünkü kimlik doğrulama yanıtını sahteleyerek işlem yapıyoruz.
Sertifika, DA ayrıcalıkları ile AD FS sunucusundan çıkarılabilir ve ardından herhangi bir internet bağlantılı makineden kullanılabilir.
Bir Kimlik Sağlayıcı (IdP) tarafından kullanıcı oturum açmasını yetkilendirmek için üretilen bir SAMLResponse süreci çok önemlidir. IdP'nin belirli uygulamasına bağlı olarak, yanıt imzalanmış veya şifrelenmiş olabilir ve bu işlem IdP'nin özel anahtarı kullanılarak gerçekleştirilir. Bu prosedür, Hizmet Sağlayıcı (SP)'nın SAMLResponse'nin doğruluğunu onaylamasını sağlar ve bunun güvenilir bir IdP tarafından verildiğini garanti eder.
Golden ticket saldırısı ile bir paralellik kurulabilir; burada kullanıcının kimliğini ve izinlerini doğrulayan anahtar (golden ticket'lar için KRBTGT, golden SAML için token imzalama özel anahtarı) sahtelemek için manipüle edilebilir ve bu, bir kimlik doğrulama nesnesi (TGT veya SAMLResponse) oluşturulmasına olanak tanır. Bu, herhangi bir kullanıcının taklit edilmesine ve SP'ye yetkisiz erişim sağlanmasına olanak tanır.
Golden SAML'lerin belirli avantajları vardır:
Uzaktan oluşturulabilirler, ilgili alan veya federasyonun parçası olma gereği olmaksızın.
İki Faktörlü Kimlik Doğrulama (2FA) etkin olsa bile etkili kalırlar.
Token imzalama özel anahtarı otomatik olarak yenilenmez.
Bir kullanıcının şifresini değiştirmek, zaten oluşturulmuş bir SAML'yi geçersiz kılmaz.
Active Directory Federation Services (AD FS) Microsoft'un güvenilir iş ortakları (federasyon) arasında kimlik bilgilerini güvenli bir şekilde değiştirmeyi kolaylaştıran bir hizmetidir. Temelde, bir alan hizmetinin, bir federasyon içindeki diğer hizmet sağlayıcılarla kullanıcı kimliklerini paylaşmasına olanak tanır.
AWS, tehlikeye giren alanı (bir federasyonda) güvenilir kabul ettiğinde, bu zafiyet, AWS ortamında herhangi bir izin edinme potansiyeli ile istismar edilebilir. Saldırı, SAML nesnelerini imzalamak için kullanılan özel anahtarı gerektirir; bu, golden ticket saldırısında KRBTGT'yi gerektirmeye benzer. AD FS kullanıcı hesabına erişim, bu özel anahtarı elde etmek için yeterlidir.
Golden SAML saldırısını gerçekleştirmek için gerekenler şunlardır:
Token imzalama özel anahtarı
IdP genel sertifikası
IdP adı
Rol adı (üstlenilecek rol)
Alan\kullanıcı adı
AWS'deki rol oturum adı
Amazon hesap kimliği
Sadece kalın yazılı olanlar zorunludur. Diğerleri isteğe bağlı olarak doldurulabilir.
Özel anahtarı elde etmek için AD FS kullanıcı hesabına erişim gereklidir. Buradan, özel anahtar mimikatz gibi araçlar kullanılarak kişisel depodan dışa aktarılabilir. Diğer gerekli bilgileri toplamak için, Microsoft.Adfs.Powershell snapin'ini şu şekilde kullanabilirsiniz; ADFS kullanıcısı olarak oturum açtığınızdan emin olun:
Tüm bilgilerle, taklit etmek istediğiniz kullanıcı olarak geçerli bir SAMLResponse unutmak mümkündür shimit:
Aynı zamanda yalnızca bulut kullanıcılarının ImmutableID'sini oluşturmak ve onları taklit etmek de mümkündür.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)