# Nmap常用參數 ###### tags: `資安` nmap是一套可以對主機的port進行掃描的工具,可以針對網址或是一段ip範圍進行掃描 官方網頁 https://nmap.org/ 不一定要安裝,也可以下載portable版,如果執行有問題請見 [#故障排除](#故障排除) ## 使用範例 掃描該主機(可以是網址也可以是ip)有開的常見port以及作業系統和版本資訊 ``` nmap -v -A scanme.nmap.org ``` ## 說明 參數 說明 * -sT  TCP connect()掃描,這種方式會在目標主機的日誌中記錄大批連接請求和錯誤信息。 * -sS  TCP SYN(半公開)掃描,因為它沒有完成一個完整的 TCP 連接三次交握過程。 此方法向目標 Port 發送一個 SYN 封包,如果目標 Port 回應 SYN / ACK 封包則表示該 Port 處於打開狀態;若回應的是 RST / ACK 封包則表示該 Port 為關閉狀態。因為沒有回傳ACK封包導致三項交握未完成,故比較不會在目標系統留下掃描痕跡。 * -sF -sN Stealth FIN、Xmas Tree或 NULL秘密掃描(Stealth Scanning) 一些防火牆及 Packet 過濾裝置會在重要連接 Port 守護,半公開的 SYN 封包掃描會在此時會被截獲因此要有更秘密的進行掃描;而 FIN、Xmas、NULL 掃描方法則是關閉的連接埠會對你送出的探測資訊包返回一個 RST,而打開的連接埠則對其忽略不理可參考 [RFC793],其中 FIN 掃瞄使用空的 FIN 資訊包作為探針、Xmas tree 使用 FIN、URG、PUSH 標記、Null 掃描則不用任何標記,但微軟不支援此一標準,所以 -sF,-sX,-sN 的掃瞄顯示所有連接埠都是關閉的但一個 SYN(-sS) 掃瞄卻顯示有打開連接埠,那你就能大致推斷它是 WINDOWS 平台。 * -sP  ping ICMP 掃描 (Ping Sweeping) 若僅想了解網路上有哪些主機是開放的,可對指定的IP地址送出一個 ICMP 的 Echo Request 封包來偵測。但有些站台會把 ICMP 的 Echo Request 封包給關掉 (例如Microsoft.com)。在這種情況下可利用發送 TCP Ping 送一個 ACK 到目標網路上的每個主機。網路上的主機如果在線,則會返回一個 TCP RST 響應。使用帶有 Ping 掃描的 TCP Ping 選項,也就是 -PT 選項可以對網絡上指定 Port 進行掃描,它將可能通過目標邊界路由器甚至是防火牆。注意,被探測的主機上的目標 Port 無須打開,關鍵取決於是否在網路上。 * -sU  UDP掃描 原理為送出零位元組的 UDP 封包到目標主機的各連接埠,如果我們收到一個 ICMP port unreachable 無法到達的回應則可確定連接埠是關閉的,否則我們可認為該埠是打開的。 * -sA  (serviceAdvanced)這項高級的掃描方法通常用來穿過防火牆的規則集 * -sV  (serviceVersion)探測端口服務版本 * -Pn  (PingNo)掃描之前不需要用ping命令,有些防火牆禁止ping命令。可以使用此選項進行掃描 * -v  (view) 顯示掃描過程,會有很詳細的說明執行到哪個步驟 * -h  (help) 幫助選項,是最清楚的幫助文檔 * -p  (port) 指定端口,如“1-65535、1433、135、22、80”等 * -O  掃描使用的作業系統 通常一個入侵者可能對某個作業系統的漏洞很熟悉,能藉由漏洞很輕易地進入此作業系統的機器。一個常見的選項是 TCP / IP 上的指紋,帶有 -O 選項決定遠端作業系統的類型。這可以和一個 Port 掃描結合使用,但不能和 Ping 掃描結合使用。 ex. nmap -sS -O www.yourserver.com * -A  (All) 全面系統檢測、啟用腳本檢測、掃描等 * -oN/-oX/-oG (outputNormal、xml、grepable)將報告寫入文件,分別是正常、XML、grepable 三種格式 * -T4  針對TCP端口禁止動態掃描延遲超過10ms * -iL  讀取主機列表,例如,"-iL C:\ip.txt" 掃描指定IP所開放的端口: ``` nmap -sS -p 1-65535 -v scanme.nmap.org ``` 掃描C段存活主機:nmap -sP scanme.nmap.org/24 指定端口掃描:nmap -p 80,1433,22,1521 XXX.XXX.XXX.XXX 探測主機作業系統: ``` nmap -O -v scanme.nmap.org ``` 全面的系統探測: (Nmap默認掃描主機1000個高危端口) ``` nmap -v -A XXX.XXX.XXX.XXX ``` 探測指定網段:nmap XXX.XXX.XXX.XXX-XXX 穿透防火牆進行掃描:nmap -Pn -A XXX.XXX.XXX.XXX(XXX.XXX.XXX.XXX禁止用ping的) 使用腳本,掃描Web敏感目錄:nmap -p 80 --script=http-enum.nse XXX.XXX.XXX.XXX --- ## 故障排除 如果執行後出現以下訊息 WARNING: Could not import all necessary Npcap functions. You may need to upgrade to the latest version from https://npcap.org. Resorting to connect() mode -- Nmap may not function completely You requested a scan type which requires Npcap, but it seems to be missing. Npcap is available from https://npcap.org. The Npcap driver service must be started by an administrator before Npcap can be used. Running nmap.exe will open a UAC dialog where you can start the service if you have administrator privileges. QUITTING! 可能是安裝不完全,請安裝資料夾中的 npcap 和 vcreddist_x86 ,裝完後可順利執行 ## 參考來源 http://wiki.weithenn.org/cgi-bin/wiki.pl?Nmap-%E6%8E%83%E7%9E%84%E4%B8%BB%E6%A9%9F%E6%89%80%E9%96%8B%E5%95%9F%E7%9A%84_Port https://blog.csdn.net/thj_1995/article/details/107613039