Nmap

Bu konuyu okuyanlar

Efe Zoroğlu

Profesör
Nmap: network mapper. En yaygın bilinen şekliyle bilgisayarın açık olan portlarını, parmak izini, kullanılan servislerin isim ve versiyon numaralarını bulmaya yarar. Desteklenen platformlar ; FreeBSD, OpenBSD, NetBSD, Solaris, IRIX, MAC OS X, HP-UX, Sun OS, Amiga, Linux ve Microsoft Windows.



Nmap Neden Kullanırız?



Kendi ağımız ve ya uzaktaki bir ağda hangi makinaların göndereceğimiz isteklere yanıt verdiğini görmek için.
İstenen ağda veya bilgisayarda açık olan portları bulmak için.
İstenen ağda ve ya bilgisayarda iletim sistemi ve o ağda-bilgisayarda kullanılan servisler hakkında detaylı bilgi.
Gönderdiğimiz paketlere ağ veya bilgisayarların verdikleri cevaplar.






Nmap ile en basit arama işlemi “nmap ip” şeklindedir. Burda dikkat edilmesi gereken eğer root iseniz bu SYS scan şeklinde değilseniz Connect scan şeklinde çalışacaktır. İkisinin arasındaki fark hızdır. Connect scan Sys scan a oranla daha yavaştır.



nmap 192.168.2.1



Şeklinde port taramasını yapabiliriz. Şimdi çıktımızı inceleyelim.



mutasyon# nmap 192.168.2.1



Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-24 23:31 EET

Interesting ports on 192.168.2.1:

Not shown: 1675 closed ports

PORT STATE SERVICE

21/tcp open ftp

22/tcp open ssh

23/tcp open telnet

80/tcp open http

1050/tcp open java-or-OTGfileshare

MAC Address: 00:12:BF:37:14:B2 (Arcadyan Technology)



Nmap finished: 1 IP address (1 host up) scanned in 14.408 seconds



Görüldüğü gibi açık adresleri ve sonuç olarak MAC adresi ile üretici firmasını veriyor. Dikkat etmemiz gereken ise bu mac adresini ve üretici firmayı sadece LAN da çalışırken alabilirsiniz. Aynı zamanda bu scan işleminin nekadar zaman sürdüğünü belirtiyor.



Eğer daha detaylı çıktı istiyorsak



nmap –v 192.168.2.1



şeklinde arama yapmalıyız (-v verbose) hatta daha fazla bilgi almak isterseniz –vv parametresi ile taramalarınızı yapabilirsiniz. Şimdi TCP SYN Scan ve TCP Connect Scan`i görelim.





TCP SYN Scan ve TCP Connect Scan



Bunlardan önce TCP bayraklarından (flags) bahsedeyim.



SYN = Senkronize mesajı (Synchronize)

ACK = Alındı Mesajı (Acknowledgement)

RST = Bağlantı iptali(Reset)

FIN = Bitirme mesajı (Fnish)





TCP SYN Scan



Şimdide SYN Scan`in açık bir port üzerindeki hareketini gösterelim.



Birincibilgisayardan SYN gönderilir. ikinci bilgisayardan karşılığında SYN/ACK alınır ve birinci bilgisayardan RST gönderilir.



Nmap –sS 192.168.2.1



Not: SYN şeklindeki taramalarınızı ancak root olduğunuz zamanlar yapabilirsiniz.



$ nmap -sS 192.168.2.1

You requested a scan type which requires root privileges. Sorry dude.



TCP Connect Scan



Bu ise Unixden bildiğimiz connect() fonksiyonunu kullanarak açık olan TCP portlarını bulmaya çalışır. Hareketini gösterelim.



Birinci bilgisayardan SYN gönderilir, ikinci bilgisayardan karşılık olarak SYN/ACK gönderilir ve birinci bilgisayardan ACK gönderilir.



Nmap –sT 192.168.2.1



Şimdide SYN yada Connect Scan lerin kapalı porttaki hareketini bakalım. Birinci bilgisayardan SYN gönderilir, ikinci bilgisayardan karşılık olarak RST gelir ve biter.





UDP Port Scan



TCP port aramlarından bahsettik. Şimdide UDP portlarını kontrol edelim.



nmap –sU 192.168.2.1



Ben UDP portları yerine TCP portlarını tercih ediyorum. TCP/IP portları UDP ye göre daha hızlıdır.





Ping Scan



Bu ise portları taranacak bilgisayara ping yollayıp ordan gelen cevaba göre açık olup olmadığını söler. Dikkat edilmesi gereken şey ise karşı taraf ping e kapalı olabilir.



Nmap –sP 192.168.2.1



Birde bunun ping olmadan scan edeni var. Yani ping cevabına yanıt vermesede önemli değil. O ise,



Nmap –P0 192.168.2.1



Burada –P0 ( eksi, p, sıfır).





Servis Versiyonları



Tarama yaptığımız ağ veya bilgisayarda kullanılan servis versiyonlarını öğrenmek isteriz.



nmap –sV 192.168.2.1



mutasyon# nmap -sV 192.168.2.1



Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-25 00:13 EET

Interesting ports on localhost (192.168.2.1):

Not shown: 1674 closed ports

PORT STATE SERVICE VERSION

21/tcp open ftp ProFTPD 1.3.0

22/tcp open ssh OpenSSH 4.2p1 (FreeBSD 20050903; protocol 2.0)

80/tcp open http Apache httpd 2.2.0 ((FreeBSD) DAV/2 PHP/5.2.0 mod_ssl/2.2.0 OpenSSL/0.9.7e-p1)

110/tcp open pop3?

143/tcp open imap Courier Imapd (released 2005)

3306/tcp open mysql MySQL (unauthorized)

Service Info: OSs: Unix, FreeBSD



Görüldüğü gibi Kullanılan işletim sistemi ve üzerindeki açık vervislerin versiyonları çıktı.



Birde işletim sistemini belirlemek için



Nmap –O 192.168.2.1



kullanılır. Bu aslında TCP/IP fingerprint in çıktısıdır.



Nmap –A 192.168.2.1



Buda hem –O ve hemde –sV yi nin ortak halidir.







Bu port aramalarımız niye bukadar uzun sürüyor dediğinizi duyar gibiyim.



Bunun içinde bir parametre var.



nmap –F 192.168.2.1



-F fast port scan dir. Yani nmap-services dosyasındaki belirtilen portları arar sadece.



mutasyon# cat /usr/local/share/nmap/nmap-services | more

# Well known service port numbers -*- mode: fundamental; -*-

# From the Nmap security scanner ( http://www.insecure.org/nmap/ )

#

# $Id: nmap-services 3515 2006-06-19 04:01:16Z fyodor $

# For a HUGE list of services (including these and others),

# see http://www.graffiti.com/services

tcpmux 1/tcp # TCP Port Service Multiplexer [rfc-1078]

tcpmux 1/udp # TCP Port Service Multiplexer

compressnet 2/tcp # Management Utility

compressnet 2/udp # Management Utility

compressnet 3/tcp # Compression Process

compressnet 3/udp # Compression Process

rje 5/tcp # Remote Job Entry

rje 5/udp # Remote Job Entry

echo 7/tcp #

echo 7/udp #

discard 9/tcp # sink null

discard 9/udp # sink null

systat 11/tcp # Active Users

systat 11/udp # Active Users

...





-P Parametresi



nmap -p 1-1024 192.168.2.1 ilk 1024 portu tarar.



Buradaki –p aralıkları belirtir ve onun dışında « –p 10 » « -p 1-22,25,80 » şeklindede kullanabiliriz. Yani tek bir portu veya üç dört tane portu veya hem belli bir aralığa ve aynı aralıkla birlikte bir kaç portuda ilave edebiliriz.

mutasyon# nmap -p 10-60 192.168.2.1



Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-25 00:30 EET

Interesting ports on localhost (192.168.2.1):

Not shown: 49 closed ports

PORT STATE SERVICE

21/tcp open ftp

22/tcp open ssh



Nmap finished: 1 IP address (1 host up) scanned in 0.019 seconds





Belli bir network aralığını ise



Nmap 192.168.2.1-3 şeklinde tarayabilirsiniz. Bu 192.168.2.1, 192.168.2., 192.168.2.3 ipsine sahip makinalara bakacaktır.s



Bu parametreleri birliktede kullanabilirsiniz.







mutasyon# nmap -p 1-250 -O -sV 192.168.2.1-3



Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-25 00:40 EET

Interesting ports on 192.168.2.1:

Not shown: 246 closed ports

PORT STATE SERVICE VERSION

21/tcp open tcpwrapped

22/tcp open tcpwrapped

23/tcp open telnet BusyBox telnetd

80/tcp open http Mini_httpd 1.19

MAC Address: 00:12:BF:37:14:B2 (Arcadyan Technology)

Device type: general purpose

Running: Linux 2.4.X

OS details: Linux 2.4.6 - 2.4.26 or 2.6.9

Uptime 3.516 days (since Thu Dec 21 12:16:51 2006)

Service Info: Host: localhost



Interesting ports on localhost (192.168.2.2):

Not shown: 245 closed ports

PORT STATE SERVICE VERSION

21/tcp open ftp ProFTPD 1.3.0

22/tcp open ssh OpenSSH 4.2p1 (FreeBSD 20050903; protocol 2.0)

80/tcp open http Apache httpd 2.2.0 ((FreeBSD) DAV/2 PHP/5.2.0 mod_ssl/2.2.0 OpenSSL/0.9.7e-p1)

110/tcp open pop3?

143/tcp open imap Courier Imapd (released 2005)

No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).

TCP/IP fingerprint:

SInfo(V=4.11%P=i386-portbld-freebsd6.1%D=12/25%Tm=458F0266%O=21%C=1)

TSeq(Class=TR%IPID=I%TS=1000HZ)

T1(Resp=Y%DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=MNWNNT)

T2(Resp=N)

T3(Resp=Y%DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=MNWNNT)

T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)

T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)

T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)

T7(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=)

PU(Resp=Y%DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=0%ULEN=134%DAT=E)





Uptime 0.082 days (since Sun Dec 24 22:44:56 2006)

Service Info: OSs: Unix, FreeBSD



......





Hata buna benzer olarak



nmap 192.168.2.1/10

nmap -p 10 "192.168.2.*"

nmap –v www.site.com/10



Şeklindede bir ağı tarayabilirsiniz.





Nmap Çıktıları



-oN: Ekranda gözüken gibi dosyaya yazdırılırS



nmap –oN 192.168.2.1



-oG: Çıktıları birleştirerek yazar.

-oX: XML çıktısı olarak kaydeder.

-oA: Script kidyler hariç tüm logları oluşturur.





mutasyon# pwd

/usr/home/sijiero/nmapstudy



mutasyon# nmap -oA mynmaplog -p 10-100 192.168.2.1



Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-25 01:03 EET

Interesting ports on localhost (192.168.2.2):

Not shown: 88 closed ports

PORT STATE SERVICE

21/tcp open ftp

22/tcp open ssh

80/tcp open http



Nmap finished: 1 IP address (1 host up) scanned in 0.025 seconds

mutasyon# ls

mynmaplog.gnmap mynmaplog.nmap mynmaplog.xml

Not: mynmaplog.xml dosyasınıda web sunucuna koyup browserden bakmanızı tavsiye ederim.



Yukarıda paketlerin bayraklarından bahsetmiştik. Genel olmayıp fakat zaman zaman kullanılan farklı paketler için port arama yöntemleri var.





-sF : FIN paketleri için.

-sX : FIN paketleri ve URG, PSH bayrakları için.

-sN : Null scandir.



Peki bunca iş yapıyoruzda bu aramalarda arkada dönen nedir?

Yukarıda TCP SYN Scan ve TCP Connect Scan den bahsetmiş hatta hareketlerini incelemiştik. Şimdi bu hareketleri canlı olarak görelim.



En basit haliyle



nmap --packet_trace 192.168.2.1



Fakat ben bunları dosyaya yazmanızı tavsiye ederim. Takip edip okumak açısından.



nmap -oN cikti1 --packet_trace 192.168.2.1



Sonra cikti1 dosyasının içini inceleybilirsiniz.



Aynı şekilde “—version_trace” yi kullanabilirsiniz. Buda tahmin ettiğiniz gibi –sV nin detayıdır. Yani servislerin versiyonlarını gösteren trace...



Aramalarımızda hangi protokollerin (TCP, UDP, ICMP etc) açık olduğunuda merak edebiliriz. Nmap bunuda bize sunar.



nmap –sO 192.168.2.1



mutasyon# nmap -sO 192.168.2.1



Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-25 01:51 EET

Interesting protocols on localhost (192.168.2.1):

Not shown: 253 open|filtered protocols

PROTOCOL STATE SERVICE

1 open icmp

6 open tcp

17 open udp



Nmap finished: 1 IP address (1 host up) scanned in 9.308 seconds



Nmap ile port taraması yaparken istediğimiz ethernet üstünden aramalarımızı yapabiliriz.



mutasyon# nmap -P0 -e eth0 -S 192.168.2.2 www.google.com





Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-25 01:55 EET

Warning: Hostname www.google.com resolves to 3 IPs. Using 209.85.129.147.

Interesting ports on 209.85.129.147:

Not shown: 1676 filtered ports

PORT STATE SERVICE

80/tcp open http

113/tcp closed auth

179/tcp closed bgp

443/tcp open https



Nmap finished: 1 IP address (1 host up) scanned in 46.800 seconds



Burada –e bir ethernet arayuzunu belirteceğimi söylüyor. –S ise kaynak ip yi yani şuan o ethernet ile kullandığım ipyi belirtmeye yarıyor.



Şimdi birazda LAN dışında hatta LAN içinde bir çok bilgisayarın portlarını tararken harcayacağımız vakiti biraz düşürelim...



mutasyon# nmap -p 1-1024 192.168.2.1



Şeklinde bir nmap sorgusunda yaklaşık olarak 6,5 saniye zaman harcıyorum. Fakat –T parametresini kullanarak bu hız



mutasyon# nmap -T5 -p 1-1024 192.168.2.1



Nmap finished: 1 IP address (1 host up) scanned in 4.299 seconds



Gördüğünüz gibi arada bayağı bir zaman oynadı.. Yukarıdada bahsettiğimiz gibi nmap paket gönderip ordan dönen pakete göre açık olup olmadığına karar veriyor. Bu paket gönderim sırasında paketin cevabının gelmesi için belli bir süre bekliyor. Bizim yaptığımız ise bu süreyi azaltmak. Tabiki bu süreyi azaltmakla istediğimiz bilginin güvenirliliğinide azaltmış oluyoruz.



Bir kaç parametre daha ekleyelim;



--max_rtt_timeout : Kat edilen yol süresi

--initial_rtt_timeout : Kaç mili saniye ile başlayacağı



Bir örnek yapalım.



mutasyon# nmap -T5 --max_rtt_timeout 150 --initial_rtt_timeout 150 -p 80 www.tarananyer.com/24







Kaynak:
http://insecure.org/nmap/

 

SDN Son Haberler

Son mesajlar

Üst