nmap掃描工具學(xué)習(xí)筆記
參考文檔:2019.3_Kali man namp手冊(cè)。
Namp簡介
Namp概述:
nmap - 網(wǎng)絡(luò)探測(cè)工具和安全/端口掃描器
Namp是一個(gè)綜合性的工具,并且特性豐富的端口掃描工具。
Nmap (“Network Mapper(網(wǎng)絡(luò)映射器)”) 是一款開放源代碼的 網(wǎng)絡(luò)探測(cè)和安全審核的工具。它的設(shè)計(jì)目標(biāo)是快速地掃描大型網(wǎng)絡(luò),當(dāng)然用它掃描單個(gè) 主機(jī)也沒有問題。Nmap以新穎的方式使用原始IP報(bào)文來發(fā)現(xiàn)網(wǎng)絡(luò)上有哪些主機(jī),那些?主機(jī)提供什么服務(wù)(應(yīng)用程序名和版本),那些服務(wù)運(yùn)行在什么操作系統(tǒng)(包括版本信息),?它們使用什么類型的報(bào)文過濾器/防火墻,以及一堆其它功能。雖然Nmap通常用于安全審核, 許多系統(tǒng)管理員和網(wǎng)絡(luò)管理員也用它來做一些日常的工作,比如查看整個(gè)網(wǎng)絡(luò)的信息, 管理服務(wù)升級(jí)計(jì)劃,以及監(jiān)視主機(jī)和服務(wù)的運(yùn)行。
Nmap輸出的是掃描目標(biāo)的列表,以及每個(gè)目標(biāo)的補(bǔ)充信息,端口列表是關(guān)鍵,那張表列出端口號(hào),協(xié)議,服務(wù)名稱和狀態(tài)。狀態(tài)可能是 open(開放的),filtered(被過濾的), closed(關(guān)閉的),或者unfiltered(未被過濾的)。 Open(開放的)意味著目標(biāo)機(jī)器上的應(yīng)用程序正在該端口監(jiān)聽連接/報(bào)文。 filtered(被過濾的) 意味著防火墻,過濾器或者其它網(wǎng)絡(luò)障礙阻止了該端口被訪問,Nmap無法得知 它是open(開放的) 還是 closed(關(guān)閉的)。 closed(關(guān)閉的) 端口沒有應(yīng)用程序在它上面監(jiān)聽,但是他們隨時(shí)可能開放。 當(dāng)端口對(duì)Nmap的探測(cè)做出響應(yīng),但是Nmap無法確定它們是關(guān)閉還是開放時(shí),這些端口就被認(rèn)為是 unfiltered(未被過濾的) 如果Nmap報(bào)告狀態(tài)組合 open|filtered 和closed|filtered時(shí),那說明Nmap無法確定該端口處于兩個(gè)狀態(tài)中的哪一個(gè)狀態(tài)。 當(dāng)要求進(jìn)行版本探測(cè)時(shí),端口表也可以包含軟件的版本信息。當(dāng)要求進(jìn)行IP協(xié)議掃描時(shí) (-sO),Nmap提供關(guān)于 所支持的IP協(xié)議而不是正在監(jiān)聽的端口的信息。
除了所感興趣的端口表,Nmap還能提供關(guān)于目標(biāo)機(jī)的進(jìn)一步信息,包括反向域名,操作系統(tǒng)猜測(cè),設(shè)備類型,和MAC地址。
Namp主要功能:
主機(jī)發(fā)現(xiàn)
服務(wù)器版本探測(cè)
操作系統(tǒng)探測(cè)
網(wǎng)絡(luò)追蹤
Nmap腳本引擎
Nmap使用方式
用法:
語法:nmap [掃描類型…][選項(xiàng)] {掃描目標(biāo)說明}
目標(biāo)說明:
Namp掃描的目標(biāo)可以是一個(gè)主機(jī)地址,一個(gè)網(wǎng)段,多個(gè)地址,或者域名。同時(shí)支持CIDR風(fēng)格地址。支持類似10.1-5.1-255.1-255的掃描??赏瑫r(shí)接收多種類型的目標(biāo)。
IPv6只能用規(guī)范地址或主機(jī)名指定。
常見用法:
-iL <inputfilename> (從列表中輸入)
可將文件中的一堆主機(jī)名或地址讀取出來進(jìn)行掃描。
-iR <hostnum> (隨機(jī)選擇目標(biāo))
可以指定隨機(jī)生成多少個(gè)IP地址。如果為0,意味著無休止的掃描。
–exclude
可以排除多個(gè)不需要掃描的主機(jī)。
–excludfile <excludefile> (排除文件中的列表)
排除文件中的主機(jī)列表
主機(jī)發(fā)現(xiàn):
利用namp可以發(fā)現(xiàn)網(wǎng)絡(luò)中存活的主機(jī)??梢酝ㄟ^-sL掃描主機(jī)列表。 關(guān)閉ping(-P0)跳過ping的步驟,也可以使用多個(gè)端口把TCP SYN/ACK, UDP和ICMP等組合起來用來探測(cè)。
常見用法:
-sL(列表掃描)
掃描指定列表中存活的主機(jī)。
-sP (ping掃描)
僅僅進(jìn)行ping掃描??梢钥焖侔l(fā)現(xiàn)存活主機(jī)。
-sP默認(rèn)情況下,發(fā)送一個(gè)ICMP回聲請(qǐng)求和一個(gè)TCP報(bào)文到80端口。如果非特權(quán)用戶執(zhí)行,就發(fā)送一個(gè)SYN報(bào)文 (用connect()系統(tǒng)調(diào)用)到目標(biāo)機(jī)的80端口。
當(dāng)特權(quán)用戶掃描局域網(wǎng)上的目標(biāo)機(jī)時(shí),會(huì)發(fā)送ARP請(qǐng)求(-PR), ,除非使用了–send-ip選項(xiàng)。
-P0(無ping)
跳過發(fā)現(xiàn)階段。通常Namp只對(duì)確定這在運(yùn)行的主機(jī)進(jìn)行高強(qiáng)度掃描。而P0,不進(jìn)行活動(dòng)主機(jī)確認(rèn),直接對(duì)每個(gè)主機(jī)的每個(gè)端口等進(jìn)行掃描。
-PS [portlist] (TCP SYN Ping)
發(fā)送TCP 的SYN報(bào)文。默認(rèn)端口號(hào)80,也可指定多個(gè)端口號(hào)22,23,35。
如果目標(biāo)端口是關(guān)閉的,會(huì)收到RST(復(fù)位)包。如果是開啟的,會(huì)收到SYN/ACK的包。Nmap會(huì)發(fā)送RST扼殺這個(gè)連接。
-PA [portlist] (TCP ACK Ping)
發(fā)送的是ACK報(bào)文。會(huì)受到RST報(bào)文。
-PU [portlist] (UDP Ping)
默認(rèn)發(fā)送空的UDP報(bào)文,目的端口31338??梢酝ㄟ^–data-length指定數(shù)據(jù)大小。
如果目標(biāo)端口是關(guān)閉的,會(huì)收到ICMP端口不可達(dá)報(bào)文。如果可達(dá),則沒回應(yīng)。
-PE; -PP; -PM (ICMP Ping Types)
利用ICMP報(bào)文的時(shí)間戳請(qǐng)求,信息請(qǐng)求,和掩碼請(qǐng)求。代碼分為為13,15,17.
-PR (ARP Ping)
在相同網(wǎng)段上時(shí)使用ARP進(jìn)行掃描。
-n (不用域名解析)
讓Nmap不對(duì)發(fā)現(xiàn)的活動(dòng)IP地址進(jìn)行反向域名解析??墒鞘箳呙杷俣雀臁?/p>
-R (為所有目標(biāo)解析域名)
讓Nmap對(duì)目標(biāo)IP地址做反向域名解析。
–system-dns (使用系統(tǒng)域名解析器)
使用指定的域名解析服務(wù)器。
端口掃描基礎(chǔ):
端口掃描是Nmap的一個(gè)核心功能。Nmap會(huì)把端口掃描結(jié)果分為6個(gè)狀態(tài)。
open(開放的), closed(關(guān)閉的),filtered(被過濾的), unfiltered(未被過濾的), open|filtered(開放或者被過濾的),或者 closed|filtered(關(guān)閉或者被過濾的)。
open(開放的):
說明對(duì)應(yīng)的TCP或UDP端口是開放的。
closed(關(guān)閉的)
端口狀態(tài)被關(guān)閉。
filtered(被過濾的)
由于包過濾阻止探測(cè)報(bào)文到達(dá)端口,Nmap無法確定該端口是否開放。
unfiltered(未被過濾的)
端口可以訪問,但Nmap不能確定它是開放還是關(guān)閉。
open|filtered(開放或者被過濾的)
當(dāng)無法確定端口是開放還是被過濾,就為這種狀態(tài)。
closed|filtered(關(guān)閉或者被過濾的)
選項(xiàng):
-sS(TCP SYN掃描)
-sT(TCP connect()掃描)
-sU(UDP掃描)
-sN; -sF, -sX(TCP Full, FIN, and Xmas掃描)
-sA (TCP ACK掃描)
-sW(TCP窗口掃描)
-scanflags(定制的TCP掃描)
-sO(IP協(xié)議掃描)
端口說明和掃描順序:
-p(port ranges)(只掃描指定的端口)
-F(快速掃描)
-r(不按隨機(jī)順序掃描端口)
操作系統(tǒng)探測(cè):
-O(啟用操作系統(tǒng)檢查)
–ossacn-limit(針對(duì)指定的目標(biāo)進(jìn)行操作系統(tǒng)檢測(cè))
–osscan-guess; –fuzzy(推測(cè)操作系統(tǒng)的檢測(cè)結(jié)果)
當(dāng)Nmap無法確定所檢測(cè)的操作系統(tǒng)時(shí),會(huì)盡可能地提供最相近的匹配。
Nmap常用命令
獲取遠(yuǎn)程主機(jī)的系統(tǒng)類型及開放端口:
nmap -sS -P0 -sV -O。
這里的 < target > 可以是單一 IP, 或主機(jī)名,或域名,或子網(wǎng)
-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)
-P0 允許你關(guān)閉 ICMP pings.
-sV 打開系統(tǒng)版本檢測(cè)
-O 嘗試識(shí)別遠(yuǎn)程操作系統(tǒng)
其它選項(xiàng):
-A 同時(shí)打開操作系統(tǒng)指紋和版本檢測(cè)
-v 詳細(xì)輸出掃描情況.
nmap -sS -P0 -A -v < target >
列出開放了指定端口的主機(jī)列表:
nmap -sT -p 80 -oG – 192.168.1.* | grep open
在網(wǎng)絡(luò)尋找所有在線主機(jī):
nmap -sP 192.168.0.*
或者也可用以下命令:
nmap -sP 192.168.0.0/24
指定 subnet
ping指定范圍內(nèi)的IP地址:
nmap -sP 192.168.1.100-254
在某段子網(wǎng)上查找未占用的IP:
nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp
探測(cè)操作端口的服務(wù)和版本:
nmap -O 1.1.1.1 或 nmap -A 1.1.1.1