Aktif Bilgi Toplama (NMAP)

Kaynaklar:
NMAP ile Ağ Keşfi - Murat Yokuş (Pusula Yayıncılık)
canyoupwn.me/tr-nmap-cheatsheet/
jlk.fjfi.cvut.cz/arch/manpages/man/extra/nmap/


Aktif Bilgi Toplama ?

  • Geçen hafta anlatımını yaptığım pasif bilgi toplama ile IP ve servis bilgileri gibi bir çok veriye, hedef sistem ile doÄŸrudan iliÅŸkiye girmeden, hali hazırda internet üzerinde bulunan açık kaynaklardan bilgi toplayarak eriÅŸmiÅŸtik.

  • Pasif bilgi toplama iÅŸleminden sonra aktif bilgi toplama adımı gelmektedir.

    Aktif bilgi toplama adımında hedef sistem ile doÄŸrudan iliÅŸkiye girilir. Hedef sistem ile kurulan bu iliÅŸki sonuncunda, hedefin log’ları incelendiÄŸinde bu durum fark edilebilir. En basitinden bir IP adresine yapılacak port taraması firewall log’larına düşecektir.


NMAP Nedir ?

  • Nmap, bir güvenlik tarayıcısıdır. Taranan ağın haritasını çıkartabilir ve aÄŸ makinalarında çalışan servislerin durumlarını, iÅŸletim sistemlerini tespit edebilir.

    Bu sistemlerin açık olan portlarını, çalışan fiziksel aygıt tiplerini, çalışma süresini, yazılımların hangi servisleri kullandığını, yazılımların sürüm numaralarını, sistemin firewall’a sahip olup olmadığını, aÄŸ kartının üreticisinin adı gibi bilgileri tespit edebilir.

  • AÄŸda aktif olan cihazların tespiti için yapılmış, bir NMAP taraması örneÄŸi:

    nmap-ping-taraması


NMAP ile Tarama İşlemleri

  • Tek bir hedef üzerinde tarama iÅŸlemi aÅŸağıdaki gibi hiç bir argüman kullanmadan yapılabilir.
    Varsayılan bir NMAP taraması en sık kullanılan 1000 TCP/IP portunu tarar.

  • Bu tarama örneÄŸi, metasploitable cihazı üzerinde gerçekleÅŸtirilmiÅŸtir. Görüldüğü gibi bir çok port cihaz üzerinde açıktır.

    Port: Protokol / Port numarası

    State: Port bilgisini verir.

        -> Açık
        -> Kapalı
        -> Filtreli
        -> Filtresiz

    Service: Port numarasına ait servis bilgisini verir.

    nmap-argumansiz-tarama


Çoklu Hedefler Üzerinde Tarama Yapmak

  • NMAP ile aynı anda birden fazla hedef üzerinde tarama iÅŸlemi gerçekleÅŸtirilebilir.

    Bunun için aÅŸağıdaki örnekteki bi hedef IP’ler ardı ardına yazılabilir

    nmap-coklu-tarama

  • Ya da aynı iÅŸlem aÅŸağıdaki komut ile de yapılabilir

    	nmap 10.0.2.16,17
    
  • Belirli IP aralıklarını taramak için ise aÅŸağıdaki komut kullanılabilir.

    Bu komut 10.0.2.1 ile 10.0.2.100 arasındaki IP’ler üzerinde tarama iÅŸlemi yapar.

    	nmap 10.0.2.1-100
    
  • Birden çok network/subnets taramak için de aralıklar kullanılabilir.

    Bu komut 10.0.1.* subnet’inden 10.0.100.* subnet’ine kadar, bu subnet’lerin tüm IP’lerini tarar.

    	nmap 10.0.1-100.*
    
  • Tarama sırasında aynı network içersinde bir çok cihaz olabilir. Bu cihazlardan bazılarını taramak istemez isek –exclude parametresi kullanılır.

    Örnek vermek gerekirse, aÅŸağıdaki tarama iÅŸleminde 10.0.2.0/24 ağında bulunan tüm cihazları taramasını ama locahost olan 10.0.2.14 IP’sını taramaması saÄŸlanır.

    nmap-exclude


Agresif Tarama Yapmak

  • -A parametresi, NMAP ile hedef üzerinde agresif tarama yapmayı saÄŸlar.
    Agresif tarama iÅŸlemi ile, NMAP’te en sık kullanılan parametrelerin bazıları otomatik olarak kullanılmış olur.

    Bunlar; İşletim Sistemi Tespiti, Versiyon Tespiti, Script taraması ve Traceroute’tur. (-O -sC –traceroute) "-A, to enable OS and version detection, script scanning, and traceroute"

    metasploitable cihazı üzerinde yapılan agresif tarama örneği:

    nmap–A nmap–A nmap–A nmap–A nmap–A


NMAP Parametreleri

  • Varsayılan tarama seçenekleri, güvenli sistemler üzerinde fazla etkili deÄŸildir. AÅŸağıdaki tabloda daha kapsamlı tarama ve keÅŸif yapmamızı saÄŸlayan parametreler gösterilmiÅŸtir.
    AçıklamaParametre
    ing Atma |-PN |
    adece Ping Tarama |-sP |
    CP syn ping |-PS |
    CP ack ping |-PA |
    DP ping |-PU |
    CTP init ping |-PY |
    CMP echo ping |-PE |
    CMP timestamp ping |-PP |
    CMP adress mask ping |-PM |
    P protocol ping |-PO |
    RP ping |-PR |
    raceroute |–traceroute* |
    everse dns çözümleme |-R* |
    everse dns çözümleme kapa |-n* |
    lternatif dns lookup |–system-dns* |
    anuel dns sunucu belirleme |–dns-servers* |
    ost listesi oluÅŸturma |–sL* |

-PN Parametresi ile Ping’siz Tarama

  • NMAP varsayılan oalrak, açık portları için bir sistemi taramaya baÅŸlamadan önce hedefin aktif olup olmadığını tespit etmek için ping atar. Bu parametre ile hedef üzerinden ping ile kontrol iÅŸlemi atlanarak eksiksiz bir bir port taraması yapılır.

    Bu parametre ping isteklerini engelleyen firewall’lara karşı etkili olmaktadır.

    	nmap -PN 10.0.2.17
    

-sP Parametresi ile Sadece Ping Tarama

  • Bu parametre ile hedef basit bir ping isteÄŸi gönderilerek aktif olup olmadığı tespit edilmeye çalışılır.

    nmap-ping-taraması

-PS Parametresi ile TCP syn ping

  • TCP syn ping, hedef sisteme bir syn paketi gönderir ve bir yanıt dönmesini dinler.

    Bu Alternatif keşif yönetimi, standart ICMP pinglerini engelleyen sistemlere karşılı işe yarayabilir.

    	nmap -PS [port1,port2,...,] [hedef]
    

-PA parametresi ile TCP ack ping

  • TCP ack ping, hdeften gelen bir yanır için varolmayan TCP baÄŸlantılarına yanıt vererek sistemi keÅŸfetmeye çalışır. Bu iÅŸlem 3’lü el sıkışma (3 way handshake) iÅŸlemi gibidir.

    Bu Alternatif keşif yönetimi, standart ICMP pinglerini engelleyen sistemlere karşılı işe yarayabilir.

    	nmap -PA [port1,port2,...,] [hedef]
    

-PU parametresi ile UDP ping

  • Hedeften yanıt almak için UDP paketleri gönderilir. ÇoÄŸu firewall bunu engellese de, bazı yapılandırma sistemleri yalnızca TCP baÄŸlantılarını filtrelemek için yapılandırıldıysa izin vermektedir.

    	nmap -PU [port1,port2,...,] [hedef]
    

GeliÅŸmiÅŸ tarama

  • NMAP varsayılan olarak temel bir TCP taraması yapmaktadır. Bazı durumlarda daha detaylı bilgi toplamak için ya da firewall’ı atlamak için daha farklı parametreler kullanmamız gerekebilir.
    Tarama TürüParametre
    CP syn scan |-sS |
    CP connect scan |-sT |
    DP scan |-sU |
    CP null scan |-sN |
    CP fin scan |-sF |
    MAS scan |-sX |
    TCP ack scan-sA
    Custom TCP scan–scanflags
    IP protocol scan–sO
    Ham internet paketleri gönderme–send-eth
    IP paketleri gönderme–send-ip

Port Tarama İşlemleri

  • NMAP varsayılan olarak en çok kullanılan 1000 portu tarama iÅŸlemi yapar. Bu portlar dışındaki portların taramasını yapmak için parametreler ile belirtmemiz gerekir.

    Toplam 131.070 TCP/IP portu vardır. (65.535 TCP + 65.535 UDP)

    AçıklamaParametre
    ızlı Tarama |-F |
    elirli Port Tarama |-p [port-numarasi] |
    °sim ile Port Tarama |-p [port-adi] |
    rotocol ile Port Tarama |-p T:[tcp-portu], U:[udp-portu]* |
    üm Portları taramak |-p-* |
    n fazla kullanılan Portları taramak |–top-ports sayi* |
    rdışık olarak Port tarama |-r* |

NMAP Script Engine (NSE)

  • NSE, kullanıcıların NMAP ile tarama iÅŸlevlerini gerçekleÅŸtirmek için özel komut dosyaları kullanmayı saÄŸlar. NSE, nadiren de olsa sistem duraklamaları ve veri kaybı gibi sonuçlara neden olabilecek agresif tarama teknikleri kullanır.

    Sadece kendinizin yazdığı script değil, hali hazırda içine *default olarak dahil edilmiş scriptlerde vardır.

    ÖzelliklerParametre
    ek Script çalıştırma |–script [script-adi]* |
    ‡oklu Script çalıştırma |–script [script-adi-1], [script-adi-2]* |
    ategoriye göre Script çalıştırma |–script [kategori-adi]* |
    ‡oklu kategoriye göre Script çalıştırma |*–script [kategori-adi-1], [kategori-adi-2]**|
    cript durum izleme |–script-trace* |
    cript Database Güncelleme |-script-updatedb* |

Tek Script Çalıştırma

  • whois-domain.nse script’i ile yapılan tarama örneÄŸi:

    nmap-nse-whois

Kategoriye göre Script Çalıştırma

  • Kategorileri daha detaylı incelemek için: nmap.org/nsedoc/

    KategoriKapsam ve İşlevi
    All* |üm NSE Script dosyalarını çalıştırır |
    Auth* |imlik DoÄŸrulama Script’leri |
    Default* |arsayılan Script Dosyalarını çalıştırır |
    Discovery* |edef hakkında detaylı keşif yapar |
    External* |ış kaynak ile iletişim kuran script (whois vs.) |
    Intrusive* |edef sisteme sızmaya çalışan Script dosyaları |
    Malware* |ackdoor ve Malware kontrol Script dosyaları |
    Safe* |asit Script dosyaları |
    Vuln* |efiyetleri kontrol eden script dosyları |
  • Malware kategorisinde bulunan scriptler ile tarama örneÄŸi:

    nmap-nse-malware nmap-nse-malware-2

Örnek Bir Backdoor Bulma Aşaması

  • NMAP ile versiyon taraması yaparız;

    nmap-ftp-backdoor

  • Çıkan sonuçlara uygun Scriptlere bakarız.

    ftp (vsftpd 2.3.4) için yapılan script taraması:

    nmap-ftp-backdoor

    Referance kısmında bunun için belirtilen exploit’i kullanmak için metasploit’i açıyoruz ve belirtilen aramayı yaptıktan sonra exploit’imizi seçiyoruz.

    msfconsole-ftp msfconsole-ftp msfconsole-ftp

Script Dosyaları Database Güncelleme

  • AÅŸağıdaki gibi güncelleme iÅŸlemi gerçekleÅŸtirilir.

    nmap-nse-update-db

Script Dosyalarının Konumu

  • Script dosyaları, linux sistemlerde, /usr/share/nmap/scripts/ altındadır.

    nmap-scripts-folder nmap-scripts-search


Güvenlik Duvarını Atlatmak

  • NMAP ile yapılan taramalar güvenlik duvarına takılır doÄŸru ya da hiç sonuç vermeyebilir. NMAP, bu savunmaları atlatmak için oluÅŸturulmuÅŸ birkaç özellik barındırmaktadır.
    ÖzellikParametre
    arçalanmış paketler |-f* |
    TU ayarı |–mtu* |
    ecoy kullanmak |-D* |
    dle Zombie tarama |-sI* |
    anuel kaynak port belirtmek |–source-port* |
    astgele veri ekleme |–data-length* |
    astgele hedef taramak |–randomize-hosts* |
    ac Adress Spoof |–spoof-mac* |
    ad Checksums gönderme |–badsum* |

Parçalanmış Paketler

  • -f paremetresi, hedefe gönderilen paketleri 8 byte’lık paketlere bölerek gönderme iÅŸlemini gerçekleÅŸtirir.

    Eski veya yanlış yapılandırılmış güvenlik duvarlarını atlatmaya çalışırken işe yarayabilir.

    	nmap -f [hedef]
    

MTU Ayarı

  • -mtu parametresi, özel MTU(Maximum Transmission Unit) deÄŸeri belirtmek için kullanılır.

    AÅŸağıdaki örnek -f parametresindeki gibi paketleri 8 byte’lık paketler kullanır.

    –mtu parametresinde [deÄŸer], 8 ve katı ÅŸeklinde olmalıdır.

    	nmap --mtu 8 [hedef]
    

Decoy Kullanımı

  • -D opsiyonu, bir veya deha fazla decoy kullanarak NMAP taramasını maskelemek için kullanılır.

    	nmap -D RND: [sayı] [hedef]
    

Idle Zombie Tarama

  • -sI parametresi, idle zombi tarması gerçekleÅŸtirmek için kullanılır.

    Idle Zombie taraması ile, boşta çalışan sistemlerden yararlanırız. Bu boşta çalışan sistem üzerinden, hedefteki sistemin taraması gerçekleştirirlir.

    	nmap -sI [zombie-sistem] [hedef]
    

Mac Adress Spoof

  • –spoof-mac parametresi, saldıran cihazın mac adresinin hedef sistem üzerinde log’lanmasına karşı deÄŸiÅŸtirmeyi saÄŸlar.

    	nmap --spoof-mac 0 [hedef]
    

    nmap-mac