【滲透測試LAB】NMAP Part1,基本指令,基於Kali 2021、Metasploitable環境執行

Peter Zhang
7 min readAug 17, 2021

--

NMAP(Network Mapper)是一款免費且開源的軟體,主要用於網路探測及安全稽核目的,同時也是眾多IT人員用於NMAP來進行網路管理、監控運行服務的主機、解析IP位址的主機、網路、運行的服務(應用程式名稱及版本)、運行的作業系統版本、封包過濾等作業,上述這些都是屬於NMAP的應用範疇。

本文基於Kali 2021版本環境,並採用系統管理者權限來實作NMAP常用的基本指令,而Kali 2021 已有內建NMAP,故也可於系統功能列直接執行。

本次環境共有3台VM,如圖1所示,且分別說明如下:

  1. Linux 的 Kali :擁有超過600個預裝的滲透測試程式,包括 Armitage(一個圖形化網路攻擊管理工具)、 Nmap(一個埠和服務掃描工具)、Wireshark、 Aircrack-ng, Burp Suite 和 OWASP ZAP 網路應用程式安全掃描器等(詳細介紹WIKI), 而本篇採用 2021年版本。
  2. Metasploitable:是一個以Linux系統的為基底的VM,本篇採用2.0版本
  3. Windows 10 :微軟所提供用於測試使用的版本。
圖1. 本篇實作環境示意圖

備註:如何建立上述提及的3台VM,這邊有參考文章,請點選!!

若上述環境都建立完成了,就進入正題拉~

本文將針對NMAP 基本操作指令,進行說明實作,並分別以多篇來講解。

此外特別聲明以下2點:

  1. 本篇所有IP皆來自於VM中所屬。
  2. 本篇NMAP採用7.91版本

開始NMAP

方法1

圖2 使用方法1

方法2

圖3 使用方法2

NMAP掃描方式如下:

nmap -掃描方式 主機位址或網址

1.以NMAP掃描特定IP

範例: nmap 10.0.2.5,結果如下圖4。

圖4. 掃描特定IP結果

2.以NMAP掃描主機(也可稱為網址、網站)

範例: nmap 主機,結果如下圖5。

圖5. 掃描特定主機結果

3.以NMAP掃描網域範圍

範例: nmap 10.0.2.0/24,這邊/24代表是使用C級網路,結果如下圖6及圖7。

備註:若對網域層級概念不熟,建議可以參閱CCNA教材提及的網域知識,會比較容易了解,或可先初步參閱此連結

圖6.網域掃描範圍1
圖7.網域掃描範圍2

4.以NMAP掃描特定port

一般來說,我們再針對滲透測試的掃描會先行檢測所有的1 ~ 65535 ports,以了解目前所啟用的ports清單,是否與既有開啟的清單一樣。

然而本篇這邊主要是用於基本指令練習,故此無須花費太多時間再掃描全部的ports。

範例1: nmap -p 80 10.0.2.5,結果如下圖8。

圖8. 針對掃描特定port

範例2: nmap -p 80–150 10.0.2.5,這邊掃描10.0.2.5的80 port 至150 port,結果如下圖9。

圖9. 掃描特定port

範例3: nmap -p- 10.0.2.5 ,”-p-”這代表一次1至65535 ports,結果如下圖10。

圖10. 一次掃描1-65535 ports結果

範例4: nmap -top 10 10.0.2.5 ,”-top”這代表以TCP掃描找到最常見或是說目前最流行使用的TCP ports,結果如下圖11。

若針對-top想了解更多,可以參考這篇文章

圖11. -top指令掃描結果

範例5: nmap -F 10 10.0.2.5 ,”-F”快速掃描常用的 ports,結果如下圖12。

圖12. -F 常用掃描結果

5.以NMAP掃描目標網段已運行的主機

範例: nmap -sn 10 10.0.2.0/24 ,”-sn”適用於大規模尋找目標網段已運行的主機,但這項指令不是主要用於搜尋ports的部分,結果如下圖13。

圖13. -sn 尋找指定網段中已運行的主機

6.調整NMAP掃描速度

一般而已,企業部屬的入侵檢測系統 (Intrusion-detection system, IDS)整合式的防火牆(又被稱資安防護管理服務)(Unified Threat Management, UTM)等,均有可能去影響到部分掃描結果的準確性,為避免上述提及的可能性,NMAP提供我們可以利用"-T 數值"指令方式來彈性調整掃描速度,已降低過快掃描的被IDS等設備或軟體阻擋,而在NMAP中可採用T0、T1來避免IDS的警示

範例:nmap -T數值,數值是需填入於"0"至"5"的範圍以利掃描者彈性調整。

•nmap insane (-T5) Scan是以等待0.3秒進行掃描,相當於兩個封包之間的5毫秒。

•nmap aggressive (-T4) Scan是以等待1.25秒進行掃描,相當於兩個封包之間的10毫秒。

nmap normal (-T3) Scan是預設NMAP的默認掃描。

•nmap polite (-T2) Scan是以兩個封包之間的0.4秒進行傳送掃描。

•nmap sneaky (-T1) Scan是以兩個封包之間的間隔15秒進行傳送掃描。

•nmap paranoid (-T0) Scan是以每5分鐘針對每個ports進行掃描。

範例1:nmap -T2,掃描單一指定IP共需花費415.84秒,如下圖14,這邊代表是本次測試的VM機器,並非是通用結果

圖14. 以T2執行掃描

範例2:nmap -T1,掃描單一指定IP的1至20ports,共需花費195.62秒,如下圖15,這邊代表是本次測試的VM機器,並非是通用結果

圖15. -T1掃描指定IP的1至20ports

範例3:nmap -T4,掃描單一指定IP共需花費0.11秒,如下圖16,這邊代表是本次測試的VM機器,並非是通用結果

圖16 以T4速度進行掃描

7.指令忘記如何使用?沒關係,內建跟google一樣多的說明

範例:nmap --help,注意這邊是兩個"-" "-"連在一起!

圖17.查詢各項指令用途說明

綜上所述,本篇為基本指令實作第一篇,而下表已彙整本篇基本指令,以供讀者快速檢視參考。

--

--

Peter Zhang

現任資安顧問,熱衷於資安治理、資安技術研究、Azure雲端安全技術、網路架構自動化、容器服務;曾任軟體業系統分析師,專注於資料庫規劃、API建置、使用者訪談、梳理業務流程、容器部屬與管理;跨國大型製造業資安管理師,專注於資安治理、DLP導入等資安技術應用,期望藉由分享自身學習與工作歷程經驗,讓我們在科技風潮下持續成長!