Netbios Name Service Zehirlemesi (NBNS POISONING)

NBNS yani Netbios Name Service, netbios protokolününün netbios adlarına karşılık gelen IP adreslerini öğrenmekte kullanılan parçasıdır. Aslında DNS’in netbios karşılığıdır denilebilir. NBNS zehirlemesi yöntemiyle istemcilerin NBNS sorgularına sahte cevaplar vererek istemcileri ismin ait olduğu adres yerine arzu edilen başka bir adrese yönlendirmek mümkündür.



Bir windows bilgisayar, adres çözümlemesi yaparken cevap alana kadar sırasıyla şu yolları izler.
  • Yereldeki hosts dosyasına bakar. (WindowsSystem32etchosts)
  • Yerel DNS önbelleğine bakar. (ipconfig /displaydns)
  • DNS isteği gönderir.
  • NBNS isteği gönderir.


MALWARELAB isimli bir domaine kayıtlı Windows 7 bilgisayarda tarayıcının(IE) adres çubuğuna yerel.bga yazıldığında ağ trafiğinde ilgili NBNS isteği görülebilir.



Hedef adres(Dst) bölümünden de anlaşıldığı üzere bu broadcast bir istektir. Yani yerel ağdaki her bilgisayar bu isteği görebilir. Her bilgisayarın bu isteği görebilmesi, bir bakıma her bilgisayarın bu isteğe cevap verebilmesi anlamına da gelir. Yapılan istekle aynı Transaction ID’ye sahip bir cevap göndermek bunun için yeterli olacaktır. Fakat gerçek cevabın da gönderildiği durumların değerlendirilmesi de gerekebilir. Örneğin bir MITM durumunda veya yerel ağda isme karşılık gelen bir IP olmadığında(tarayıcının adres çubuğuna yazılan arama kelimesi, yanlış yazılmış intranette bir domain, hedefin offline olması gibi) orjinal cevap sorun olmazken, gerçekten isme karşılık gelen bir IP olduğunda istemciye önce ulaşan cevap kabul edilecektir.



Sahte NBNS cevapları gönderme işlemi NBNSpoof aracı(http://www.mcgrewsecurity.com/tools-files/nbnspoof/nbnspoof.py)  kullanılarak veya nbns_response adlı Metasploit modülü kullanılarak gerçekleştirilebilir.



NBNS zehirlemesi ile istemciler hemen her çeşit zararlı işlev gören sunucuya yönlendirilebilecekleri gibi(sahte sistemler, exploit kit yerleşik sistemler vb.) sahte netbios servislerine de yönlendirilebilirler. Örneğin yazının başında bahsedilen Windows 7 makinaya giriş yapmış kullanıcının parola özetini(NTLMv2) çalma senaryosu şöyle gerçekleştirilebilir.



İlk olarak windows makinanın login olmaya çalışabileceği SMB ve NTLM over HTTP gibi sahte servisler başlatılır.  Bu aşamada Metasploit’in ilgili modülleri kullanılabilir.



Modül: auxiliary/server/capture/smb
Örnek ayarlar:
CAINPWFILE cain için hash dosyası
CHALLENGE   1122334455667788
JOHNPWFILE  /root/Desktop/smbhash john için hash dosyası
SRVHOST 10.10.10.1 sunucu adresi
SRVPORT 445 sunucu portu
SSL      false
SSLCert
SSLVersion  SSL3



Gelişmiş ayarlar:
DOMAIN_NAME MALWARELAB
NTLM_UseNTLM2_session true



Modül: auxiliary/server/capture/http_ntlm
Örnek ayarlar:
CAINPWFILE cain için hash dosyası
CHALLENGE   1122334455667788
JOHNPWFILE  /root/Desktop/httphash john için hash dosyası
SRVHOST 10.10.10.1 sunucu adresi
SRVPORT 80 sunucu portu
SSL      false
SSLCert
SSLVersion  SSL3
URIPATH / ana dizini



Gelişmiş ayarlar:
DOMAIN MALWARELAB

NBNS zehirlemesi için ise nbns_response modülü şu şekilde ayarlanabilir.



Modül: auxiliary/spoof/nbns/nbns_response
Örnek ayarlar:
INTERFACE  vmnet2 isteklerin dinlenip cevaplanacağı ethernet arayüzü
REGEX   .*            hangi isteklerin cevaplanacağını gösteren regex. Tamamı = .*
SPOOFIP 10.10.10.1 cevapların göstereceği adres
TIMEOUT 500

Saldırı başladıktan sonra win7 kullanıcısı DNS önbelliğinde olmayan bir netbios adına ulaşmak istediğinde (dosya paylaşımı, intranette çalışan bir web uygulaması veya yazının başında verilen diğer örnek durumlar) nbns_response modülü sahte cevaplarla istemciyi hazırlanan sahte servislere yönlendirir. İstemci bu sahte servislere login olmaya çalıştığında ise parola özeti modül ayarlarında seçilen formatta kaydedilir.



Elde edilen parola özetleri (lm, ntlm, ntlmv2) john, cain gibi araçlarla kırılmaya çalışılabileceği gibi, duruma göre pass the hash yöntemiyle doğrudan istemciyi ve hatta domainde yetkili bir kullanıcıysa domaindeki diğer makinaları ele geçirmek için kullanılabilir.  Bunlara ek olarak kurbanın web tarayıcısının sahte servise bağlanırken intranet güvenlik ayarlarını(yani düşük seviye) kullanacağı düşünülürse, normalde mümkün olmayacak başka saldırılar da mümkün olabilir.



Kaynaklar:
http://www.mcgrewsecurity.com/tools/nbnspoof/

http://www.packetstan.com/2011/03/nbns-spoofing-on-your-way-to-world.html

Onur ALANBEL onur.alanbel@bga.com.tr