Az - OAuth Apps Phishing
Last updated
Last updated
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)
Azure Uygulamaları, bir kullanıcının uygulamayı onayladığında kullanabileceği izinlerle yapılandırılmıştır (örneğin dizini listeleme, dosyalara erişim veya diğer eylemleri gerçekleştirme). Uygulamanın kullanıcı adına hareket edeceğini unutmayın, bu nedenle uygulama yönetim izinleri talep etse bile, eğer kullanıcı bu izne sahip değilse, uygulama yönetimsel eylemleri gerçekleştiremeyecektir.
Varsayılan olarak, herhangi bir kullanıcı uygulamalara onay verebilir, ancak bu, kullanıcıların yalnızca seçilen izinler için doğrulanmış yayıncılardan uygulamalara onay verebileceği şekilde yapılandırılabilir veya kullanıcıların uygulamalara onay verme izninin kaldırılması sağlanabilir.
Eğer kullanıcılar onay veremiyorsa, GA
, Uygulama Yöneticisi
veya Bulut Uygulama
Yöneticisi
gibi yöneticiler, kullanıcıların kullanabileceği uygulamalara onay verebilir.
Ayrıca, eğer kullanıcılar yalnızca düşük riskli izinlere sahip uygulamalara onay verebiliyorsa, bu izinler varsayılan olarak openid, profil, email, User.Read ve offline_access'dir, ancak bu listeye daha fazlasını eklemek mümkündür.
Eğer tüm uygulamalara onay verebiliyorlarsa, tüm uygulamalara onay verebilirler.
Kimlik doğrulaması yapılmamış: Dış bir hesaptan, örneğin User.Read
ve User.ReadBasic.All
gibi düşük riskli izinlerle bir uygulama oluşturun, bir kullanıcıyı phishing yapın ve dizin bilgilerine erişim sağlayın.
Bu, phishing yapılan kullanıcının dış kiracıdan OAuth uygulamalarını kabul edebilmesi gerektirir.
Eğer phishing yapılan kullanıcı, herhangi bir izinle herhangi bir uygulamaya onay verebilen bir yönetici ise, uygulama ayrılmış izinler talep edebilir.
Kimlik doğrulaması yapılmış: Yeterli ayrıcalıklara sahip bir anahtarı ele geçirdikten sonra, hesap içinde bir uygulama oluşturun ve ayrılmış OAuth izinlerini kabul edebilecek bazı ayrılmış kullanıcıları phishing yapın.
Bu durumda, dizin bilgilerine zaten erişiminiz olduğu için User.ReadBasic.All
izni artık ilginç değildir.
Yönetici tarafından verilmesi gereken izinlerle ilgileniyorsanız, çünkü sıradan bir kullanıcı OAuth uygulamalarına herhangi bir izin veremez, bu yüzden yalnızca bu kullanıcıları phishing yapmalısınız (bu ayrıcalığı hangi roller/izinlerin verdiği hakkında daha fazla bilgi daha sonra).
Bu komutu kiracı içindeki bir kullanıcıdan çalıştırmanız gerektiğini unutmayın, dış bir kiracıdan bu yapılandırmayı bulamazsınız. Aşağıdaki cli, kullanıcıların izinlerini anlamanıza yardımcı olabilir:
Kullanıcılar tüm uygulamalara onay verebilir: Eğer permissionGrantPoliciesAssigned
içinde: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
bulursanız, kullanıcılar her uygulamayı kabul edebilir.
Kullanıcılar yalnızca seçtiğiniz izinler için doğrulanmış yayıncılardan veya kuruluşunuzdan gelen uygulamalara onay verebilir: Eğer permissionGrantPoliciesAssigned
içinde: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
bulursanız, kullanıcılar her uygulamayı kabul edebilir.
Kullanıcı onayını devre dışı bırak: Eğer permissionGrantPoliciesAssigned
içinde yalnızca: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
ve ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
bulursanız, kullanıcılar hiçbirine onay veremez.
Yorumlanan politikaların her birinin anlamını bulmak mümkündür:
Yeni uygulamaları kabul edebilen uygulama yöneticisi olarak kabul edilen kullanıcıları kontrol edin:
Saldırı, genel bir şirketi hedef alan birkaç adımı içerir. İşte nasıl gelişebileceği:
Alan Adı Kaydı ve Uygulama Barındırma: Saldırgan, güvenilir bir siteyi andıran bir alan adı kaydeder, örneğin "safedomainlogin.com". Bu alan adı altında, yetkilendirme kodlarını yakalamak ve erişim token'ları talep etmek için tasarlanmış bir uygulamayı barındırmak üzere bir alt alan adı oluşturulur (örneğin, "companyname.safedomainlogin.com").
Azure AD'de Uygulama Kaydı: Saldırgan, hedef şirketin adını kullanarak Azure AD Kiracısında Çoklu Kiracı Uygulaması kaydeder, böylece meşru görünür. Uygulamanın Yönlendirme URL'sini kötü niyetli uygulamayı barındıran alt alan adına yönlendirecek şekilde yapılandırır.
İzinlerin Ayarlanması: Saldırgan, uygulamayı çeşitli API izinleriyle (örneğin, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
) ayarlar. Bu izinler, kullanıcı tarafından verildiğinde, saldırgana kullanıcının adına hassas bilgileri çıkarmasına olanak tanır.
Kötü Amaçlı Bağlantıların Dağıtılması: Saldırgan, kötü niyetli uygulamanın istemci kimliğini içeren bir bağlantı hazırlar ve bunu hedeflenen kullanıcılara paylaşarak onların onay vermelerini sağlar.
Yeni bir uygulama kaydedin. Eğer saldırıya uğrayan dizinden bir kullanıcı kullanıyorsanız, yalnızca mevcut dizin için olabilir veya bu bir dış saldırıysa (aşağıdaki resimde olduğu gibi) herhangi bir dizin için olabilir.
Ayrıca yönlendirme URI'sini almak istediğiniz token'ları almak için kodu alacağınız beklenen URL'ye ayarlayın (http://localhost:8000/callback
varsayılan olarak).
Ardından bir uygulama sırrı oluşturun:
API izinlerini seçin (örneğin, Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
İzinleri isteyen web sayfasını (azure_oauth_phishing_example) çalıştırın:
URL'yi kurbanın gönderin
Bu durumda http://localhost:8000
Kurbanlar isteği kabul etmelidir:
İstenen izinlere erişmek için erişim jetonunu kullanın:
365-Stealer: Bunu yapılandırmayı öğrenmek için https://www.alteredsecurity.com/post/introduction-to-365-stealer adresini kontrol edin.
İstenen izinlere bağlı olarak kiracının farklı verilerine erişim sağlayabilirsiniz (kullanıcıları, grupları listeleme... veya ayarları değiştirme) ve kullanıcı bilgilerine (dosyalar, notlar, e-postalar...) erişebilirsiniz. Ardından, bu izinleri bu eylemleri gerçekleştirmek için kullanabilirsiniz.
Sayfanın Uygulamalar ve Hizmet Prensibi bölümlerini kontrol edin:
Az - EntraID PrivescAWS 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)