Nmap滲透測試指南
簡介:
Nmap(也就是Network Mapper,最早是Linux下的網絡掃描和嗅探工具包)是一個網絡連接端掃描軟件,用來掃描網上電腦開放的網絡連接端。確定哪些服務運行在哪些連接端,并且推斷計算機運行哪個操作系統(這是亦稱 fingerprinting)。
————百度百科
nmap最簡單用法:nmap IP地址或服務器名,如:nmap 192.168.1.1 , nmap www.wangluojianghu.com。
一、發現活躍主機
以192.168.1.0/24作為目標網段,說明如下:
- 使用ICMP協議發現活躍主機:nmap -PE 192.168.1.0/24
- 使用IP協議發現活躍主機:nmap -PO 192.168.1.0/24
- 使用TCP SYN發現活躍主機:nmap -PS 192.168.1.0/24
- 使用TCP ACK發現活躍主機:nmap -PA 192.168.1.0/24
- 使用UDP協議發現活躍主機:nmap -PU 192.168.1.0/24
- 使用SCTP協議發現活躍主機:nmap -PY 192.168.1.0/24
二、掃描端口
以192.168.1.0/24作為目標網段,說明如下:
1、端口分類
- 公認端口(well-known port):從0至1024,最常用端口,通常與協議綁定;
- 注冊端口(registered port):從1025至49151,這些端口已經注冊到服務協議上;
- 動態或私有端口(dynamic/private port):從49152至65535。
另外,端口還與協議相關;比如:UDP端口53通常用于DNS查詢、TCP端口53通常用于DNS記錄遷移。
2、端口狀態
- open:目標端口開啟。
- closed:目標端口關閉。
- filtered:通常被防火墻攔截,無法判斷目標端口開啟與否。
- unfiltered:目標端口可以訪問,但無法判斷開啟與否。
- open | filtered:無法確定端口是開啟還是filtered。
- closed | filtered:無法確定端口是關閉還是filtered。
3、端口掃描技術
(1)SYN掃描
- 命令:nmap -sS 192.168.1.0/24
- 說明:僅發送TCP連接中的SYN進行掃描
- 判斷:返回SYN/ACK應答,表示端口開啟;返回RST應答,表示端口關閉。
(2)Connect掃描
- 命令:nmap -sT 192.168.1.0/24
- 說明:完成TCP的三次握手階段進行掃
- 判斷:建立TCP連接、表示端口開啟,否則、表示端口關閉。
(3)UDP掃描
- 命令:nmap -sU 192.168.1.0/24
- 說明:使用UDP方式進行掃描。
- 判斷:無應答、表示端口開啟;返回“Port Unreachable(端口無法抵達)”信息,表示端口關閉。
(4)FIN掃描
- 命令:nmap -sF 192.168.1.0/24
- 說明:在TCP數據包中置FIN標志位、然后發送數據包、進行掃描。
- 判斷:無應答、表示端口開啟;返回RST應答,表示端口關閉。
(5)NULL掃描
- 命令:nmap -sN 192.168.1.0/24
- 說明:在TCP數據包中不包含任何標志、然后發送數據包、進行掃描。
- 判斷:無應答、表示端口開啟;返回RST應答,表示端口關閉。
(6)Xmas掃描
- 命令:nmap -sX 192.168.1.0/24
- 說明:在TCP數據包中置FIN、RST、PUSH標志位、然后發送數據包、進行掃描。
- 判斷:無應答、表示端口開啟;返回RST應答,表示端口關閉。
(7)idle掃描
- 命令:假設僵尸機是172.16.1.1,nmap -sI 172.16.1.1 192.168.1.0/24
- 說明:利用僵尸機進行跳轉完成對目標的掃描。
- 判斷:當僵尸機返回序列ID增加數量是“2”時、表示端口開啟;當僵尸機返回序列ID增加數量是“1”時,表示端口關閉。
- 詳細說明參見:nmap中的Idle scan - CSDN博客
(8)指定端口掃描
- 命令:nmap -p 端口號 192.168.1.0/24
- 示例:nmap -p 80 192.168.1.0/24 , nmap -p 80,443 192.168.1.0/24
(9)掃描常見的100個端口(即:Fast快速模式)
- 命令:nmap -F 192.168.1.0/24
(10)使用協議名字進行掃描
- 命令:nmap -p 協議名 192.168.1.0/24
- 示例:nmap -p http 192.168.1.0/24 , nmap -p http,smtp 192.168.1.0/24
(11)掃描常用端口
- 命令:nmap --top-ports 端口數量 192.168.1.0/24
- 示例:掃描常用的10個端口 nmap --top-ports 10 192.168.1.0/24
(12)掃描所有端口(效率差,不建議使用)
- 命令:nmap -p * 192.168.1.0/24
三、操作系統、服務判斷
1、判斷操作系統:nmap -O 192.168.1.0/24
2、判斷服務版本:nmap -sV 192.168.1.0/24
3、綜合判斷:nmap -A 192.168.1.0/24
四、使用腳本
- 命令:nmap --script 腳本名 192.168.1.0/24
- 示例:nmap --script http-methods 192.168.1.0/24
nmap -sS -p 1-65535 -T4 -v -n -Pn -oX E:\ip\result3.html -iL E:\ip\ip.txt
nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -oG E:\ip\result3.txt -iL E:\ip\ip.txt
五、保存結果
nmap -A 192.168.16.100 -p- -oN nmap1
六、nmap全端口批量掃描命令
nmap -sS -p 1-65535 -T4 -v -n -Pn -oX E:\ip\result3.html -iL E:\ip\ip.txt nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -oG E:\ip\result3.txt -iL E:\ip\ip.txt