Nmap掃描原理與用法
Nmap使用
Nmap是主機掃描工具,他的圖形化介面是Zenmap,分散式框架為Dnamp。
Nmap可以完成以下任務:
- 主機探測
- 埠掃描
- 版本檢測
- 系統檢測
- 支援探測指令碼的編寫
- Nmap在實際中應用場合如下:
- 通過對裝置或者防火牆的探測來審計它的安全性
- 探測目標主機所開放的埠
- 通過識別新的伺服器審計網路的安全性
- 探測網路上的主機
埠掃描工具,即藉助工具,試圖瞭解所掃描IP提供的計算機網路服務型別(網路服務均與埠號相關),從而發現攻擊弱點,常見服務對應埠號:
服務 | 埠號 |
---|---|
HTTP | 80 |
HTTPS | 443 |
Telnet | 23 |
FTP | 21 |
SSH(安全登入)、SCP(檔案傳輸)、埠重定向 | 22 |
SMTP | 25 |
POP3 | 110 |
WebLogic | 7001 |
TOMCAT | 8080 |
WIN2003遠端登入 | 3389 |
Oracle資料庫 | 1521 |
MS SQL* SEVER資料庫sever | 1433 |
MySQL 資料庫sever | 3306 |
Nmap進行完整全面的掃描
nmap –T4 –A –v
其中-A選項用於使用進攻性(Aggressive)方式掃描;-T4指定掃描過程使用的時序(Timing),總有6個級別(0-5),級別越高,掃描速度越快,但也容易被防火牆或IDS檢測並遮蔽掉,在網路通訊狀況良好的情況推薦使用T4;-v表示顯示冗餘(verbosity)資訊,在掃描過程中顯示掃描的細節,從而讓使用者瞭解當前的掃描狀態。
Nmap用於主機發現的一些用法
- -sL: List Scan 列表掃描,僅將指定的目標的IP列舉出來,不進行主機發現。
- -sn: Ping Scan 只進行主機發現,不進行埠掃描。
- -Pn: 將所有指定的主機視作開啟的,跳過主機發現的過程。
- -PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式進行發現。
-
-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 請求包發現主機。-PO[protocollist]: 使用IP協議包探測對方主機是否開啟。
- -n/-R: -n表示不進行DNS解析;-R表示總是進行DNS解析。
- --dns-servers <serv1[,serv2],...>: 指定DNS伺服器。
- --system-dns: 指定使用系統的DNS伺服器
- --traceroute: 追蹤每個路由節點
Nmap用於埠掃描的一些用法
1、掃描方式選項
- -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式來對目標主機進行掃描。
- -sU: 指定使用UDP掃描方式確定目標主機的UDP埠狀況。
- -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans祕密掃描方式來協助探測對方的TCP埠狀態。
- --scanflags <flags>: 定製TCP包的flags。
- -sI <zombiehost[:probeport]>: 指定使用idle scan方式來掃描目標主機(前提需要找到合適的zombie host)
- -sY/sZ: 使用SCTP INIT/COOKIE-ECHO來掃描SCTP協議埠的開放的情況。
- -sO: 使用IP protocol 掃描確定目標機支援的協議型別。
- -b <FTP relay host>: 使用FTP bounce scan掃描方式
2、 埠引數與掃描順序
- [plain] view plain copy
- -p <port ranges>: 掃描指定的埠
- 例項: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP協議、U代表UDP協議、S代表SCTP協議)
- -F: Fast mode – 快速模式,僅掃描TOP 100的埠
- -r: 不進行埠隨機打亂的操作(如無該引數,nmap會將要掃描的埠以隨機順序方式掃描,以讓nmap的掃描不易被對方防火牆檢測到)。
- --top-ports <number>:掃描開放概率最高的number個埠(nmap的作者曾經做過大規模地網際網路掃描,以此統計出網路上各種埠可能開放的概率。以此排列出最有可能開放埠的列表,具體可以參見檔案:nmap-services。預設情況下,nmap會掃描最有可能的1000個TCP埠)
- --port-ratio <ratio>: 掃描指定頻率以上的埠。與上述--top-ports類似,這裡以概率作為引數,讓概率大於--port-ratio的端口才被掃描。顯然引數必須在在0到1之間,具體範圍概率情況可以檢視nmap-services檔案。
3、 版本偵測的用法
- 版本偵測方面的命令列選項比較簡單。
- [plain] view plain copy
- -sV: 指定讓Nmap進行版本偵測
- --version-intensity <level>: 指定版本偵測強度(0-9),預設為7。數值越高,探測出的服務越準確,但是執行時間會比較長。
- --version-light: 指定使用輕量偵測方式 (intensity 2)
- --version-all: 嘗試使用所有的probes進行偵測 (intensity 9)
- --version-trace: 顯示出詳細的版本偵測過程資訊。
具體操作演示如下
1、用Nmap掃描特定IP地址
2、用-vv
對結果進行詳細輸出
3、自行設定埠範圍進行掃描
4、指定埠號進行掃描
5、對目標進行Ping掃描
格式:namp -sP <target ip>
6、路由跟蹤nmap -traceroute <target ip>
7、掃描一個段的主機線上狀況nmap -sP <network address > </CIDR>
8、作業系統探測nmap -O <target ip>
9、萬能開關掃描nmap -A <target ip>
10、其他掃描方式
SYN掃描:利用基本的SYN掃描方式測試其埠開放狀態namp -sS -T4 <target ip>
FIN掃描:利用FIN掃描方式探測防火牆狀態。FIN掃描方式用於識別埠是否關閉,收到RST回覆說明該埠關閉,否則說明是open或filtered狀態namp -sF -T4 <target ip>
ACK掃描:利用ACK掃描判斷埠是否被過濾。針對ACK探測包,為被過濾的埠(無論開啟或關閉)會回覆RST包namp -sA -T4 <target ip>
掃描前不進行Ping掃描測試nmap -Pn <target ip>
如果有一個ip地址列表,將這個儲存為一個txt檔案,和nmap在同意目錄下,掃描這個txt的所有主機,命令為nmap -iL target.txt
版本檢測掃描nmap -sV <target ip>
Nmap的幫助文件