細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

前言

nmap是業(yè)內(nèi)非常知名的網(wǎng)絡(luò)掃描工具,和netcat齊名為網(wǎng)絡(luò)瑞士軍刀,想必大部分人都看過或者聽說過《黑客帝國》,里面的有幾個場景使用的是nmap,不妨引用一張電影劇照:

細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南nmap

女主通過nmap掃描開放端口,并通過弱口令拿到主機權(quán)限,這不能說明nmap多么強大,因為nmap強大之處不僅僅是掃描端口,只能說明密碼復(fù)雜度多么重要!nmap常用于漏洞掃描、端口掃描、網(wǎng)絡(luò)發(fā)現(xiàn)等。篇幅有限,本文將從以下五大部分介紹nmap常用用法:

主機發(fā)現(xiàn)網(wǎng)絡(luò)探測指紋識別與探測防火墻/IDS逃逸信息收集暴力窮舉

過程中會盡量抓包還原真實場景,用的極少的參數(shù)將盡可能忽略不講,亦可稱之為雞肋,相信熟悉常用參數(shù)和用法后,其他鮮為人知的參數(shù)到真正需要用到的場景下再翻看man文檔也不遲。

一、主機發(fā)現(xiàn)

涉及到的參數(shù)列表,有些參數(shù)不常用,需要時可對照參考:

選項

含義

-sP

Ping掃描

-P0

無Ping掃描

-PS

TCP SYN Ping掃描

-PU

udp Ping掃描

-PE;-PP;-PM

ICMP Ping Types掃描

-PR

ARP Ping掃描

-n

禁止DNS反向解析

-R

反向解析域名

–system-dns

使用系統(tǒng)域名解析器

-sL

列表掃描

-6

掃描IPv6地址

–traceroute

路由跟蹤

-PY

SCTP INIT Ping掃描

-PA

TCP ACK Ping掃描

最簡單的掃描,什么參數(shù)都不加,默認發(fā)SYN探測:

代碼語言:txt復(fù)制

$ nmap 192.168.1.1Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:29 CSTNmap scan report for openwrt.linux-code.com (192.168.1.1)Host is up (0.00026s latency).Not shown: 989 closed portsPORT     STATE SERVICE21/tcp   open  ftp22/tcp   open  ssh53/tcp   open  domain80/tcp   open  http81/tcp   open  hosts2-ns139/tcp  open  netbios-ssn443/tcp  open  https444/tcp  open  snpp445/tcp  open  microsoft-ds1234/tcp open  hotline5000/tcp open  upnpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 39.51 seconds$

可以看到列出了192.168.1.1這個IP的開放端口和對應(yīng)服務(wù)信息

常用指令:

代碼語言:txt復(fù)制

nmap -sP -n 192.168.1.0/24  #列出當前網(wǎng)段下所有存活主機,發(fā)送ICMP探測,-n 禁止DNS反向解析,節(jié)省掃描時間nmap -PS -n 172.16.0.0/16   #列出當前網(wǎng)段下所有存活主機,發(fā)送SYN Ping探測nmap -PR -n 192.168.1.1     #使用ARP Ping掃描nmap --system-dns 119.29.29.29 blog.linux-code.com  #指定DNS地址,將域名解析成IP后再進行端口探測,不常用nmap --traceroute -v blog.linux-code.com #路由跟蹤,會列出每一跳的端口開放情況,不常用

反向DNS解析:

代碼語言:txt復(fù)制

$ nmap -R -sL 192.168.1.0/24 |& grep '(' Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:33 CSTNmap scan report for openwrt.linux-code.com (192.168.1.1)Nmap scan report for esxi.linux-code.com (192.168.1.10)Nmap scan report for qqdb.linux-code.com (192.168.1.84)Nmap scan report for pan.linux-code.com (192.168.1.95)Nmap scan report for nas.linux-code.com (192.168.1.128)Nmap scan report for node1 (192.168.1.197)Nmap done: 256 IP addresses (0 hosts up) scanned in 0.10 seconds$ 

二、網(wǎng)絡(luò)探測,細致化掃描

包含的參數(shù)如下:

選項

含義

-T

時序選項,范圍T0-T5

-p|-F

常用掃描方式

-sS

TCP SYN半開掃描

-sT

TCP連接掃描

-sU

UDP掃描

-sN;-sF;-sX

隱蔽掃描

-sA

TCP ACK掃描

-sW

TCP窗口掃描

-sM

TCP Maimon掃描

–scanflags

自定義TCP掃描

-sI(大寫字母i)

空閑掃描

-sO

IP協(xié)議掃描

-b

FTP Bounce掃描

常用命令:

1.按時序掃描(-T0~-T5)代碼語言:txt復(fù)制

$ nmap -T4 192.168.1.1

-T為時序掃描,分為-T0~-T5六個等級,數(shù)字越大速度越快越不精準,慢掃描多用于IDS逃逸,常用-T4;配合-F使用可提高掃描速度及效果,-F會盡量少的掃描端口,不會把默認端口全掃一遍

2.指定端口或端口范圍:(-p)代碼語言:txt復(fù)制

$ nmap -p 80 blog.linux-code.com  #只掃描80端口$ nmap -p 80,443 -n 192.168.1.1   #80,443,-n不做DNS反解$ nmap -p 445-1023 192.168.1.1    #445-1023$ nmap -p 80,443,445-1000 -n 192.168.1.1  #字面意思

如果既想掃TCP又想掃UDP,可以在端口前加”T:”或”U:”,代表TCP和UDP,必須指定-sU(UDP掃描類型)且需要指定一個TCP掃描類型(如-sS、-sF、-sT等)

代碼語言:txt復(fù)制

$ nmap -sU -p U:53,T:80,22 -sT -n 192.168.1.1Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:37 CSTNmap scan report for 192.168.1.1Host is up (0.00037s latency).PORT   STATE         SERVICE22/tcp open          ssh80/tcp open          http53/udp open|filtered domainMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 0.53 seconds$

3.nmap的6種端口狀態(tài)Open開放狀態(tài)Closed關(guān)閉狀態(tài);當然不一定是真的關(guān)閉,不排除對方系統(tǒng)做了一定的安全防護從而忽略nmap的探測報文Filtered被過濾;對方主機可能存在防火墻設(shè)備將nmap包阻隔,也可能是網(wǎng)絡(luò)擁塞造成的,如遇到此狀態(tài)建議在不同時間段再次掃描Unfiltered未被過濾;證明端口可以訪問,但無法判斷是Open還是Closed,當使用ACK掃描才會呈現(xiàn)該狀態(tài),這時建議換一種掃描方式Open|Filtered不確定態(tài);可能受到專業(yè)設(shè)備的阻擋,nmap發(fā)出去的報文沒有得到響應(yīng),可更換掃描方式再次嘗試Closed|Filtered不確定是關(guān)閉還是被過濾,只出現(xiàn)在IPID Idle掃描中,不常用4.SYN半開掃描(-sS)

此選項常用,不會和對方主機進行三次握手,只發(fā)送SYN報文,之后斷開連接,很難被防火墻或管理員檢測到;結(jié)合前面所述,如果端口處于不確定態(tài),可使用該選項進行掃描。

代碼語言:txt復(fù)制

$ nmap -sS -p 22,80 -n 192.168.1.1Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:39 CSTNmap scan report for 192.168.1.1Host is up (0.00030s latency).PORT   STATE SERVICE22/tcp open  ssh80/tcp open  httpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds$
細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

每次發(fā)完SYN后,不接受第二次握手直接RST掉對端主機的SYN包,因為從對方發(fā)送第二次握手包時nmap就已經(jīng)能判斷端口是否有開放。

5.TCP連接掃描(-sT)

顧名思義,建立在三次握手的基礎(chǔ)上;當SYN半開掃描不能用的時候才考慮用它,同時也是端口掃描中最基礎(chǔ)、最穩(wěn)定的掃描方式。

代碼語言:txt復(fù)制

$ nmap -sT -p 22,80 -n 192.168.1.1 Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:43 CSTNmap scan report for 192.168.1.1Host is up (0.00028s latency).PORT   STATE SERVICE22/tcp open  ssh80/tcp open  httpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds$
細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

完成建聯(lián)后緊接著斷開連接。

6.UDP掃描(-sU)

使用UDP報文探測,掃描速度較慢,通過ICMP不可達判斷端口開放情況;以下通過-p指定端口大大縮短掃描耗時:

代碼語言:txt復(fù)制

$ nmap -sU -p 53,80 -n 192.168.1.1  Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:45 CSTNmap scan report for 192.168.1.1Host is up (0.00028s latency).PORT   STATE         SERVICE53/udp open|filtered domain80/udp closed        httpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 1.52 secondss$
細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

7.隱蔽掃描(-sN;-sF;-sX)

-sN為NULL掃描,通過發(fā)送非常規(guī)TCP通信數(shù)據(jù)對計算機進行探測,若目標主機相應(yīng)端口是關(guān)閉的,會響應(yīng)一個RST數(shù)據(jù)表,若端口開放則不會響應(yīng)任何信息。

代碼語言:txt復(fù)制

$ nmap -sN -p 22,80 -n 192.168.1.1     Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:49 CSTNmap scan report for 192.168.1.1Host is up (0.00026s latency).PORT   STATE         SERVICE22/tcp open|filtered ssh80/tcp open|filtered httpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 1.52 seconds$
細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

-sF為FIN掃描,不需要完成TCP握手,只向目標端口發(fā)送一個FIN包,如果收到目標響應(yīng)的RST包,則說明端口開放,否則視為關(guān)閉或者被攔截的(不確定態(tài)),因為目標主機對于此類無意義請求可以選擇RST也可以選擇不響應(yīng)。

代碼語言:txt復(fù)制

$ nmap -sF -p 22,80 -n 192.168.1.1 Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:52 CSTNmap scan report for 192.168.1.1Host is up (0.00024s latency).PORT   STATE         SERVICE22/tcp open|filtered ssh80/tcp open|filtered httpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 1.59 seconds$
細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

-sX為Xmas掃描,數(shù)據(jù)包的FIN、PSH和URG標志位置打開,即標志為1,如果目標主機端口開放則會響應(yīng)一個RST包,否則判斷位不確定態(tài)。

代碼語言:txt復(fù)制

$ nmap -sX -p 22,80 -n 192.168.1.1Starting Nmap 7.91 ( https://nmap.org ) at 2021-12-25 14:57 CSTNmap scan report for 192.168.1.1Host is up (0.00030s latency).PORT   STATE         SERVICE22/tcp open|filtered ssh80/tcp open|filtered httpMAC Address: 00:0C:29:BE:5A:26 (VMware)Nmap done: 1 IP address (1 host up) scanned in 1.54 seconds$
細談網(wǎng)絡(luò)瑞士軍刀-Nmap使用指南

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊12 分享