Nmap port skener
Obsah 1 Úvod................................................................................................................................4 1.1 lockdown..................................................................................................................4 1.2 Vaše ochrana............................................................................................................4 2 Nmap - první seznámení................................................................................................5 2.1 O projektu nmap......................................................................................................5 2.2 Manuálové stránky..................................................................................................5 2.3 Klasifikace přepínačů..............................................................................................5 2.4 Výstup do souboru (-oA, -oN, -oX, -oG)..................................................................6 2.5 Potlačení DNS překladu (-n)...................................................................................6 3 Host discovery - ping probes.........................................................................................6 3.1 Jak přeskočit host discovery (-Pn)..........................................................................6 3.2 Ping probes bez port skenu (-sn, -sP).....................................................................8 3.2.1 Zkoumání s volbou --packet-trace...................................................................8 3.3 Definujeme vlastní Ping probe...............................................................................9 3.4 List sken (-sL) – pasivní host discovery přes DNS................................................9 4 TCP port skeny.............................................................................................................10 4.1 Rozsahy portů........................................................................................................10 4.2 TCP SYN scan(-sS)................................................................................................11 4.3 TCP connect scan (-sT).........................................................................................12 5 Scénáře s firewallem....................................................................................................13 5.1 Mapujeme síť (--traceroute)..................................................................................13 5.1.1 Traceroute pod lupou....................................................................................15 5.1.2 Extra úkol.......................................................................................................15 5.2 Detekce stavového firewallu.................................................................................16 5.2.1 TCP ACK sken (-sA) - nestavový firewall......................................................16 5.2.1.1 Pod lupou ...............................................................................................17 5.2.2 TCP ACK sken (-sA) - stavový firewall..........................................................18 5.2.2.1 Ohodnocení stavu portu (--reason)........................................................18 5.3 TCP skeny FIN, XMAS, NULL a Maimon.............................................................19 5.3.1 TCP FIN sken (-sF)........................................................................................19 5.3.2 TCP Xmas sken (-sX)......................................................................................20 5.3.3 TCP NULL sken (-sN)....................................................................................21 5.3.4 TCP Maimon sken (-sM)................................................................................22 5.3.5 Vlastní TCP příznaky (--scanflags)................................................................23 5.3.6 TCP Window Size sken (-sW)........................................................................24 6 Pokročilé skenovací techniky.......................................................................................25
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
2
Nmap port skener
6.1 FTP bounce sken (-b)............................................................................................25 6.2 Idle sken (-sI).........................................................................................................26 6.2.1 Predikce hodnot id v IP paketech.................................................................26 6.2.2 Prostředník (zombie).....................................................................................26 6.2.3 Podvrh IP adres..............................................................................................27 7 UDP port sken...............................................................................................................29 7.1 Primitivní UDP sken (-sU).....................................................................................29 7.2 UDP sken s detekcí služeb (-sUV)........................................................................32 8 Detekce verzí služeb (-sV)............................................................................................33 8.1 Intenzita detekce (--version-intensity).................................................................34 8.2 Sledování dotazů (--version-trace).......................................................................35 8.3 Databáze dotazů pro detekci služeb....................................................................36 8.3.1 Definice dotazů - probes................................................................................36 8.3.2 TCP NULL......................................................................................................36 8.3.3 TCP GenericLines..........................................................................................37 8.3.4 TCP GetRequest.............................................................................................37 9 Detekce OS (-O)............................................................................................................38 9.1 OS detekce s port skenem....................................................................................38 9.2 Verbose mód (-v)....................................................................................................39 9.3 Všechny testy v jednom - přepínač (-A)...............................................................40 10 Nmap Scripting Engine (NSE)...................................................................................41 10.1 Nápověda ke skriptům........................................................................................41 10.2 Spuštění skriptu..................................................................................................42 11 Závěr...........................................................................................................................43 12 Příloha 1 – Nmap reference.......................................................................................44
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
3
Nmap port skener
1
Úvod
Vítejte v hackerlabu. Tento výukový materiál slouží studentům jako pracovní sešit, který využijete během kurzu jako referenční příručku.
1.1
lockdown
Působíme od roku 2013 pod značkou lockdown se zaměřením na penetrační testování a bezpečnost databází Oracle. Více informací naleznete na našem webu www.lockdown.cz. Přehled aktuálních hacking kurzů naleznete na www.hackerlab.cz.
1.2
Vaše ochrana
Získané znalosti z kurzu etického hackingu můžete aplikovat jen na systémech, které přímo vlastníte (případně s písemným souhlasem jejich vlastníka). I dobrý úmysl Vás může přivést do nepříjemné situace. Uvědomte si prosím, že každá komunikace vytváří na síti záznam a překonání i sebemenší obrany může být považováno za trestný čin. Hackerlab je bezpečné prostředí právě pro tyto experimenty.
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
4
Nmap port skener
2
Nmap - první seznámení
Pokuste se interpretovat výsledek následujícího výpisu. root@bt:~# nmap 192.168.0.1
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-13 22:51 CEST Nmap scan report for ns.hacker.lab (192.168.0.1) Host is up (0.024s latency). Not shown: 998 closed ports PORT
STATE SERVICE
22/tcp open
ssh
53/tcp open
domain
MAC Address: 00:50:B6:07:30:CF (Good WAY IND. CO.)
Nmap done: 1 IP address (1 host up) scanned in 1.20 seconds
2.1
O projektu nmap
Nmap je opensource projekt pod licencí GNU. Online dokumentaci najdete na webu http://nmap.org/docs.
2.2
Manuálové stránky
man nmap
2.3
Klasifikace přepínačů
Nmap má příliš mnoho voleb, pokusíme se v nich najít určitý řád. Můžete si zapamatovat, že počáteční písmeno popisuje akci. Je-li přepínač tvořen dvěma písmeny, pak druhé písmeno značí podtyp akce stejné kategorie. Například: •
-P* pro ping skeny (host discovery), následuje typ ping probe (-PS, -PA).
•
-s* pro skenovací techniky portů, následuje typ skenu (-sS, -sT, -sU)
•
-o* definuje formát výstupu (-oA, -oG, -oX)
•
-i* souvisí se vstupem nebo jeho pořadím (vstup je pro Nmap vždy cílové zařízení, tj. IP adresa nebo doménové jméno, které se následně přeloží na IP adresu za pomocí DNS serveru nebo jiné služby)
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
5
Nmap port skener
2.4
Výstup do souboru (-oA, -oN, -oX, -oG)
Prozkoumejte následující přepínače a obsah vygenerovaných souborů. -oN normální -oX XML -oS s|
Příklad volání nmap 192.168.0.1 -oA nazev-souboru
2.5
Potlačení DNS překladu (-n)
nmap 192.168.0.1 -n
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-15 23:46 CEST Nmap scan report for 192.168.0.1 Host is up (0.041s latency). Not shown: 998 closed ports PORT
STATE SERVICE
22/tcp open
ssh
53/tcp open
domain
MAC Address: 00:50:B6:07:30:CF (Good WAY IND. CO.)
Nmap done: 1 IP address (1 host up) scanned in 1.20 seconds
3
Host discovery - ping probes
Pod pojmem host discovery rozumíme nalezení aktivního zařízení na síti (resp. IP adresy). Pokusy, které vedou k odhalení takového zařízení, se označují jako ping probes. Cílem host discovery je odpověď, zda je zařízení •
online (host up)
•
offline (host down).
3.1
Jak přeskočit host discovery (-Pn)
Nmap bez dalších voleb provádí vždy nejdříve host discovery a pro aktivní IP adresy následně skenuje porty. Pokud selže host discovery, port sken se nespustí. Chceme-li toto chování potlačit a skenovat porty bez host discovery, použijeme přepínač -Pn.
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
6
Nmap port skener
nmap -sS 10.10.0.8 -p 22 -n -Pn --packet-trace
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-16 21:47 CEST SENT (0.0810s) TCP 192.168.0.14:44848 > 10.10.0.8:22 S ttl=53 id=22681 iplen=44
seq=1537361258
win=1024 <mss 1460> RCVD (0.0893s) TCP 10.10.0.8:22 > 192.168.0.14:44848 SA ttl=63 id=28 iplen=44
seq=2085193268
win=5840 <mss 1460> Nmap scan report for 10.10.0.8 Host is up (0.0084s latency). PORT
STATE SERVICE
22/tcp open
ssh
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
4.3
TCP connect scan (-sT)
nmap -sT 10.10.0.8
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-19 09:46 CEST Nmap scan report for 10.10.0.8 Host is up (0.086s latency). Not shown: 997 closed ports PORT
STATE SERVICE
22/tcp
open
ssh
111/tcp
open
rpcbind
6000/tcp open
X11
Nmap done: 1 IP address (1 host up) scanned in 14.08 seconds
Prozkoumáme sken podrobněji s volbou packet-trace. nmap -sT 10.10.0.8 -p 22 -n -Pn --packet-trace
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-19 09:50 CEST CONN (0.0594s) TCP localhost > 10.10.0.8:22 => Operation now in progress Nmap scan report for 10.10.0.8 Host is up (0.0040s latency). PORT
STATE SERVICE
22/tcp open
ssh
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
12
Nmap port skener
5.3.3
TCP NULL sken (-sN)
Všechny příznaky u TCP segmentu jsou vypnuty. nmap -sN 10.22.0.80
Starting Nmap 6.25 ( http://nmap.org ) at 2013-04-27 23:35 CEST Nmap scan report for webcenter.corp.org (10.22.0.80) Host is up (0.080s latency). All 1000 scanned ports on webcenter.corp.org (10.22.0.80) are open|filtered
Nmap done: 1 IP address (1 host up) scanned in 11.57 seconds
Vidíme dva odeslané TCP segmenty. nmap -sN 10.22.0.80 -p80 -n -Pn --packet-trace --reason
Starting Nmap 6.25 ( http://nmap.org ) at 2013-05-07 21:44 CEST SENT (0.0885s) TCP 192.168.0.14:36479 > 10.22.0.80:80
ttl=47 id=12473 iplen=40
seq=1465450659
ttl=56 id=64571 iplen=40
seq=1465385122
win=1024 SENT (1.0903s) TCP 192.168.0.14:36480 > 10.22.0.80:80 win=1024 Nmap scan report for 10.22.0.80 Host is up, received user-set. PORT
STATE
SERVICE REASON
80/tcp open|filtered http
no-response
Nmap done: 1 IP address (1 host up) scanned in 2.09 seconds
V síťovém filtru wireshark si můžeme ověřit, že příznaky (flags) jsou nulové. Internet Protocol Version 4, Src: 192.168.0.14 (192.168.0.14), Dst: 10.22.0.80 (10.22.0.80) Transmission Control Protocol, Src Port: 40312 (40312), Dst Port: 80 (80), Seq: 1, Len: 0 Flags: 0x000 () 000. .... .... = Reserved: Not set ...0 .... .... = Nonce: Not set .... 0... .... = Congestion Window Reduced (CWR): Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set .... ...0 .... = Acknowledgment: Not set .... .... 0... = Push: Not set .... .... .0.. = Reset: Not set .... .... ..0. = Syn: Not set .... .... ...0 = Fin: Not set
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
21
Nmap port skener
8.2
Sledování dotazů (--version-trace)
nmap -sV 10.10.0.7 -p 5357 --version-trace --version-intensity 1 -n -Pn
Starting Nmap 6.25 ( http://nmap.org ) at 2013-05-03 20:32 CEST --------------- Timing report --------------hostgroups: min 1, max 100000 rtt-timeouts: init 1000, min 100, max 10000 max-scan-delay: TCP 1000, UDP 1000, SCTP 1000 parallelism: min 0, max 0 max-retries: 10, host-timeout: 0 min-rate: 0, max-rate: 0 --------------------------------------------NSE: Using Lua 5.2. NSE: Loaded 19 scripts for scanning. Packet capture filter (device eth0): dst host 192.168.0.14 and (icmp or icmp6 or ((tcp or udp or sctp) and (src host 10.10.0.7))) Overall sending rates: 38.05 packets / s, 1674.21 bytes / s. NSOCK (0.1990s) nsi_new (IOD #1) NSOCK (0.2000s) TCP connection requested to 10.10.0.7:5357 (IOD #1) EID 8 NSOCK (0.2030s) Callback: CONNECT SUCCESS for EID 8 [10.10.0.7:5357] Service scan sending probe NULL to 10.10.0.7:5357 (tcp) NSOCK (0.2030s) Read request from IOD #1 [10.10.0.7:5357] (timeout: 6000ms) EID 18 NSOCK (6.2040s) Callback: READ TIMEOUT for EID 18 [10.10.0.7:5357] Service scan sending probe GenericLines to 10.10.0.7:5357 (tcp) NSOCK (6.2040s) Write request for 4 bytes to IOD #1 EID 27 [10.10.0.7:5357]: .... NSOCK (6.2040s) Read request from IOD #1 [10.10.0.7:5357] (timeout: 5000ms) EID 34 NSOCK (6.2040s) Callback: WRITE SUCCESS for EID 27 [10.10.0.7:5357] NSOCK (11.2100s) Callback: READ TIMEOUT for EID 34 [10.10.0.7:5357] NSOCK (11.2100s) nsi_delete (IOD #1) NSOCK (11.2100s) nsi_new (IOD #2) NSOCK (11.2110s) TCP connection requested to 10.10.0.7:5357 (IOD #2) EID 40 NSOCK (11.2200s) Callback: CONNECT SUCCESS for EID 40 [10.10.0.7:5357] Service scan sending probe GetRequest to 10.10.0.7:5357 (tcp) NSOCK (11.2210s) Write request for 18 bytes to IOD #2 EID 51 [10.10.0.7:5357]: GET / HTTP/1.0.... NSOCK (11.2230s) Read request from IOD #2 [10.10.0.7:5357] (timeout: 4999ms) EID 58 NSOCK (11.2230s) Callback: WRITE SUCCESS for EID 51 [10.10.0.7:5357] NSOCK (11.2270s) Callback: READ SUCCESS for EID 58 [10.10.0.7:5357] (513 bytes) Service scan match (Probe GetRequest matched with GetRequest line 6164): 10.10.0.7:5357 is http. Version: |Microsoft HTTPAPI httpd|2.0|SSDP/UPnP| NSOCK (11.2270s) nsi_delete (IOD #2) NSE: Script scanning 10.10.0.7. NSE: Starting runlevel 1 (of 1) scan. Nmap scan report for 10.10.0.7 Host is up (0.025s latency). Scanned at 2013-05-03 20:32:11 CEST for 11s
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
35
Nmap port skener
Některé skripty potřebují i další volby pro svůj běh, což většinou vypozorujeme z dokumentace. Například skript firewalk vyžaduje navíc ještě přepínač–-traceroute. nmap -sV --script=firewalk 10.22.0.80 --traceroute -p0-65535
Starting Nmap 6.25 ( http://nmap.org ) at 2013-05-04 18:10 CEST Nmap scan report for 10.22.0.80 Host is up (0.0085s latency). Not shown: 65532 filtered ports PORT
STATE
21/tcp
closed ftp
22/tcp
open
ssh
OpenSSH 3.9p1 (protocol 1.99)
80/tcp
open
http
Apache httpd 2.0.52 ((CentOS))
443/tcp open
SERVICE
VERSION
ssl/http Apache httpd 2.0.52 ((CentOS))
Host script results: | firewalk: | HOP
HOST
PROTOCOL
BLOCKED PORTS
| 1
192.168.0.1
tcp
0,8
|_2
10.10.0.6
tcp
1-7,9
TRACEROUTE (using port 21/tcp) HOP RTT
ADDRESS
1
5.12 ms
192.168.0.1
2
5.30 ms
10.10.0.6
3
11.81 ms 10.22.0.80
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 153.57 seconds
11
Závěr
Nmap je komplexní nástroj a v kurzu jsme prozkoušeli jeho základní i pokročilé možnosti. Úmyslně jsme vypustili některé detaily pro udržení pozornosti (např. sekce časování a výkon, IPv6, Decoy sken). Soustředili jsme se na pozorování. Získáné závěry jsme přeměnili na zkušenosti, které využijete i s jinými port skenery. Nmap je jistě kvalitní nástroj, ale to neznamená, že se hodí ve všech situacích. Pokud jste objevili další otázky nebo souvislosti, nezapomeňte se o ně podělit a navštivte naše diskusní fórum http://forum.hackerlab.cz. Věříme, že se vám kurz líbil, a budeme se těšit na další setkání.
Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu.
43