Active Directory Kullanıcılarını Numaralandırmak için LDAP Ping'i Kullanma
LDAP Nom Nom, Active Directory'de geçerli kullanıcı adlarını anonim olarak ve geride herhangi bir günlük girişi bırakmadan numaralandırmak için yakın zamanda keşfedilen bir kaba kuvvet tekniğidir. Normalde bilgisayarlar tarafından bir etki alanı denetleyicisinin canlı olup olmadığını kontrol etmek için kullanılan, Active Directory'de az bilinen bir mekanizma olan LDAP Ping'i kötüye kullanır.
Bu blog gönderisinde LDAP Ping'in nasıl çalıştığı ve saldırganların LDAP Nom Nom ile bunu nasıl kötüye kullanabileceği açıklanmaktadır.
LDAP pingini nasıl gönderirim?
LDAP ping'i göndermek için, Windows işletim sistemlerinde LDAP isteklerini yürütmek için yerleşik bir araç olan LDP.exe'yi kullanabiliriz.
1. Öncelikle bir etki alanı denetleyicisine bağlanmamız gerekiyor ancak kimlik doğrulaması yapmamamız gerekiyor: Bağlantı -> Bağlan…'a gidin, Sunucu kutusuna DC adınızı veya IP adresinizi girin ve Tamam 'ı tıklayın. .
2. Bir LDAP ping'i bir bayt yapısı döndürdüğü için, döndürülen değerleri standart dize çıktısı yerine ikili olarak ayrıştırmamız gerekir. Aşağıdaki ekran görüntüsünde gösterildiği gibi Seçenekler -> Genel'e gidin ve Değer Ayrıştırma'yı İkili olarak ayarlayın:
3. Şimdi bir kullanıcı hesabını aramak için filtre oluşturmamız gerekiyor. Bu örnekte, sAMAccountName adı BETHANY_WHITLEY olan bir kullanıcıyı arayacağız. Arama filtremizi oluşturmak için ihtiyacımız olan ayrıntılar şunlardır:
| Attribute | LDAP Filter | Note |
| NtVer | (NtVer=\06\00\00\00) | Taken from Microsoft’s LDAP Ping example |
| AAC | (AAC=\10\00\00\00) | The AAC filter to search for user accounts, determined by converting from the USER_ACCOUNT code of 0x00000010 using CyberChef |
| User | (User=BETHANY_WHITLEY) | The sAMAccountName to search for |
Bu, LDAP Ping arama filtremizin şöyle olacağı anlamına gelir:
(&(NtVer=\06\00\00\00)(AAC=\10\00\00\00)(User=BETHANY_WHITLEY))4. Şimdi aramayı yürütüyoruz: Arama iletişim kutusunu açın (Gözat -> Ara), aşağıda gösterildiği gibi doldurun ve data-rich-text-format-boundary="true"> seçeneğine tıklayın. Çalıştır.
5. Son olarak arama sonuçlarını kontrol etmemiz gerekiyor. Kullanıcı mevcutsa sonuçlar şöyle görünecektir:
Ancak mevcut olmayan bir hesabı aramış olsaydık (BETHS_NOT_HERE), sonuçlar şöyle görünecektir:
Gösterilen sayılar, onaltılı oldukları için Microsoft tarafından listelenen işlem kodlarından farklıdır. 19'luk bir onaltılık değer, ondalık sayı olarak 25'e eşdeğerdir; bu, bilinmeyen bir kullanıcıyı belirtir.
LDAP Nom Nom ile kullanıcı adı kontrolünü otomatikleştirme
Bir saldırgan, bir listedeki (SecLists'ten alınan bir liste gibi) her kullanıcı adı için LDAP ping isteklerini gönderme işlemini otomatikleştirmek ve bunun geçerli olup olmadığını kontrol etmek için LDAP Nom Nom'u kullanabilir. LDAP Nom Nom, tek bir sunucuya karşı saniyede 10.000'e kadar kullanıcı adının performansını sunar.
Bunu kendiniz çalıştırmak için aracı yükleyebilir ve bir kullanıcı adı listesi indirebilir veya kendinizinkini oluşturabilirsiniz. Ardından aracı aşağıdaki sözdizimini kullanarak çalıştırın
nomnom.exe –input <Path to username file> Bunu tespit etmek için ne yapabilirim?
LDAP Nom Nom, yerel günlük kaydı kullanılarak algılanamaz. Bunun yerine, ağ katmanından LDAP trafiğini izleyen bir çözüme veya LDAP Ping sorgularını algılayabilen ve bunları kaba kuvvet davranışı açısından analiz edebilen Netwrix StealthINTERCEPT veya Netwrix StealthDEFEND gibi bir çözüme ihtiyacınız vardır.
Örneğin, aşağıdaki Netwrix StealthINTERCEPT ekran görüntüsü bir kullanıcı (dowens) için bir sorgu göstermektedir; Döndürülen Nesneler=0 olduğundan kullanıcı mevcut değildir.
Çözüm
AD kullanıcılarını numaralandırmak isteyen saldırganların elinde birçok teknik bulunmaktadır. Ancak bu saldırıların çoğu, tehdit algılama çözümleri tarafından kolayca tespit edilir. LDAP Nom Nom'un henüz yaygın olarak kullanıldığının farkında olmasak da, çoğu algılama çözümünden kaçma yeteneği onu siber suçlular için çekici hale getirebilir, dolayısıyla kuruluşların buna hazırlıklı olması akıllıca olacaktır.






