# 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