1.主機探測
即主機發現(Host Discovery),用于發現目标主機是否線上(Alive,處于開啟狀态)。主機發現發現的原理與Ping指令類似,發送探測包到目标主機,如果收到回複,那麼說明目标主機是開啟的。
Nmap用于主機發現的一些用法:
-sL: List Scan (清單掃描),僅将指定的目标的IP列舉出來,不進行主機發現。
-sn: Ping Scan (Ping掃描),隻進行主機發現,不進行端口掃描。
-Pn: 将所有指定的主機視作開啟的,跳過主機發現的過程。
-n/-R: -n表示不進行DNS解析;-R表示總是進行DNS解析。
--traceroute: 追蹤每個路由節點
2.端口掃描
端口掃描是Nmap最基本最核心的功能,用于探測目标主機所開放的端口。
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK的方式來對目标主機進行掃描。
-sU: 指定使用UDP掃描方式确定目标主機的UDP端口狀況。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密掃描方式來協助探測對方的TCP端口狀态。
-p <port ranges>: 掃描指定的端口
-F: 快速模式,僅掃描TOP 100的端口
-iL 檔案目錄\1.txt: 掃描主機清單1.txt中的所有目标位址
-sP 192.168.0.100/24: 掃描目标位址所在C段的線上狀态
-sF -T4 192.168.0.100: FIN掃描,用于識别端口是否關閉,收到RST回複說明端口關閉,詳見下表
使用-sT參數可以更真實模拟TCP的三次握手請求,一般用時會更大些。而-sU則比較少用,而且跟linux核心有些不同,很多時候會等待很長時間。
端口的6種狀态:
狀态 | 含義 |
---|---|
open | 開放的,表示應用程式正在監聽該端口的連接配接,外部可以通路 |
filtered | 被過濾的,表示端口被防火牆或其他裝置阻止,不能通路 |
closed | 關閉的,表示目标主機未開啟改端口 |
unfiltered | 未被過濾的,無法确定所處狀态 |
open/filtered | 開放的或被過濾的,Nmap不能識别 |
closed/filrered | 關閉的或被過濾的,Nmap不能識别 |
常見服務對應端口号:
服務 | 端口号 |
---|---|
HTTP | 80 |
HTTPS | 443 |
FTP | 21 |
TOMCAT | 8080 |
遠端登入 | 3389 |
MySQL | 3306 |
Oracle資料庫 | 1521 |
WebLogic | 7001 |
3.版本檢測
-sV:指定讓Nmap驚醒版本檢測
-version-intensity <level>:指定版本檢測的強度(0-9),預設為7
-version-trace:顯示出詳細的版本偵測過程資訊
其他選項:
-A 同時打開作業系統指紋和版本檢測
-v 顯示備援,表示詳細輸出掃描情況
-T4:表示制定掃描過程使用的時序,共6個級别(0-5),等級越高,掃描越快,越容易被防火牆檢測
一次比較完整的Nmap掃描
namp -T4 -A -v ip