利用 Wireshark 觀察 nmap 傳輸封包,點選左下角【Menu】輸入【wireshark】點選鯊魚 ICON 開啟軟體。
看到 Wireshark 的介面,有許多介面卡可以選擇,我們選擇【any】表示聽任何介面卡。
不進行端口掃描nmap -sn 172.28.128.3
第一個要觀察的指令與參數是 -sn
代表無進行掃 port,只針對主機進行掃描,確認主機是否活著,可以發現有 TCP SYN 的封包,還有 TCP ACK 的封包。
TCP 三方交握,確認使用者端跟接收端建立連線的過程,
TCP 掃描nmap -sT [target]
可以看到 Wireshark 攔到的封包內容,如下:
TCP SYN 掃描
不會完成完整的三方交握,可以躲避下一些防禦偵測系統。nmap -sS [target]
因為執行 SYN 掃描需要用到底層的 raw 封包,因此需以最高權限執行。
sudo nmap -sS [target]
可以看到 Wireshark 攔到的封包內容,如下:
UDP 掃描nmap -sU [target]
常見在 UDP 執行的服務,針對 UDP 的服務也是常被駭客攻擊,因此我們可以只針對 UDP 的服務進行掃描:
服務名稱 | 端口 |
---|---|
DNS | 53 |
NTP | 123 |
SNMP | 161/162 |
可以看到 Wireshark 攔到的封包內容,發送大量的 UDP 封包,而 UDP 掃描會比較緩慢。
服務掃描nmap -sV [target]
針對 port、狀態與服務版本進行掃描,尋找是否有已知漏洞
查詢結果可以發現可能是一台 Ubuntu 的系統,且 SSH 服務使用 OpenSSH 6.6.1p1,在 80 port 上埋還有網站伺服器 Apache 2.4.7。
作業系統掃描sudo nmap -sV -O [target]
需要利用 sudo 執行,發現目標作業系統可能是 Linux 3.X 或 4.X。
主動掃描sudo nmap -A [target]
針對目標進行主動掃描 A 表示 Aggressive,預設執行作業系統掃描、版本掃描與 traceroute。
版本掃描
作業系統掃描
針對主動掃描回傳 Host script 結果與 traceroute
該掃描會產生大量的網路流量,可能會被目標主機或防火牆擋下,導致掃描停不下來。
若不是使用 sudo 將不會執行作業系統檢測
※ 想減少掃描時間可以參考
-sn
跳過端口掃描-F
快速掃描(100 port)、--top-ports
常用端口(自己指定數量)、-p
自己指定掃描端口-sC
、-sV
、-O
、--traceroute
、-A
掃描指定範圍sudo nmap -p 1-100 [target]
掃描特殊範圍sudo nmap -p 137-139,445 [target]
指定服務端口掃描sudo nmap -p netbios*,microsoft-ds [target]
指定 TCP 與 UDP 的掃瞄範圍sudo nmap -sU -sS -p U:137-139,T:137-139,445 [target]
一定要大寫表示「U」和「T」其代表 UDP 和 TCP
指定 TCP 與 UDP + 指定服務 的掃瞄範圍sudo nmap -sU -sS -p netbios*,microsoft-ds [target]
複習
參數 | 說明 |
---|---|
-sS | TCP |
-sU | UDP |
-p- | 所有的 port |
NSE 腳本更新sudo apt-get update
以管理者的身分執行 apt-get 進行更新套件內容
sudo apt-get install nmap
以管理者的身分執行 apt-get 進行安裝 nmap,若已經安裝過,則會進行更新。
sudo nmap --script-updatedb
以管理者的身分執行 nmap 進行 NSE 的更新
NSE 腳本路徑ls /usr/share/nmap/scripts
列出 /usr/share/nmap/scripts
路徑底下的檔案列表
ls -l /usr/share/nmap/scripts/http*
列出 /usr/share/nmap/scripts
路徑底下的開頭為 http 的檔案列表
NSE 查看說明nmap --script-help http-robots.txt
該腳本針對 http-robots.txt 進行說明,
可以看到這個腳本的分類是 default, discovery and safe
利用指定 NSE 進行掃描nmap --script=[scriptname] [target]
範例:nmap --script=http-robots.txt [target]