天天看點

網絡滲透中的掃描工具——nmap介紹

作者:會測試的鲸魚

前面其實斷斷續續介紹過很多nmap的用法,但不是很完整。這裡單獨來介紹一下這個非常強大的掃描工具nmap。

完整地幫助文檔就不放上來了,想看完整文檔的直接輸入指令nmap -h:

網絡滲透中的掃描工具——nmap介紹

nmap -h

後面我們針對說明文檔中的各個參數進行一些說明,其實如果英文比較好,就直接看說明文檔就行了,我後面的介紹很多就是翻譯一下而已。

目标規範

第一類就是指定掃描目标規範相關的參數:

網絡滲透中的掃描工具——nmap介紹

TARGET SPECIFICATION

說明文檔中介紹了不使用這部分的參數時,目标主機該怎麼傳,就是Ex後面的那些參數類型。

-iL:傳遞一個ip位址的文檔,文檔裡的ip位址可以是不連續的,不同網段的。
-iR:後面跟一個數字,會随機掃描指定數量的主機,可以加-p指定端口掃描。
--exclude:後面跟ip位址或者網段,表示這些主機不用進行掃描。
--excludefile:後面傳一個ip位址的文檔,表示文檔中的主機不進行掃描。           

主機發現

接下來一塊就是主機發現相關的參數:

-sL: List Scan 清單掃描,僅将指定的目标的IP列舉出來,不進行主機發現。  
-sn: Ping Scan 隻進行主機發現,不進行端口掃描。  
-Pn: 将所有指定的主機視作開啟的,跳過主機發現的過程。  
-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式進行發現。  
-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 請求包發現主機。-PO[protocollist]: 使用IP協定包探測對方主機是否開啟。  
-n/-R: -n表示不進行DNS解析;-R表示總是進行DNS解析。  
--dns-servers <serv1[,serv2],...>: 指定DNS伺服器。  
--system-dns: 指定使用系統的DNS伺服器  
--traceroute: 追蹤每個路由節點            

掃描技術

接下來是掃描技術相關的參數:

-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目标主機進行掃描。  
-sU: 指定使用UDP掃描方式确定目标主機的UDP端口狀況。  
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來協助探測對方的TCP端口狀态。  
--scanflags <flags>: 定制TCP包的flags。  
-sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目标主機(前提需要找到合适的zombie host)  
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協定端口的開放的情況。  
-sO: 使用IP protocol 掃描确定目标機支援的協定類型。  
-b <FTP relay host>: 使用FTP bounce scan掃描方式           

端口規範和掃描順序

接下來是指定掃描端口相關的參數:

-p <port ranges>:掃描指定的端口  
執行個體: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP協定、U代表UDP協定、S代表SCTP協定)  
--exclude-ports <port ranges>:指定不掃描的端口
-F:Fast mode – 快速模式,僅掃描TOP 100的端口  
-r:不進行端口随機打亂的操作(如無該參數,nmap會将要掃描的端口以随機順序方式掃描,以讓nmap的掃描不易被對方防火牆檢測到)。  
--top-ports <number>:掃描開放機率最高的number個端口(nmap的作者曾經做過大規模地網際網路掃描,以此統計出網絡上各種端口可能開放的機率。以此排列出最有可能開放端口的清單,具體可以參見檔案:nmap-services。預設情況下,nmap會掃描最有可能的1000個TCP端口)  
--port-ratio <ratio>:掃描指定頻率以上的端口。與上述--top-ports類似,這裡以機率作為參數,讓機率大于--port-ratio的端口才被掃描。顯然參數必須在在0到1之間,具體範圍機率情況可以檢視nmap-services檔案。             

服務版本掃描

接下來是端口上服務版本掃描相關的參數:

-sV:指定讓Nmap進行版本偵測  
--version-intensity <level>:指定版本偵測強度(0-9),預設為7。數值越高,探測出的服務越準确,但是運作時間會比較長。  
--version-light:指定使用輕量偵測方式 (intensity 2)  
--version-all:嘗試使用所有的probes進行偵測 (intensity 9)  
--version-trace:顯示出詳細的版本偵測過程資訊。           

腳本掃描

接下來是腳本掃描相關的參數:

-sC: 相當于使用了 --script=default
--script=<Lua scripts>: 傳遞指定腳本
--script-args=<n1=v1,[n2=v2,...]>: 為腳本提供參數。
--script-args-file=filename: 在檔案中提供NSE腳本參數。
--script-trace: 顯示發送和接收的所有資料。
--script-updatedb: 更新腳本資料庫。
--script-help=<Lua scripts>: 會顯示一些腳本的說明,以便了解目标腳本可以起什麼作用。           

系統掃描

系統掃描主要是識别目标系統是Linux還是window或者是Unix:

-O: 進行系統掃描
--osscan-limit: 限制檢測指定類型的系統
--osscan-guess: 猜測的時候更激進一些           

時間和性能

接下來是時間和性能相關的參數:

-T<0-5>: 設定時間标準 (值越大越快)
--min-hostgroup/max-hostgroup <size>: 最少一次掃描多少主機/最多一次掃描多少主機
--min-parallelism/max-parallelism <numprobes>: 最小并行數量/最大并行數量
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: 最小來回通路時間/最大來回通路時間
--max-retries <tries>: 限制端口掃描探針重新傳輸的次數。
--host-timeout <time>: 逾時時間
--scan-delay/--max-scan-delay <time>:掃描延遲/最大掃描延遲
--min-rate <number>: 最低發送資料包的速度
--max-rate <number>: 最高發送資料包的速度           

防火牆、id欺騙、躲避

接下來是防火牆、id欺騙和躲避相關的參數:

-f; --mtu <val>: fragment packets (optionally w/given MTU) 最大傳輸單元
-D <decoy1,decoy2[,ME],...>: 用誘餌掩蓋掃描,傳一些虛假的位址,避免目标發現掃描
-S <IP_Address>: 欺騙源位址
-e <iface>: 使用指定的接口
-g/--source-port <portnum>: 使用給定的端口号
--proxies <url1,[url2],...>: 通過HTTP/SOCKS4代理中繼連接配接
--data <hex string>: 向發送的資料包附加自定義負載
--data-string <string>: 向發送的資料包附加自定義ASCII字元串
--data-length <num>: 向發送的資料包附加随機資料
--ip-options <options>: 使用指定的ip選項發送資料包
--ttl <val>: 設定IP生存時間字段
--spoof-mac <mac address/prefix/vendor name>: 僞裝你的MAC位址
--badsum: 使用僞TCP/UDP/SCTP校驗和發送資料包           

這塊前面接觸得不多。

輸出内容

接下來就是輸出内容相關的參數:

-oN/-oX/-oS/-oG <file>: 分别指定級格式輸出掃描到給定檔案名。
-oA <basename>: 同時以三種主要格式輸出
-v:增加詳細程度(使用-vv或更進階别以獲得更大效果)
-d:提高調試級别(使用-dd或更多以獲得更大的效果)
--reason: 顯示端口處于特定狀态的原因
--open: 僅顯示打開(或可能打開)的端口
--packet-trace: 顯示發送和接收的所有資料包
--iflist: 列印主機接口和路由(用于調試)
--append-output: 附加到指定的輸出檔案,而不是删除指定的輸出檔案
--resume <filename>: 繼續中止掃描
--noninteractive: 通過鍵盤禁用運作時互動
--stylesheet <path/URL>: 将XML輸出轉換為HTML的XSL樣式表
--webxml: 來自Nmap.Org的參考樣式表具可移植性的XML
--no-stylesheet: 防止XSL樣式表與XML輸出關聯           

雜項

還有幾個不知道該歸類到哪裡的參數:

-6: 啟用IPv6掃描
-A: 啟用作業系統檢測、版本檢測、腳本掃描和跟蹤路由
--datadir <dirname>: 指定自定義Nmap資料檔案位置
--send-eth/--send-ip: 使用原始以太網幀或IP資料包發送
--privileged: 假設使用者擁有完全特權
--unprivileged: 假設使用者缺少原始socket權限
-V: 列印版本号
-h: 列印幫助說明           

繼續閱讀