Nmap參數
參數分類
1. 目標說明 2. 主機發現 3. 端口掃描 4. 端口說明和掃描順序 5. 服務與版本探測6. 腳本掃描 7. 操作系統探測 8. 時間和新能 9. 防火牆/IDS規避和欺騙 10. 輸出選項
詳細說明
目標說明
TARGET SPECIFICATION
-iL : 從列表中輸入 從主機地址列表中導入掃描地址 可以從主機的文件中導入掃描列表
-iR : 隨機選擇目標,hostnum表示目標數目,0意味着永無休止的掃描
--exclude 排除主機/網絡
--excludefifile 排除文件中的列表
主機發現
HOST DISCOVERY
-sL 掃描列表,僅將指定的目標IP列舉出來,不進行主機發現
-sn 跟-sP 一樣,只利用ping掃描進行主機發現,不掃描目標主機的端口,只掃描是否在線 不掃描端口
-Pn 將所有指定的主機視爲已開啓狀態,跳過主機發現過程
-PS [portlist]:TCP SYN Ping,發送一個設置了SYN標誌位的空TCP報文
-PE; -PP; -PM:ICMP Ping Types,發送ICMP Type 8 (回聲請求)報文,期待從運行的主機得到一個type 0 (回聲相應)報文n:不用域名解析,加快掃描速度
-R:爲所有目標IP地址作反向域名解析
--system-dns:使用系統域名解析器,一般不使用該選項,因爲比較慢
端口掃描
Nmap將目標主機端口分成6種狀態:
- open(開放)
- closed(關閉)
- fifiltered(被過濾的)
- unfifiltered(未被過濾) 可訪問但不確定開放情況
- open|fifiltered(開放或被過濾)無法確定端口是開放的還是被過濾的
- closed|fifiltered(關閉或被過濾)無法確認端口是關閉的還是被過濾的
Nmap產生結果是基於機器的響應報文,而這些主機可能是不可信任的,會產生一些迷惑或者誤導Nmap的報文
常用命令
-sS TCP SYN掃描,半開放狀態,掃描速度快隱蔽性好(不完成TCP連接),能夠明確區分端口狀態
-sT TCP連接掃描,容易產生記錄,效率低
-sA TCP ACK掃描 只設置ACK標誌位,區別被過濾與未被過濾
-sU UDP服務掃描
–sO:IP協議掃描,可以確定目標機支持哪些IP協議(TCP, ICMP, IGMP)
端口說明和掃描順序
PORT SPECIFICATION AND SCAN ORDER
–p :只掃描指定的端口,單個端口和用連字符表示的端口範圍都可以;
當既掃描TCP端口又掃描UDP端口時,您可以通過在端口號前加上T: 或者U:指定協議。協議限定符一直有效您直到指定另一個。例如,參數 -p U:53,111,137,T:21-25,80,139,8080 將掃描UDP 端口53,111,和137,同時掃描列出的TCP端口。注意,要既掃描 UDP又掃描TCP,您必須指定 -sU ,以及至少一個TCP掃描類型(如 -sS,-sF,或者 -sT)
–p :掃描指定的端口名稱,如nmap–p smtp,http 10.10.1.44
–p U:[UDP ports],T:[TCP ports]:對指定的端口進行指定協議的掃描
–F:快速掃描(僅掃描100個最常用的端口),nmap-services文件指定想要掃描的端口;可以用—datadir選項指定自己的小小nmap-services文件
–top-ports :掃描前number個端口
–r:不要按隨機順序掃描端口,默認情況下按隨機(常用的端口前移)
服務與版本探測
SERVICE/VERSION DETECTION
nmap-services是一個包含服務的數據庫,Nmap通過查詢該數據庫可以報告那些端口可能對應於什麼服務器,但不一定正確。在用某種掃描方法發現TCP/UDP端口後,版本探測會詢問這些端口,確定到底什麼服務正在運行;
nmap-service-probes數據庫包含查詢不同服務的探測報文和解析識別響應的匹配表達式;當Nmap從某個服務收到響應,但不能在數據庫中找到匹配時,就打印出一個fifingerprint和一個URL給您提交。
參數含義:
–sV:打開版本探測
–allports:不爲版本探測排除任何端口,默認情況下跳過9100端口
–version-intensity:設置版本掃描強度,範圍爲0-9,默認是7,強度越高,時間越長,服務越可能被正確識別
–version-light:是—version-intensity2的別名
–version-all:是—version-intensity9的別名
–version-trace:跟蹤版本掃描活動,打印出詳細的關於正在進行的掃描的調試信息
–sR:RPC掃描,對所有被發現開放的TCP/UDP端口執行SunRPC程序NULL命令,來試圖 確定它們是否RPC端口,如果是, 是什麼程序和版本號
腳本掃描
SCRIPT SCAN
操作系統探測
OS DETECTION
–O:啓用操作系統檢測;-A可以同時啓用操作系統檢測和版本檢測
–osscan-limit:針對指定的目標進行操作系統檢測
–osscan-guess|--fuzzy:當Nmap無法確定所檢測的操作系統時,會儘可能地提供最相近的匹配
時間和性能
TIMING AND PERFORMANCE
–min-hostgroup ;--max-hostgroup :調整並行掃描組的大小,用於保持組的大小在一個指定的範圍之內;
Nmap具有並行掃描多主機端口或版本的能力,Nmap將多個目標IP地址空間分成組,然後在同一時間對一個組進行掃描。通常,大的組更有效。缺點是隻有當整個組掃描結束後纔會提供主機的掃描結果
–min-parallelism; --max-parallelism :調整探測報文的並行度,用於控制主機組的探測報文數量;默認狀態下, Nmap基於網絡性能計算一個理想的並行度,這個值經常改變
防火牆/IDS規避和欺騙
FIREWALL/IDS EVASION AND SPOOFING
–f(報文分段); --mtu(使用指定的MTU):將TCP頭分段在幾個包中,使得包過濾器、 IDS以及其它工具的檢測更加困難
–D :使用誘餌隱蔽掃描;使用逗號分隔每個誘餌主機,也可用自己的真實IP作爲誘餌,這時可使用 ME選項說明。如果在第6個位置或更後的位置使用ME選項,一些常用端口掃描檢測器(如Solar Designer's excellent scanlogd)就不會報告 這個真實IP。如果不使用ME選項,Nmap 將真實IP放在一個隨機的位置
–S <IP_Address>:源地址哄騙,說明所需發送包的接口IP地址
–e :使用指定的接口
–source-port; -g :源端口哄騙;很多產品本身會有這類 不安全的隱患,甚至是微軟的產品。Windows 2000
和Windows XP中包含的IPsec過濾器也包含了一些隱含規則,允許所有來自88端口(Kerberos)的TCP和UDP數據流。另一個常見的例子是Zone Alarm個人防火牆到2.1.25版本仍然允許源端口53(DNS)或 67(DHCP)的UDP包進入。
–data-length :發送報文時附加隨機數據
–ttl :設置IPtime-to-live域
–randomize-hosts:對目標主機的順序隨機排列
輸出選項
OUTPUT
–oN :標準輸出
–oX :XML輸出寫入指定的文件
–oS :腳本小子輸出,類似於交互工具輸出
–oG :Grep輸出
–oA :輸出至所有格式
–v:提高輸出信息的詳細度
–d [level]:提高或設置調試級別,9最高
–packet-trace:跟蹤發送和接收的報文
–iflflist:輸出檢測到的接口列表和系統路由
–append-output:表示在輸出文件中添加,而不是覆蓋原文件
–resume :繼續中斷的掃描,
–stylesheet :設置XSL樣式表,轉換XML輸出;Web瀏覽器中打開Nmap的XML輸出時,將會在文件系統中尋找nmap.xsl文件,並使用它輸出結果
–no-stylesheet:忽略XML生命的XSL樣式表