Yerel Ağlarda Port 139 ve Saldırı Yöntemi
Port 139 nedir ve neler yapar ?
Port 139; Netbios-ssn servisi için Netbios-session oluşturma ve iletme işlemlerini gerçekleştirir. Netbios ise OSI referans modelinde Session ve Transport katmanlarında çalışan bir API’dir. Netbios networkte bulunan iki cihaz arasında bir oturum başlatmak, bir oturumu sonlandırmak, verilerin doğru cihaza ulaşmasını kontrol etmek ve bilgisayar adlarının networkte çözümlenmesini sağlamakla görevlidir. Tüm bu işlemler port 139 baz alınarak yapılmaktadır. (Ayrıca bknz. http://www.scribd.com/doc/58525278/54/NetBT-Nedir S:47,48,49) Örneğin bir networkte dosya paylaşımı ve dosyaya erişim kontrolleri Netbios-ssn tarafından gerçekleştirilir. Hal böyle olunca, bir çok virüs ve exploit temel olarak Netbios-ssn (Port 139)’i hedef alır.
Saldırı mantığı:
Yerel ağda bulunan bir saldırgan, hedef bilgisayarda bulunan Windows kullanıcı kimliklerini (SID) bulabilir, hedef bilgisayarın Windows kullanıcı kimliğinden kullanıcı adını bulabilir, hedef bilgisayarda oturum oluşturabilir ve hedef sistemdeki parola korumalı dizinlere bruteforce (deneme-yanılma) saldırısı düzenleyerek parolayı kırabilir.
Önbilgi:
SID: Bir kullanıcı, bilgisayar yada security group oluşturulduğunda atanan eşsiz değere SID (Security identifier) denir.
RID: SID güvenliğinin bir parçası olarak account ve group’ların domain içersinde eşsiz olmasını sağlar.
Örneğin;
DOMAINNAME\ADMINISTRATOR
S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4)
DOMAINNAME\GUEST
S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5)
DOMAINNAME\GUEST Her bir kullanıcı için bir SID ve RID kaydı mevcuttur. Yukarıdaki örnekte Administrator ve Guest için örnek SID ve RID kayıtları bulunmaktadır. Microsoft’un SID ve RID mantığını inceleyecek olursak, S-1-5 standart önektir. 21-917267712-1342860078-1792151419, Domain ve ya local grouplar için benzersiz bir kimlik(ID)tir. Son kısımda bulunan 500 ve 501 ID leri ise kullanıcı hesabını tanımlayan benzersiz numaralardır.
Gereli programlar:
Nmap (Zenmap)
User2sid
NAT (NetBIOS Auditing Tool)
Keşif:
Her bir kullanıcı için bir SID ve RID kaydı mevcuttur. Yukarıdaki örnekte Administrator ve Guest için örnek SID ve RID kayıtları bulunmaktadır. Microsoft’un SID ve RID mantığını inceleyecek olursak, S-1-5 standart önektir. 21-917267712-1342860078-1792151419, Domain ve ya local grouplar için benzersiz bir kimlik(ID)tir. Son kısımda bulunan 500 ve 501 ID leri ise kullanıcı hesabını tanımlayan benzersiz numaralardır.
Port 139’un aktif açık olup olmadığını öğrenmek üzere Nmap (Zenmap) yardımcı aracını kullanacağız.
Nmap (Zenmap) kullanımı hakkında bilgi edinmek için aşağıdaki makalelere göz atabilirsiniz.
http://www.eyupcelik.com.tr/ceh/nmap-ile-network-teki-mac-adreslerini-ogrenme
http://www.eyupcelik.com.tr/ceh/kurumsal-aglarda-stuxnet-virusunu-tespit-etme
http://www.eyupcelik.com.tr/ceh/samurai-framework-ile-hacking-1
Zenmap yardımcı aracını çalıştırıp Target kısmına hedef bilgisayarın ip adresini yazın. Profile kısmından Intense Scan’i seçin. Ardından Scan diyerek hedef bilgisayar üzerinde bir tarama gerçekleştirip, Port 139’un açık olup olmadığını kontrol edelim.
Tarama sonucu Resim-01’deki gibi olmalıdır. Port 139/tcp portunun open (açık) olduğunu görmemiz gerekir. Ayrıca Zenmap’in Ports / Hosts menüsünü açarak da port durumunu kontrol edebilirsiniz.
Ports / Hosts menüsünde Port 139’un sol tarafında yeşil işaret ve State kısmında open olması gerekmektedir. Eğer kırmızı ve State kısmı Filtred ise, hedef bilgisayarda bir güvenlik duvarı yazılımı olduğunu ve port 139’u filtrelemiş olduğunu anlayabilirsiniz.
Saldırı:
USER2SID ve NAT programlarını indirip, C diskinize ayrı ayrı klasör şeklinde atın. Ardından Başlat\Çalıştır’a CMD yazıp komut ekranını açın. Cd\ komutu ile C:\> ekranına geçin. Daha sonra cd USER2SID komutu ile C diskte bulunan USER2SID klasörüne giriş yapıyoruz. Bu işlemi yaptıktan sonra hedef bilgisayarda boş bir Netbios Session(Oturum)’ı aşağıdaki komutlarla oluşturuyoruz.
Resim-03’teki gibi Net use \\192.168.2.50 \ipc$ “” /u:”” komutu ile hedef bilgisayarda boş bir session oluşturuyoruz. Ardından Başlat\Çalıştır’a \\192.168.2.50 ipadresini yazıp gitmeyi deniyoruz.
192.168.2.50 ip adresine gitmeye çalıştığımızda Resim-04’teki gibi bir kullanıcı adı ve şifre isteyecektir. Bundan sonraki aşamamız ise bu bilgisayarın SID-RID ID’lerini ele geçirmek olacaktır. Bunun için komut ekranımıza geri dönüyoruz.
Resim05’teki gibi user2sid \\192.168.2.50 guest komutu ile, hedef bilgisayarın guest kullanıcısına ait SID-RID bilgilerini aldık. Guest kullanıcısı yerine bir başka kullanıcınında SID-RID bilgilerini alabiliriz.
Eyup kullanıcısı için SID-RID bilgileri Resim-06’daki gibidir.
Daha sonra komut ekranına geri dönüyoruz. CD\ komutu ile C:\> ekranına geliyoruz. Cd NAT komutu ile C diskte bulunan NAT klasörüne geçiş yapıyoruz. Nat –u isim.txt –p sifre.txt 192.168.2.50 komutuyla nat’ı çalıştırıyoruz. –u kullanıcı isimlerinin bulunduğu text dosyasını belirtir. –p komutu denenecek sifrelerin bulunduğu text dosyasını belirtir. Son kısımda ise denemelerin yapılacağı hedef ip adresini belirtiyoruz.
Şifre çözüldüğünde Resim-08’deki gibi bir ekran ile karşılaşacağız. Alt kısımda CONNECTED: kısmı şifrenin çözüldüğü belirtir. Username: ‘eyup’ Password: ‘aaaa’ ise hedef bilgisayara eyup kullanıcı adı ve aaaa şifresi ile giriş yapılabileceğini belirtir.
Not: Bu testler Windows XP Service Pack 2 ve önceki sürümleri, Windows Server 2003 Service Pack 2 ve önceki sürümlerinde çalışmaktadır.
Güvenlik:
Bu tarz saldırılara maruz kalmamak için Başlat\Çalıştır’a firewall.cpl yazıp, Tamam’ı tıklayın. Güvenlik duvarının açık olduğuna dikkat edin. Daha sonra Özel Durumlar sekmesini tıklayın. Program ve Hizmetler kısmından Dosya ve yazıcı paylaşımı’nı seçip Düzenle’yi tıklayın.
Resim-09’daki gibi TCP 139’u pasif olarak işaretleyin. Ardından tüm ekranlardan Tamam’ı tıklayarak çıkın.
Referanslar:
http://www.cotse.com/tools/netbios.htm
http://www.securityfocus.com/tools/543
http://support.microsoft.com/kb/163846/tr
http://www.mshowto.org/active-directory-kaynaklari-nelerdir-ve-erisim-nasil-saglanir-bolum-1.html