這篇文章給大家介紹nmap的參數(shù)是什么,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蔡家坡免費建站歡迎大家使用!Nmap——networkmapper,網(wǎng)絡探測工具和安全/端口掃描器
nmap[掃描類型…] [選項] [掃描目標說明]
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254
-iL
-iR
--exclude
--excludefile
HOST DISCOVERY:
-sL: List Scan - simply list targets to scan
-sP: Ping Scan - go no further than determining if host is online
-P0: Treat all hosts as online -- skip host discovery
-PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-n/-R: Never do DNS resolution/Always resolve [default: sometimes resolve]
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sN/sF/sX: TCP Null, FIN, and Xmas scans
--scanflags
-sI
-sO: IP protocol scan
-b
PORT SPECIFICATION AND SCAN ORDER:
-p
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Fast - Scan only the ports listed in the nmap-services file)
-r: Scan ports consecutively - don't randomize
SERVICE/VERSION DETECTION:
-sV: Probe open ports to determine service/version info
--version-light: Limit to most likely probes for faster identification
--version-all: Try every single probe for version detection
--version-trace: Show detailed version scan activity (for debugging)
OS DETECTION:
-O: Enable OS detection
--osscan-limit: Limit OS detection to promising targets
--osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
-T[0-6]: Set timing template (higher is faster)
--min-hostgroup/max-hostgroup
--min-parallelism/max-parallelism
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout
probe round trip time.
--host-timeout
--scan-delay/--max-scan-delay
FIREWALL/IDS EVASION AND SPOOFING:
-f; --mtu
-D
-S
-e
-g/--source-port
--data-length
--ttl
--spoof-mac
OUTPUT:
-oN/-oX/-oS/-oG
-oA
-v: Increase verbosity level (use twice for more effect)
-d[level]: Set or increase debugging level (Up to 9 is meaningful)
--packet-trace: Show all packets sent and received
--iflist: Print host interfaces and routes (for debugging)
--append-output: Append to rather than clobber specified output files
--resume
--stylesheet
--no-stylesheet: Prevent Nmap from associating XSL stylesheet w/XML output
MISC:
-6: Enable IPv6 scanning
-A: Enables OS detection and Version detection
--datadir
--send-eth/--send-ip: Send packets using raw ethernet frames or IP packets
--privileged: Assume that the user is fully privileged
-V: Print version number
-h: Print this help summary page.
EXAMPLES:
nmap -v -A scanme.nmap.org
nmap -v -sP 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -P0 -p 80
目標說明:
1) CIDR風格地址,附加一個/
2) 可以對IP的各個段使用范圍列表來指定掃描對象,即0-255.0-255.0-255.0-255;或使用逗號隔開,即192.168.1.1,3,5
3) IPv6地址只能用規(guī)范的IPv6地址或主機名指定,上面兩種方式對IPv6都不支持
4) 接受多個主機說明,不必是相同類型
5) -iL
6) -iR
7) --exclude
8) --excludefile
主機發(fā)現(xiàn)
發(fā)送探測包到目標追究,若收到回復,則說明目標主機是開啟的。Nmap支持十多種不同的主機探測方式;默認發(fā)送四種
a) ICMP echo request
b) a TCP SYN packet to port 443
c) a TCP ACK packet to port 80
d) an ICMP timestamp request
參數(shù)形式
l -sL:List Scan 列表掃描,僅將指定的目標IP列舉出來,不進行主機發(fā)現(xiàn)
l -sP:Ping Scan 只利用ping掃描進行主機發(fā)現(xiàn),不進行端口掃描
n 默認情況下發(fā)送ICMP回聲請求和一個TCP報文到80端口,非特權用戶發(fā)送一個SYN報文到80端口
n 可以和除-P0之外的任何發(fā)現(xiàn)探測類型-P*選項結合使用以達到更高的靈活性
l -Pn/-P0:將所有指定的主機視作開啟的,跳過主機發(fā)現(xiàn)的過程
l -PS [portlist]:TCP SYN Ping,發(fā)送一個設置了SYN標志位的空TCP報文
n 默認端口為80(可設置),也可指定端口
n 目標主機端口關閉,回復RST,端口開放,則回復SYN/ACK,但都表明目標主機在線
n UNIX機器上,只有特權用戶才能發(fā)送和接收原始的TCP報文,因此非特權用戶進行系統(tǒng)調(diào)用connect(),也發(fā)送一個SYN報文來嘗試建立連接
l -PA [portlist]:TCP ACK ping,發(fā)送一個設置了ACK標志位的TCP報文
n 默認端口為80(可設置),也可指定端口
n 目標主機在線,回復RST,不在線則超時
n UNIX機器上,只有特權用戶才能發(fā)送和接收原始的TCP報文,因此非特權用戶進行系統(tǒng)調(diào)用connect(),也發(fā)送一個SYN報文來嘗試建立連接
l -PU [portlist]: UDP Ping,發(fā)送一個空的UDP報文到指定的端口,
n 默認短褲為31338(可設置)
n 優(yōu)勢是可以穿越只過濾TCP的防火墻或過濾器
n 若端口關閉,則回復ICMP端口無法到達,說明主機在線;其他類型的ICMP錯誤如主機/網(wǎng)絡無法到達或者TTL超時則表示主機不在線;沒有回應也被這樣解釋,但不一定正確(因為大多數(shù)開放該端口的服務會忽略該UDP報文)
l -PE; -PP; -PM:ICMP Ping Types,發(fā)送ICMP Type 8 (回聲請求)報文,期待從運行的主機得到一個type 0 (回聲相應)報文
l -PR:ARP Ping
l -n:不用域名解析,加快掃描速度
l -R:為所有目標IP地址作反向域名解析
l --system-dns:使用系統(tǒng)域名解析器,一般不使用該選項,因為比較慢
端口掃描
1) Nmap將端口分成六個狀態(tài)
a) open(開放的): 該端口正在接收TCP連接或者UDP報文
b) closed(關閉的): 關閉的端口接收nmap的探測報文并做出響應
c) filtered(被過濾的): 探測報文被包過濾阻止無法到達端口,nmap無法確定端口的開放情況
d) unfiltered(未被過濾的):端口可訪問,但nmap仍無法確定端口的開放情況
e) open|filtered(開放或者被過濾的):無法確定端口是開放的還是被過濾的
f) closed|filtered(關閉或者被過濾的):無法確定端口是關閉的還是被過濾的
2) Nmap產(chǎn)生結果是基于目標機器的響應報文的,而這些主機可能是不可信任的,會產(chǎn)生迷惑或者誤導nmap的報文,更普遍的是非RFC兼容的主機以不正確的方式響應nmap探測,F(xiàn)IN/NULL和Xmas掃描特容易遇到這些問題
3) Nmap支持十幾種掃描技術,默認情況下執(zhí)行一個SYN掃描(沒有權限或者掃描IPv6不可用時TCP Connect());一般一次只用一種方法,除了UDP掃描(-sU)可能和任何一種TCP掃描結合使用;一般格式是-s
a) –sS:TCP SYN掃描,半開放掃描,掃描速度快,不易被注意到(不完成TCP連接);且能明確區(qū)分open|closed|filtered
i. Open SYN/ACK
ii. Closed RST復位
iii. Filtered 數(shù)次重發(fā)沒響應,或者收到ICMP不可達
b) –sT:TCPConnect(),建立連接,容易被記錄;對原始報文控制少,效率低
c) –sU:激活UDP掃描,對UDP服務進行掃描,如DNS/SNMP/DHCP等,可以和TCP掃描結合使用;但是效率低下,開放的和被過濾的端口很少響應,加速UDP掃描的方法包括并發(fā)掃描更多的主機,先只對主要端口進行快速掃描,從防火墻后面掃描,使用--host-timeout跳過慢速的主機
d) –sN; -sF; -sX:TCP Null,Fin, Xmas掃描,從RFC挖掘的微妙方法來區(qū)分開放關閉端口;除了探測報文的標志位不同,三種掃描在行為上一致
i. 優(yōu)勢:能躲過一些無狀態(tài)防火墻和報文過濾路由器,比SYN還要隱秘
ii. 劣勢:現(xiàn)代的IDS產(chǎn)品可以發(fā)現(xiàn),并非所有的系統(tǒng)嚴格遵循RFC 793
e) –sA:TCP ACK掃描,只設置ACK標志位,區(qū)分被過濾與未被過濾的
f) –sW:TCP窗口掃描,依賴于互聯(lián)網(wǎng)上少數(shù)系統(tǒng)的實現(xiàn)細節(jié),因此可信度不高;根據(jù)窗口大小來判斷端口是開放的(正數(shù))還是關閉的(0)
g) –sM:TCP Maimon掃描,探測報文是FIN/ACK,端口開放或關閉,都對這樣的報文響應RST報文,但如果端口開放,許多基于BSD的系統(tǒng)只是丟棄該探測報文
h) –scanflags:通過指定任意的TCP標志位來設計掃描,可以是數(shù)字標記值,也可以使用字符名如URG/ACK/PSH/RST/SYN/FIN
i) –sI
j) –sO:IP協(xié)議掃描,可以確定目標機支持哪些IP協(xié)議(TCP, ICMP, IGMP)
k) –b
4) 端口說明和掃描順序:默認情況下,對1-1024以及nmap-services文件中列出的更高的端口在掃描
a) –p
b) –p
c) –p U:[UDP ports],T:[TCP ports]:對指定的端口進行指定協(xié)議的掃描
d) –F:快速掃描(僅掃描100個最常用的端口),nmap-services文件指定想要掃描的端口;可以用—datadir選項指定自己的小小nmap-services文件
e) –top-ports
f) –r:不要按隨機順序掃描端口,默認情況下按隨機(常用的端口前移)
服務與版本探測
1) nmap-services是一個包含大約2200個著名的服務的數(shù)據(jù)庫,Nmap通過查詢該數(shù)據(jù)庫可以報告那些端口可能對應于什么服務器,但不一定正確
2) 在用某種掃描方法發(fā)現(xiàn)TCP/UDP端口后,版本探測會詢問這些端口,確定到底什么服務正在運行;nmap-service-probes數(shù)據(jù)庫包含查詢不同服務的探測報文和解析識別響應的匹配表達式;當Nmap從某個服務收到響應,但不能在數(shù)據(jù)庫中找到匹配時,就打印出一個fingerprint和一個URL給您提交
3) 用下列選項打開和控制版本探測
a) –sV:打開版本探測
b) –allports:不為版本探測排除任何端口,默認情況下跳過9100端口
c) –version-intensity
d) –version-light:是—version-intensity2的別名
e) –version-all:是—version-intensity9的別名
f) –version-trace:跟蹤版本掃描活動,打印出詳細的關于正在進行的掃描的調(diào)試信息
g) –sR:RPC掃描,對所有被發(fā)現(xiàn)開放的TCP/UDP端口執(zhí)行SunRPC程序NULL命令,來試圖 確定它們是否RPC端口,如果是, 是什么程序和版本號
操作系統(tǒng)探測
1) 用TCP/IP協(xié)議棧fingerprinting進行遠程操作系統(tǒng)探測,Nmap發(fā)送一系列TCP和UDP報文到遠程主機,檢查響應中的每一個比特。 在進行一打測試如TCPISN采樣,TCP選項支持和排序,IPID采樣,和初始窗口大小檢查之后, Nmap把結果和數(shù)據(jù)庫nmap-os-fingerprints中超過 1500個已知的操作系統(tǒng)的fingerprints進行比較,如果有匹配,就打印出操作系統(tǒng)的詳細信息。每個fingerprint包括一個自由格式的關于OS的描述文本,和一個分類信息,它提供供應商名稱(如Sun),下面的操作系統(tǒng)(如Solaris),OS版本(如10),和設備類型(通用設備,路由器,switch,游戲控制臺等)
2) Nmap猜不出操作系統(tǒng),則會提供一個URL讓知道操作系統(tǒng)的用戶來提交,從而擴大Nmap的操作系統(tǒng)知識庫
3) 采用下列選項啟用和控制操作系統(tǒng)檢測
a) –O:啟用操作系統(tǒng)檢測;-A可以同時啟用操作系統(tǒng)檢測和版本檢測
b) –osscan-limit:針對指定的目標進行操作系統(tǒng)檢測
c) –osscan-guess|--fuzzy:當Nmap無法確定所檢測的操作系統(tǒng)時,會盡可能地提供最相近的匹配
時間和性能
1) Nmap開發(fā)的高優(yōu)先級是性能,但很多因素會增加掃描時間如特定的掃描選項,防火墻配置以及版本掃描燈
2) 優(yōu)化時間參數(shù)
a) –min-hostgroup
b) –min-parallelism
c) --min-rtt-timeout
d) –host-timeout
e) --scan-delay
f) –T
防火墻/IDS躲避和哄騙
1) 相關的選項
a) –f(報文分段); --mtu(使用指定的MTU):將TCP頭分段在幾個包中,使得包過濾器、 IDS以及其它工具的檢測更加困難
b) –D
c) –S
d) –e
e) –source-port
f) –data-length
g) –ttl
h) –randomize-hosts:對目標主機的順序隨機排列
i) –spoof-mac
j) –badsum:發(fā)送錯誤的校驗和
輸出
1) 提供了方便直接查看的交互式方式和方便軟件處理的XML格式;另外還提供了選項來控制輸出的細節(jié)以及調(diào)試信息
2) 五種不同的輸出格式,默認interactiveoutput,其他的還有
a) normal output:顯示較少的運行時間信息和告警信息
b) XML輸出:可轉換成HTML,方便程序處理
c) grepable格式:在一行中包含目標主機最多的信息
d) sCRiPt KiDDi3 0utPut 格式:用于考慮自己的用戶
多種格式能同時使用,但一種格式只能使用一次
3) 與其它Nmap參數(shù)不同,日志文件選項的空格(如-oX)和文件名或連字符是必需的。如果省略了標記,例如-oG-或 -oXscan.xml,Nmap的向后兼容特點將建立 標準格式的輸出文件,相應的文件名為G-和 Xscan.xml
4) 相關的選項
a) –oN
b) –oX
c) –oS
d) –oG
e) –oA
f) –v:提高輸出信息的詳細度
g) –d [level]:提高或設置調(diào)試級別,9高
h) –packet-trace:跟蹤發(fā)送和接收的報文
i) –iflist:輸出檢測到的接口列表和系統(tǒng)路由
j) –append-output:表示在輸出文件中添加,而不是覆蓋原文件
k) –resume
l) –stylesheet
m) –no-stylesheet:忽略XML生命的XSL樣式表
其他選項
1) -6:開啟IPv6掃描
2) -A:激烈掃描模式選項,這個選項啟用額外的高級和高強度選項,目前還未確定代表的內(nèi)容。目前,這個選項啟用了操作系統(tǒng)檢測(-O) 和版本掃描(-sV),以后會增加更多的功能
3) --datadir
Nmap在運行時從文件中獲得特殊的數(shù)據(jù),這些文件有 nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes和 nmap-os-fingerprints。Nmap首先 在--datadir選項說明的目錄中查找這些文件。 未找到的文件,將在BMAPDIR環(huán)境變量說明的目錄中查找。 接下來是用于真正和有效UID的~/.nmap 或Nmap可執(zhí)行代碼的位置(僅Win32);然后是是編譯位置, 如/usr/local/share/nmap 或/usr/share/nmap。
Nmap查找的最后一個位置是當前目錄
4) --send-eth:使用原以太網(wǎng)幀發(fā)送
5) --send-ip:在原IP層發(fā)送
6) --privileged:假定用戶具有全部權限
7) --interactive:在交互模式下啟動
8) -V; --version:打印版本信息
9) -h; --help:打印一個短的幫助屏幕
運行時的交互
1) v/V:增加/減少細節(jié)
2) d/D:提高/降低調(diào)試級別
3) p/P:打開/關閉報文跟蹤
NSE腳本引擎(NmapScripting Engine)
1) 允許用戶自己編寫腳本來執(zhí)行自動化的操作或者擴展Nmap的功能;使用Lua腳本語言
2) 創(chuàng)建方法
a) description 字段:描述腳本功能的字符串,使用雙層方括號表示
b) comment 字段:以--開頭的行,描述腳本輸出格式
c) author 字段:描述腳本作者
d) license 字段:描述腳本使用許可證,通常配置為Nmap 相同的license
e) categories 字段:描述腳本所屬的類別,以對腳本的調(diào)用進行管理。描述腳本執(zhí)行的規(guī)則,也就是確定觸發(fā)腳本執(zhí)行的條件。在 Nmap 中有四種類型的規(guī)則,prerule 用于在Nmap 沒有執(zhí)行掃描之前觸發(fā)腳本執(zhí)行,這類腳本并不需用到任何Nmap 掃描的結果;hostrule 用在Nmap 執(zhí)行完畢主機發(fā)現(xiàn)后觸發(fā)的腳本,根據(jù)主機發(fā)現(xiàn)的結果來觸發(fā)該類腳本;portrule 用于Nmap 執(zhí)行端口掃描或版本偵測時觸發(fā)的腳本,例如檢測到某個端口時觸發(fā)某個腳本執(zhí)行以完成更詳細的偵查。postrule
用于Nmap 執(zhí)行完畢所有的掃描后,通常用于掃描結果的數(shù)據(jù)提取和整理。在上述實例中,只有一個portrule,說明該腳本在執(zhí)行端口掃描后,若檢測到TCP 13 號端口開放,那么觸發(fā)該腳本的執(zhí)行。
f) action 字段:腳本執(zhí)行的具體內(nèi)容。當腳本通過 rule 字段的檢查被觸發(fā)執(zhí)行時,就會調(diào)用action 字段定義的函數(shù)。
3) 用法
a) –sC:使用默認類別的腳本進行掃描
b) –script=
c) –script-args=
d) –script-args-file=filename:使用文件夾為腳本提供參數(shù)
e) –script-trace:顯示腳本執(zhí)行過程中發(fā)送與接收的數(shù)據(jù)
f) –script-updatedb:更新腳本數(shù)據(jù)庫
g) –script-help=
后話
1) Namp的圖形化用戶界面程序:Zenmap
2) Nmap掃描的挑戰(zhàn)
a) 選取要掃描的IP:網(wǎng)絡上有大量的IP地址,需要targeted scans而不是giant scan
b) 防火墻:防火墻內(nèi)部網(wǎng)絡與外部網(wǎng)絡的不同,繞過防火墻有一定難度
c) 效率和準確性
3) TCP主機發(fā)現(xiàn),十個最常用的端口:80/http,25/smtp,22/ssh,443/https,21/ftp,113/auth,23/telnet,53/domain,554/rtsp,3389/ms-term-server
4) TCP端口掃描,十個最常用的端口:80/http,23/telnet,22/ssh,443/https,3389/ms-term-serv,445/microsoft-ds,139/netbios-ssn,21/ftp,135/msrpc,25/smtp
5) UDP端口掃描,十個最常用的端口:137/netbios-ns,161/snmp,1434/ms-sql-m,123/ntp,138/netbios-dgm,445/microfost-ds,135/msrpc,67/dhcps,139/netbios-ssn,53/domain
6) 阻止nmap掃描的幾種過濾機制,從而nmap掃不到tcp端口和操作系統(tǒng)的版本號,但80端口仍然可以提供好的http服務
a) iptables –F
b) iptables -AINPUT -p tcp –tcp-flags ALL FIN,URG,PSH -j Drop
c) iptables -AINPUT -p tcp –tcp-flags SYN,RST SYN,RST -j Drop
d) iptables -A INPUT-p tcp –tcp-flags SYN,FIN SYN,FIN -j Drop
e) iptables -AINPUT -p tcp –tcp-flags SyN SYN –dport 80 -j Drop
針對其他的掃描如UDP掃描,也應該可以設置相應的過濾機制
關于nmap的參數(shù)是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。