Transcript

PwC Türkiye Tarih:27.03.2019

Köşe Yazıları www.pwc.com.tr

Hatalı LDAP Konfigürasyonunu Kullanarak Yetki Yükseltme Kavramlar

LDAP (Lightweight Directory Access protocol): Lightweight Directory Access Protocol veya kısaca LDAP TCP/IP üzerinde çalışan indeks servislerini sorgulama ve değiştirme amacıyla kullanılan uygulama katmanı protokolü. Bu protokol, OpenLDAP, Sun Directory Server, Microsoft Active Directory gibi indeks sunucuları tarafından kullanılmaktadır. [1]

DES / crypt(3) : [2]

Adımlar LDAP, yetki kontrolleri için yoğun olarak kullanılan bir servis. Piyasadaki birçok ürün ile uyumluluğu olduğu için kurumlarda da sıklıkla karşımıza çıkıyor. Uygun şekilde konfigüre edildiği takdirde son derece verimli bir hizmet sağlar. Fakat kritik bir işlevi barındırdığı için, gözden kaçan noktalar da büyük güvenlik riskleri teşkil edebilir. Yaptığımız sızma testlerinden birinde karşımıza çıkan bir senaryo ile durumu daha net ifade edebilirim; İç ağ testleri sırasında yapılan tarama sonucunda LDAP servisini bulduk.

Servise login olmak için LDAP Admin[3] aracını açıp, servisin çalıştığı sunucu adresini girdik. Burada 2 seçenek var; kullanıcı adı ve parola sağlayabilirsiniz veya anonim giriş deneyebilirsiniz. Elimizde bir kullanıcı adı parola olmadığı için anonim hesabı kullanarak bağlandık. Anonim hesapla giriş yaptığımızda People adında bir OperationalUnit(ou) üzerinde okuma yetkisine sahip olduğunu gördük.

Bu ou nesnesini genişlettiğimizde sistemde kayıtlı kullanıcılara ait bilgiler ortaya çıktı. Bu bilgiler arasında bizim ilgimizi çekenler uid ve userPassword alanları.

Tüm yapının listesini almaya çalıştığımızda anonim kullanıcıların 500’den fazla kaydı okuyamayacağı yönünde bir hata verdi.

Arama kısmını kullanarak basit bir düzen ile sonuçları filtreleyerek sonuçların 500’den az olmasını sağladık.

A harfinden başlayarak kullanıcı adının ilk harfi a olan tüm kullanıcıları çektik.

Bu şekilde z’ye kadar devam ederek tüm kullanıcıların bilgilerini elde etmek mümkün oldu.

Bu elde ettiğimiz verileri bir dosyaya kaydettik. Tüm kayıtlar çekildikten sonra da tek bir yerde birleştirdikten sonra sıra elde ettiğimiz parola hashlerini kırmaya geldi.

Öncelikle algoritmayı anlamak gerekiyor. Hash formatını araştırdığımızda “DES /crypt(3)” formatı ile karşılaştık. Elde edilen hash bilgisinin ilk 2 karakteri salt, kalan 11 karakter ise hash. Operasyonel maliyeti yüksek bir algoritma, hesaplanması, dolayısıyla da kaba kuvvet yaklaşımıyla kırılması zaman gerektiriyor. Aynı zamanda da bazı kısıtlamaları olan bir algoritma. Kullanılacak parola olarak maksimum 8 karakter kabul ediyor. Oluşturacağımız kurallar için bu önemli bir nokta oldu. Ön hazırlık safhasının ardından kafamızda şekillenen kuralları yazdık ve parolaları kırmaya başladık. Parolalar kırıldıkça sık kullanılan formatları alıp yeni kurallar haline getirdik. Sonuç olarak elde ettiğimiz 10650 hash’in %70’e yakınını 2 gün gibi kısa bir süre içinde kırmayı başardık. Bunlardan birisi de Domain Admin yetkisine sahip bir kullanıcıydı.

Bu noktadan sonra riskin ne kadar büyük olduğunu net bir şekilde ifade ettiğimiz için uygun bir şekilde çözüm önerilerinin raporlanmasına geçtik.

(Miami, 7.03.2019)

Gökhan Muharremoğlu Mert Yeniay Cyber Security, Senior Manager Cyber Security, Consultant Email: [email protected] Email: [email protected]

Referanslar [1]-LDAP - https://tr.wikipedia.org/wiki/LDAP [2]-DES/crypt(3) Algoritması - https://en.wikipedia.org/wiki/Crypt_(C) [3]-LDAP Admin - http://www.ldapadmin.org/

© 2019 PwC Türkiye. Tüm hakları saklıdır. Bu belgede PwC ifadesi, PwC ağını veya PwC ağının üyesi olan bağımsız ve farklı tüzel kişiliklerden oluşan

PwC Türkiye’yi ifade etmektedir. Daha detaylı bilgi için www.pwc.com/structure adresini ziyaret edebilirsiniz.

Bu içerik sadece genel bilgi verme amacı taşır ve profesyonel danışmanlardan alınacak hizmetin yerine geçmez.