10 yılı aşkın süredir açık kaynak kodlu geliştirilen Nmap’e özellikle son birkaç yıldır güvenlik uzmanlarının işlerini kolaylaştıran özellikler ekleniyor. Yine yoğun olarak eğitim notlarını güncellerken aslında Nmap’in birçok özelliğini eksik bıraktığımı farkettim. Nmap notlarım iki senedir felan güncellenmediği için gözüme bayat geliyordu.
Bu aralar işimin de tamamen güvenlik testlerine kayması ile birlikte bol zaman bulabiliyorum. Eğitim notları hazırlarken buraya da ufak tefek eklemeler yapıyorum.
İşte nmap’in az bilinen fakat çok işe yarayan özelliklerinden birkaçı.
En sık kullanılan portlar üzerinde tarama
Port taramalarında en büyük sorunlardan biri hangi portların taramaya dahil edileceğidir. Bilindiği üzere TCP ve UDP protokollerinin her biri 65535 port olasılığı var. Taramalarda tüm bu portları taramaya dahil edecek olursak tarama zamanı oldukça uzayacaktır. Dahil edilmezse de arada açık olup fakat bizim taramadığımız portlar olabilir. Bu sıkıntıyı aşmak için Nmap yazarı Fyodor geçen sene internet üzerinde yaptığı uzun araştırmalar sonucu internete açık portların belli oranını çıkartmış. Bu araştırma ile top 10, top 100, top 1000 gibi portları taratmak mümkün hale gelmiştir.
Taramanın sonuçlarına göre internette en fazla bulunan açık portlar şu şekildedir.
TCP
1. 80
2. 23
3. 22
4. 443
5. 3389
6. 445
7. 139
8. 21
9. 135
10. 25
UDP
1. 137
2. 161
3. 1434
4. 123
5. 138
6. 445
7. 135
8. 67
9. 139
10. 53
Taramalarda bu özelliği kullanmak için –top-ports 10 ya da –top-ports 1000 parametreleri kullanılabilir.
C:\Documents and Settings\elmasekeri>nmap 192.168.2.1 –top-ports 10
Starting Nmap 4.76 ( http://nmap.org ) at 2009-01-17 15:23 GTB Standard Time
Interesting ports on RT (192.168.2.1):
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp closed smtp
80/tcp open http
110/tcp closed pop3
139/tcp closed netbios-ssn
443/tcp closed https
445/tcp closed microsoft-ds
3389/tcp closed ms-term-serv
MAC Address: 00:1A:2A:A7:22:5C (Arcadyan Technology)Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds
Tarama sonuçlarının sebepleri
Nmap taraması yaparken bir porta ait open|closed|Filtered gibi sonuçlar alırız. Bu sonuçların neden olduğunu konusunda detay bilgi için –reason parametresi kullanılabilir. Böylece açık olan portun neden açık olduğu, kapalı olan portun neden kapalı olduğu konusunda bilgimiz olur.
UDP taramalar için –reason kullanımı
# nmap -sU -p 52,53 192.168.2.1 –reason
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:35 GMT
Interesting ports on RT (192.168.2.1):
PORT STATE SERVICE REASON
52/udp closed xns-time port-unreach
53/udp open domain udp-response
MAC Address: 00:1A:2A:A7:22:5C (Arcadyan Technology)
TCP taramalar için –reason kullanımı
# nmap -n -p 80,3389 -sS 192.168.2.1 –reason
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:36 GMT
Interesting ports on 192.168.2.1:
PORT STATE SERVICE REASON
80/tcp open http syn-ack
3389/tcp closed ms-term-serv reset
MAC Address: 00:1A:2A:A7:22:5C (Arcadyan Technology)Nmap done: 1 IP address (1 host up) scanned in 0.170 seconds
Bu çıktılar tatmin etmediyse daha detaylı çıktı almak için paket_trace özelliği ve -v parametresi kullanılabilir.
Taramalarda detay çıktı alma(nmap -v)
# nmap -n -p 80,3389 -sS 192.168.2.1 -vv
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:37 GMT
Initiating ARP Ping Scan at 13:37
Scanning 192.168.2.1 [1 port]
Completed ARP Ping Scan at 13:37, 0.01s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 13:37
Scanning 192.168.2.1 [2 ports]
Discovered open port 80/tcp on 192.168.2.1
Completed SYN Stealth Scan at 13:37, 0.01s elapsed (2 total ports)
Host 192.168.2.1 appears to be up … good.
Interesting ports on 192.168.2.1:
PORT STATE SERVICE
80/tcp open http
3389/tcp closed ms-term-serv
MAC Address: 00:1A:2A:A7:22:5C (Arcadyan Technology)Read data files from: /usr/local/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.176 seconds
Raw packets sent: 3 (130B) | Rcvd: 3 (134B)
-v kullanmadan yapılan tarama
home-labs scripts # nmap -n -p 80,3389 -sS 192.168.2.1
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:37 GMT
Interesting ports on 192.168.2.1:
PORT STATE SERVICE
80/tcp open http
3389/tcp closed ms-term-serv
MAC Address: 00:1A:2A:A7:22:5C (Arcadyan Technology)Nmap done: 1 IP address (1 host up) scanned in 0.169 seconds
-v parametresinin yeterli olmadığı durumlarda -d[seviye] parametresi ile oldukça detaylı çıktılar alınabilir. Özellikle sonuçlarından şüphelendiğiniz ve sebebini bulamadığınız taramalarda oldukça yardımcı olacaktır.
home-labs scripts # nmap localhost -p 22 -d9
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:48 GMT
Fetchfile found /usr/local/share/nmap/nmap-services
The max # of sockets we are using is: 0
————— Timing report —————
hostgroups: min 1, max 100000
rtt-timeouts: init 1000, min 100, max 10000
max-scan-delay: TCP 1000, UDP 1000
parallelism: min 0, max 0
max-retries: 10, host-timeout: 0
———————————————
mass_rdns: Using DNS server 192.168.2.1
Initiating SYN Stealth Scan at 13:48
Scanning localhost (127.0.0.1) [1 port]
Pcap filter: dst host 127.0.0.1 and (icmp or (tcp and (src host 127.0.0.1)))
Packet capture filter (device lo): dst host 127.0.0.1 and (icmp or (tcp and (src host 127.0.0.1)))
SENT (0.0370s) TCP 127.0.0.1:55455 > 127.0.0.1:22 S ttl=40 id=42642 iplen=44 seq=2252809853 win=1024 <mss 1460>
**TIMING STATS** (0.0370s): IP, probes active/freshportsleft/retry_stack/outstanding/retranwait/onbench, cwnd/ccthresh/delay, timeout/srtt/rttvar/
Groupstats (1/1 incomplete): 1/*/*/*/*/* 10.00/75/* 1000000/-1/-1
127.0.0.1: 1/0/0/1/0/0 10.00/75/0 1000000/-1/-1
RCVD (0.0380s) TCP 127.0.0.1:55455 > 127.0.0.1:22 S ttl=40 id=42642 iplen=44 seq=2252809853 win=1024 <mss 1460>
Found 127.0.0.1 in incomplete hosts list.
RCVD (0.0380s) TCP 127.0.0.1:22 > 127.0.0.1:55455 SA ttl=64 id=0 iplen=44 seq=644236104 win=32792 ack=2252809854 <mss 16396>
Found 127.0.0.1 in incomplete hosts list.
Discovered open port 22/tcp on 127.0.0.1
Changing ping technique for 127.0.0.1 to TCP
Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 1352 ==> srtt: 1352 rttvar: 5000 to: 100000
Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 1352 ==> srtt: 1352 rttvar: 5000 to: 100000
Moving 127.0.0.1 to completed hosts list with 0 outstanding probes.
Completed SYN Stealth Scan at 13:48, 0.02s elapsed (1 total ports)
pcap stats: 6 packets received by filter, 0 dropped by kernel.
Host localhost (127.0.0.1) appears to be up … good.
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack
Final times for host: srtt: 1352 rttvar: 5000 to: 100000Read from /usr/local/share/nmap: nmap-services.
Nmap done: 1 IP address (1 host up) scanned in 0.049 seconds
Raw packets sent: 1 (44B) | Rcvd: 2 (88B)
-flist
Bu parametre ile Nmap sistemde gördüğü arabirimleri ve yönlendirme tanımlarını gösterir.
home-labs scripts # nmap -iflist
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:50 GMT
************************INTERFACES************************
DEV (SHORT) IP/MASK TYPE UP MAC
lo (lo) 127.0.0.1/8 loopback up
eth0 (eth0) 192.168.2.22/24 ethernet up 00:0C:29:29:96:05
eth1 (eth1) 100.100.100.2/8 ethernet up 00:0C:29:29:96:0F**************************ROUTES**************************
DST/MASK DEV GATEWAY
192.168.2.0/0 eth0
100.0.0.0/0 eth1
127.0.0.0/0 lo
0.0.0.0/0 eth0 192.168.2.1
0.0.0.0/0 eth1 100.100.100.1
–packet_trace ile tarama için tüm adımların takibi
Nmap tarama yaparken gönderdiği ve aldığı tüm paketleri görmek isterseniz –packet_trace parametresini kullanabilirsiniz. Arada başka bir cihaz yüzünden taramalarınız sağlıklı sonuçlar vermiyorsa bu çıktılarda görülecektir.
home-labs scripts # nmap -p 80,3389 -sS 192.168.2.1 –packet_trace
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:38 GMT
SENT (0.0340s) ARP who-has 192.168.2.1 tell 192.168.2.22
RCVD (0.0350s) ARP reply 192.168.2.1 is-at 00:1A:2A:A7:22:5C
NSOCK (0.0460s) msevent_new (IOD #1) (EID #8)
NSOCK (0.0460s) UDP connection requested to 192.168.2.1:53 (IOD #1) EID 8
NSOCK (0.0460s) msevent_new (IOD #1) (EID #18)
NSOCK (0.0460s) Read request from IOD #1 [192.168.2.1:53] (timeout: -1ms) EID 18
NSOCK (0.0460s) msevent_new (IOD #1) (EID #27)
NSOCK (0.0460s) Write request for 42 bytes to IOD #1 EID 27 [192.168.2.1:53]: ………….1.2.168.192.in-addr.arpa…..
NSOCK (0.0470s) nsock_loop() started (timeout=500ms). 3 events pending
NSOCK (0.0470s) wait_for_events
NSOCK (0.0470s) Callback: CONNECT SUCCESS for EID 8 [192.168.2.1:53]
NSOCK (0.0470s) msevent_delete (IOD #1) (EID #8)
NSOCK (0.0470s) Callback: WRITE SUCCESS for EID 27 [192.168.2.1:53]
NSOCK (0.0470s) msevent_delete (IOD #1) (EID #27)
NSOCK (0.0480s) wait_for_events
NSOCK (0.0520s) Callback: READ SUCCESS for EID 18 [192.168.2.1:53] (58 bytes): ………….1.2.168.192.in-addr.arpa………….’….RT.
NSOCK (0.0520s) msevent_new (IOD #1) (EID #34)
NSOCK (0.0520s) Read request from IOD #1 [192.168.2.1:53] (timeout: -1ms) EID 34
NSOCK (0.0520s) msevent_delete (IOD #1) (EID #34)
NSOCK (0.0520s) msevent_delete (IOD #1) (EID #18)
SENT (0.0650s) TCP 192.168.2.22:37890 > 192.168.2.1:80 S ttl=40 id=12041 iplen=44 seq=1831862001 win=1024 <mss 1460>
SENT (0.0660s) TCP 192.168.2.22:37890 > 192.168.2.1:3389 S ttl=39 id=63913 iplen=44 seq=1831862001 win=4096 <mss 1460>
RCVD (0.0660s) TCP 192.168.2.1:80 > 192.168.2.22:37890 SA ttl=64 id=0 iplen=44 seq=303354857 win=5840 ack=1831862002 <mss 1460>
RCVD (0.0670s) TCP 192.168.2.1:3389 > 192.168.2.22:37890 RA ttl=255 id=0 iplen=40 seq=0 win=0 ack=1831862002
Interesting ports on RT (192.168.2.1):
PORT STATE SERVICE
80/tcp open http
3389/tcp closed ms-term-serv
MAC Address: 00:1A:2A:A7:22:5C (Arcadyan Technology)Nmap done: 1 IP address (1 host up) scanned in 0.182 seconds
Çıktıdan görüleceği üzere Nmap öncelikle hedef ip adresinin MAC adresini almak için arp istek paketi gönderiyor ve sonrasında -n parametresi kullanılmadığı için hedef
ip adresinin dns sorgulamasını yapmaya çalışıyor. Sonradan ilgili TCP portlarina SYN bayraklı paketler göndererek bunların cevabını alıyor ve taramayı bitiriyor.
Nmap ile Traceroute
Nmap bir port üzerinde TCP ya da UDP protokolünü kullanarak traceroute yapabilir.
# nmap -n -P0 –traceroute www.gezginler.net
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-17 13:43 GMT
Interesting ports on 208.43.98.30:
Not shown: 1700 closed ports
PORT STATE SERVICE
1/tcp open tcpmux
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
26/tcp open unknown
53/tcp open domain
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
143/tcp open imap
443/tcp open https
465/tcp open smtps
993/tcp open imaps
995/tcp open pop3s
1720/tcp filtered H.323/Q.931TRACEROUTE (using port 1/tcp)
HOP RTT ADDRESS
1 0.94 192.168.2.1
2 10.51 85.96.186.1
3 …
4 815.81 212.156.118.253
5 10.71 81.212.26.125
6 17.01 212.156.117.38
7 28.49 212.156.119.246
8 77.55 212.73.206.9
9 78.76 4.68.109.158
10 87.75 4.69.133.82
11 80.41 4.69.132.142
12 106.71 4.69.140.21
13 169.46 4.69.141.110
14 167.60 4.69.141.110
15 174.82 4.69.134.146
16 166.92 4.68.17.70
17 166.83 4.79.170.174
18 167.89 208.43.98.30Nmap done: 1 IP address (1 host up) scanned in 46.502 seconds
Nmap GUI-Zenmap
Uzun yıllar sonra Nmap hem yazarını hem de kullanıcıları memnun eden bir GUI’ye kavuştu. Google SOC kapsamında bir öğrencinin başlattığı proje(umit ) Zenmap adı ile resmi Nmap GUI’si olarak dağıtlııyor. Arabirimde birbirinden hoş özellikler var. Benim en çok işime yarayan özelliklerden birisi yapılan taramaların kaydedilmesi ve sonrasında aynı hedefe farklı zamanlarda yapılan taramaların karşılaştırılarak sonuç üretilmesi. Böylece X tarihinde Y hostuna yapılan tarama ile Z tarihinde Y hostuna yapılan tarama arasındaki fark görülebilir oluyor.
eski veya yeni nmap tutorialı varsa (blog yazarının yazdığı) urlsi paylaşılırsa zannediyorum blog okurları da bu değişiklikleri tutorial ardından ilave olarak da düşünebilir?
Public olarak dagitilan bir Nmap belgesi yok:).
ok bu arada yeni sloganın anlamını/esin kaynağını da merak etmedik değil doğrusu
Vakti zamaninda MSN uzerinden bir arkadasla yazisirken alakasiz bir konuda “Zorla Güzellik Olmaz ” demem gerekirken -yazışırken aynı zamanda Linux güvenliği ile ilgili birşeyler kurcaladığımdan- “Zorla Güvenlik Olmaz” cümlesi döküldü klavyemden. Benim de hoşuma gitti ve o gün bugündür kullanırım. Blog’daki degisiklikte 2009 yılına hazırlık amaçlı bir değişiklik:). 09 da en azından sloganı yeniledik deriz.
çokk güzel olmuş tşkler…