12Şubat

Derinlemesine Nmap Kullanımı

Nmap, günümüzdeki en gelişmiş ağ tarama araçlarının başında gelir. Nmap, ağda bulunan cihazların IP adreslerini, cihaz bilgisini, açık portlarını, işletim sistemini, açık portlarda çalışan servisleri ve cihazlarda bulunan güvenlik açıklarını tespit etmek için kullanılır.

Herhangi bir kurum veya kuruluşa yönelik yapılan güvenlik testlerinde, sızma testi aşamalarından bilgi toplama, tarama ve listeleme aşamaları Nmap aracı ile yapılabilir. Öncelikle hedef ağ üzerinde bilgi toplama aşamasını gerçekleştirmek için hedef ağ taranır ve hedef ağ üzerinde çalışan cihazlar hakkında bilgi elde edilir. Çalışan cihazların IP adresleri, Hostname bilgileri bu bilgiler arasında yer alır.

Örnek 192.168.30.0/24 CIDR bilgisine sahip bir ağ üzerinde, Nmap aracı ile sızma testinin yaşam döngüsünde bulunan bilgi toplama, tarama ve listeleme aşamaları gerçekleştirilebilir.

Resim 1

Resim1’de, 192.168.30.0/24 IP aralığında hangi makinelerin açık olduğu tespit edildi. –sn parametresi, hedef makinelere herhangi bir port taraması yapmadan, makinelerin açık olup olmadığını kontrol etmek için kullanılır. Yapılan taramada 192.168.30.1 IP adresli fiziksel makine dışında 5 tane IP adresine sahip sistemin açık olduğu tespit edildi. 192.168.30.2 Gateway IP adresi, 192.168.30.254 Broadcast IP adresi ve 192.168.30.137 ise taramayı gerçekleştiren IP adresidir. 192.168.30.180 ve 192.168.30.184 IP adresleri açık olarak tespit edilen hedef makinelerdir. Makineler ARP Ping Scan Taraması sonucunda tespit edilmiştir. Bazı güvenlik duvarları, Ping taramasını engeller. Ping taramasını engelleyen güvenlik duvarlarını atlatmak için –Pn parametresi kullanılabilir.

Resim 2

Resim2’de 192.168.30.180 ve 192.168.30.184 IP adreslerine yönelik agresif modda (-A) ve full port taraması (-p-) yapılmıştır. 192.168.30.180 IP adresli makinede 80, 2121, 5985 numaralı portlar ve  bu portlar üzerinde çalışan servisler tespit edilmiştir. 2121. portta çalışan FTP servisine yönelik ftp-anon NSE script’i kullanılarak Anonymous kullanıcısının sistemde aktif olduğu tespit edilmiştir. Makinenin İşletim sistemi Microsoft Windows Server 2016 olarak işaretlenmiştir. 192.168.30.184 IP adresli makine Resim3’te gösterilmektedir.

Resim 3

Resim3’te 192.168.30.184 IP adresine yapılan tarama sonucunda 445 ve 5985 numaraları portların açık olduğu tespit edilmiştir. 445. portta çalışan microsoft-ds servisinin versiyon bilgisinde işletim sistemi bilgisi “Microsoft Server 2012 R2 Evaluation 9600” olarak tespit edilmiştir. Ayrıca agresif modda tarama yapıldığı için 445 numaralı portta çalışan SMB servisine yönelik bazı NSE script’leri kullanılmıştır. smb-os-discovery script’inin ürettiği çıktı içerisinde işletim sistemi bilgisi, bilgisayar adı, sistem zamanı bilgisi tespit edilmiştir. Smb-security-mode NSE script’i kullanılarak guest kullanıcısının hedef sistemde aktif olduğu belirtilmiştir. Sonuç olarak sisteme yönelik tarama ve bilgi toplama işlemleri Nmap aracı ile gerçekleştirilmiştir.

Bilgi toplama ve tarama işlemleri yapıldıktan sonra açık portlarda zafiyet olup olmadığını kontrol etmek için Nmap içerisinde bulunan script’ler kullanılabilir. Hedef sistemde zafiyet olup olmadığını kontrol eden bu script’ler vuln kategorisinde yer almaktadır. Resim4’te hedef sistemlere yönelik güvenlik açığı tespiti yapılmıştır.

Resim 4

Resim4’te 192.168.30.180 ve 192.168.30.184 IP adresine sahip makinelerin 80, 445, 2121 ve 5985 numaralı portlarına yönelik tarama yapıldı. Yapılan taramada vuln ve auth kategorisindeki script’ler kullanıldı. Vuln script’leri zafiyet tespiti için, auth script’leri ise kimlik doğrulama işlemleri için kullanıldı.

Resim4’te 192.168.30.180 IP adresinin 80. portunda HTTP servisi çalıştığı için http-csrf, http-dombased-xss, http-stored-xss script’leri kullanıldı. 192.168.30.184 IP adresli makinenin 445. portuna, smb-vuln-ms10-054, smb-vuln-ms10-061, smb-vuln-ms17-010 ve smb-vuln-regsvc-dos script’leri kullanıldı. Vuln script kategorisinde olan smb-vuln-ms17-010 script’i, hedef sistemde MS17-010 olarak adlandırılan uzaktan kod çalıştırma zafiyetini tespit eder. Oluşan script çıktısı içerisinde VULNERABLE sözcüğünün olması makinenin zafiyetli olduğunu gösterir.

Zafiyet tespitinde, –script parametresine, sadece script’lerin kategorileri değil, script’lerin isimleri ve uzantıları da atanabilir. Resim5’te, 192.168.30.184 IP adresli makinenin 445. portuna yönelik zafiyet tespiti yapılmıştır.

Resim 5

Resim5’te smb-vuln-* değerindeki yıldız (*) işareti, smb-vuln- sözcüğü ile başlayıp farklı sözcükle biten bütün script’lerin kullanılmasını sağlar. Aynı şekilde farklı portlara yönelik taramalarda script’lerin kullanımı özelleştirilebilir. Örneğin, “nmap -p80 –script=http-* 192.168.30.180” komutu kullanılabilir.

Ek olarak, hedef sistemde Windows güvenlik duvarının aktif veya pasif olduğu durumlarda, Nmap aracının üretmiş olduğu çıktıların nasıl olduğunu bilmek gerekir. Resim6’da, Nmap aracı ile gerçekleştirilen bir taramada güvenlik duvarının aktif ve pasif olduğu durumlardaki çıktısı gösterilmektedir.

Resim 6

Resim6’da “nmap 192.168.30.184” komutu kullanılarak yapılan varsayılan taramada, Windows güvenlik duvarı aktif iken, 445. port açık olarak tespit edilmiştir. 445. portun açık olarak tespit edilmesinin sebebi, güvenlik duvarında bulunan Inbound kurallarında 445. port üzerindeki trafiğe izin veren bir kuralın aktif edilmesidir. İkinci Nmap taramasında ise 445, 139, ve 135 numaralı portların açık olduğu tespit edilmiştir. Bu iki örnekle Windows güvenlik duvarının aktif ve pasif olduğu durumlarındaki farklılıklar görülebilir. Resim7’de ise, güvenlik duvarlarını atlatma tekniklerinden biri olan TCP ACK Scan yapılmıştır.Resim6’da “nmap 192.168.30.184” komutu kullanılarak yapılan varsayılan taramada, Windows güvenlik duvarı aktif iken, 445. port açık olarak tespit edilmiştir. 445. portun açık olarak tespit edilmesinin sebebi, güvenlik duvarında bulunan Inbound kurallarında 445. port üzerindeki trafiğe izin veren bir kuralın aktif edilmesidir. İkinci Nmap taramasında ise 445, 139, ve 135 numaralı portların açık olduğu tespit edilmiştir. Bu iki örnekle Windows güvenlik duvarının aktif ve pasif olduğu durumlarındaki farklılıklar görülebilir. Resim7’de ise, güvenlik duvarlarını atlatma tekniklerinden biri olan TCP ACK Scan yapılmıştır.

Resim 7

Resim7’de –sA parametresi kullanılarak TCP ACK Scan yapılmıştır. Resim7’de güvenlik duvarının pasif olduğu durumda varsayılan olarak belirtilen 1000 port unfiltered olarak işaretlenir. Güvenlik duvarının aktif olduğu durumda ise, belirtilen 1000 port filtered olarak işaretlenir.

TCP ACK Scan dışında, güvenlik duvarlarını atlatmak için kullanılan tekniklerden bir diğeri ise TCP Window Scan’dir. Resim8’de TCP Window Scan gösterilmektedir.

Resim 8

Resim8’de “nmap –sW 192.168.30.184” komutuyla TCP Window Scan yapılmıştır. Windows güvenlik duvarının aktif olduğu durumda 1000 port filtered olarak işaretlemiştir. Windows güvenlik duvarının pasif olduğu durumda ise, 1000 port closed olarak işaretlemiştir.

Windows güvenlik duvarının pasif olduğu durumda, TCP ACK Scan taramasında oluşan çıktıda 1000 port unfiltered olarak işaretlenirken, TCP Window Scan taramasında 1000 port closed olarak işaretlenir. Bu şekilde iki tarama tekniği karşılaştırılabilir. Son olarak Resim9’da fragmentation tekniği kullanılarak güvenlik duvarının aktif ve pasif olduğu durumlarda tarama yapılmıştır.

Resim 9

Fragmentation tekniği, gönderilen paketlerin parçalanarak gönderilmesini sağlayarak güvenlik duvarının paket içeriğini algılamasını zorlaştırır. Resim9’da Windows Güvenlik duvarının aktif olduğu durumda fragmentation tekniği ile yapılan taramada 445. portun açık olduğu tespit edilmiştir. Yukarıda bahsedilen örnekteki gibi burada da 445. portun açık olarak tespit edilmesinin sebebi, güvenlik duvarında bulunan Inbound kurallarında 445. port üzerindeki trafiğe izin veren bir kuralın aktif edilmesidir. Windows güvenlik duvarının pasif edilmesi durumunda ise, 445,139,135 numaralı portların açık olduğu tespit edilmiştir. Bu şekilde Windows güvenlik duvarının aktif ve pasif olduğu durumlarda Nmap aracının üretmiş olduğu çıktılardaki farklılıklar görülmektedir.