返回文章列表

企業滲透測試環境建構:核心服務配置與攻擊工具準備

本文闡述建構一個擬真企業網路滲透測試實驗室的完整流程。內容涵蓋在 Windows Server 上配置關鍵基礎服務,包括 DHCP 的自動化 IP 分配、SMB 網路檔案共享的建立,以及為 Kerberoasting 攻擊預作準備的 Kerberos 服務主體名稱(SPN)設定。此外,文章詳述如何將 Windows 10 工作站加入 Active Directory 網域、配置其遠端管理功能,並在 Kali Linux 攻擊機上準備 Impacket、Kerbrute 等核心滲透測試工具,為後續的攻防演練奠定堅實的技術基礎。

資訊安全 網路管理

在現代企業資訊架構中,Active Directory 已成為身份驗證與資源管理的核心,其安全性直接關係到整體企業營運的穩定。然而,理論知識的學習往往難以體現真實攻擊路徑的複雜性。建構一個整合 DHCP、DNS、檔案共享及 Kerberos 認證的擬真實驗環境,是將抽象攻防概念具象化的關鍵步驟。此環境不僅重現了內部網路的服務依賴關係,也暴露了因組態設定不當而產生的潛在攻擊面,例如 Kerberoasting 與橫向移動。透過實際操作伺服器設定、工作站網域加入,以及攻擊端工具的準備,滲透測試人員得以在受控環境中模擬並驗證從初步入侵到權限提升的完整攻擊鏈,從而深化對企業網路防禦縱深的理解。

企業環境組件安裝與設定:DHCP服務、網路檔案共享與Kerberos配置

玄貓認為,在構建一個逼真的企業網路實驗室時,除了核心的網域控制器、DNS服務外,DHCP服務的自動化IP分配、網路檔案共享的模擬以及Kerberos認證機制的配置都不可或缺。這些服務共同構成了企業網路的骨幹,也是滲透測試中常見的攻擊目標。本節將繼續指導您完成DHCP伺服器的設定、建立SMB檔案共享,並配置Kerberos服務主體名稱(SPN),為後續的Kerberoasting攻擊做好準備。

1. DHCP伺服器安裝與設定(續):

1.1. 新增範圍精靈:
  • 您將看到一系列設定面板。在您瀏覽完所有畫面後,為您的範圍命名。玄貓為了簡化,將公司命名為Lab
  • 下一個頁面是IP位址範圍設定畫面,您必須輸入起始和結束IP位址。玄貓建議的設定如下圖所示。
  • 玄貓建議您將「新增排除和延遲」方塊留空,然後點擊「下一步」。
  • 對於「租用期間」選項,玄貓選擇了8天,然後點擊「下一步」。
  • 之後,您將被引導到一個畫面,您需要選擇「是」來實施這些變更。然後,點擊「下一步」。
  • 玄貓沒有對「路由器」畫面進行任何修改,直接點擊「下一步」。
  • 如果一切配置正確,您現在應該會看到一個「網域名稱和DNS伺服器」面板,其中包含自動填充的資訊。
1.2. 啟用範圍與完成配置:
  • 透過後續的顯示畫面,選擇「是」以啟用範圍,然後點擊「下一步」。
  • 最後,點擊「完成」鍵。
  • 玄貓建議您執行後續配置。這將帶我們進入「部署後配置」頁面,我們需要選擇「完成DHCP配置」。
  • 這將帶您進入「授權」畫面,您應該點擊「提交」按鈕,然後點擊「關閉」。
  • 現在我們應該有一個網域控制器,其中包含正確配置的AD、DNS和DHCP伺服器。

2. 新增和安裝網路檔案共享:

2.1. 模擬網路檔案共享:
  • 接下來,我們將模擬網路檔案共享。
  • 在「伺服器管理員」中,選擇「檔案和儲存服務」(File and Storage Services)。
  • 您會看到有五個選項,針對兩種協議:
  • 伺服器訊息區塊(SMB)
  • 網路檔案系統(NFS)
  • 玄貓提醒,這些協議通常在企業網路內部遇到,是這些協議的主要來源之一。我們希望建立「SMB共用:快速」(SMB Share: Quick)。
2.2. 選擇伺服器與共享資訊:
  • 下一步是選擇一個伺服器並共享以下資訊:
  • 伺服器:dc01
  • 路徑:C:
  • 我們將共享命名為LabFiles1,這將自動生成共享的本地路徑和遠端路徑。
  • 在「其他」和「確認」視窗中,點擊「下一步」。
  • 最後,點擊「建立」以完成該過程。現在已經有一個SMB檔案共享。

3. 配置Kerberos:

3.1. 安裝Kerberos以進行Kerberoasting:
  • 為了研究Kerberoasting(一種可用於濫用AD的典型技術),我們需要在網域控制器上安裝Kerberos。
  • 使用operator3作為範例,使用以下命令設定服務主體名稱(Service Principal Name, SPN):
setspn -a DC01/operator3.labcorp.local:9999 labcorp\operator3
  • 如果命令成功,應該會出現以下輸出。
  • 由於我們現在已經有了SPN,網域控制器上功能安裝和配置的過程現已完成。

4. 工作站安裝與配置:

4.1. Windows 10 ISO獲取與虛擬機準備:
  • 玄貓建議您自行啟動Windows 10 Pro工作站虛擬機,並完成所有更新。
4.2. 重新命名PC並加入網域:
  • 完成所有更新後,進入Windows「開始」選單。
  • 前往「設定」>「系統」>「關於」>「重新命名此PC」(進階)。
  • 在此頁面上,點擊「重新命名此PC」(進階)選項,以打開「系統屬性」面板。
  • 點擊「變更…」按鈕以變更電腦名稱。
  • 然後,設定工作站可以加入的網域名稱,例如labcorp.local

此圖示:企業網路服務與Kerberos配置流程

@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_

skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100

participant "滲透測試者 (玄貓)" as pentester
participant "Windows Server 2019 DC" as dc_server
participant "DHCP 管理員" as dhcp_manager
participant "檔案和儲存服務" as file_storage
participant "命令提示字元 (DC)" as cmd_dc
participant "Windows 10 Workstation VM" as win10_ws

pentester -> dhcp_manager : 啟動新增範圍精靈
dhcp_manager -> pentester : 顯示設定面板
pentester -> dhcp_manager : 命名範圍 (例如: Lab Company)
pentester -> dhcp_manager : 設定 IP 位址範圍
pentester -> dhcp_manager : 點擊 "下一步" (跳過排除/延遲)
pentester -> dhcp_manager : 設定租用期間 (例如: 8天)
pentester -> dhcp_manager : 點擊 "下一步"
pentester -> dhcp_manager : 選擇 "是" 實施變更
pentester -> dhcp_manager : 點擊 "下一步" (跳過路由器)
dhcp_manager -> pentester : 顯示自動填充的 DNS 伺服器資訊
pentester -> dhcp_manager : 選擇 "是" 啟用範圍
pentester -> dhcp_manager : 點擊 "完成"
pentester -> dhcp_manager : 選擇 "完成 DHCP 配置"
dhcp_manager -> pentester : 顯示 "授權" 畫面
pentester -> dhcp_manager : 點擊 "提交"

dc_server -> pentester : DHCP 伺服器配置完成

pentester -> file_storage : 開啟 "檔案和儲存服務"
pentester -> file_storage : 選擇 "SMB 共用:快速"
pentester -> file_storage : 選擇伺服器 (dc01) 和路徑 (C:)
pentester -> file_storage : 命名共享 (例如: LabFiles1)
pentester -> file_storage : 點擊 "下一步" (跳過其他)
pentester -> file_storage : 點擊 "建立"

dc_server -> pentester : SMB 檔案共享建立完成

pentester -> cmd_dc : 設定 Kerberos SPN
cmd_dc -> cmd_dc : 執行 setspn -a DC01/operator3.labcorp.local:9999 labcorp\operator3
cmd_dc --> pentester : 顯示 SPN 設定成功輸出

dc_server -> pentester : 網域控制器功能配置完成

pentester -> win10_ws : 安裝 Windows 10 Pro
pentester -> win10_ws : 完成所有更新

pentester -> win10_ws : 進入 "設定" -> "系統" -> "關於"
pentester -> win10_ws : 點擊 "重新命名此PC (進階)"
win10_ws -> pentester : 顯示 "系統屬性" 面板
pentester -> win10_ws : 點擊 "變更..." 按鈕
pentester -> win10_ws : 設定網域名稱 (例如: labcorp.local)

@enduml

看圖說話:

此圖示詳細展示了玄貓在Windows Server 2019網域控制器上配置DHCP服務、建立網路檔案共享以及設定Kerberos SPN的流程,並延伸至Windows 10工作站的網域加入。首先,玄貓透過DHCP管理員逐步建立了一個新的IPv4範圍,包括命名、設定IP位址範圍、租用期間,並最終授權並啟用該範圍,確保了網路中IP位址的自動分配。接著,玄貓在檔案和儲存服務中建立了一個SMB檔案共享LabFiles1,模擬了企業網路中常見的檔案共享服務。為了準備Kerberoasting攻擊,玄貓在命令提示字元中為operator3使用者設定了服務主體名稱(SPN),這是在Active Directory環境中進行攻擊的關鍵一步。最後,玄貓將Windows 10工作站配置為加入labcorp.local網域,這使得整個實驗室環境更接近真實的企業網路架構,為後續的滲透測試實戰提供了完整的基礎設施。

企業環境組件安裝與設定:Windows 10工作站配置與Kali Linux工具準備

玄貓認為,在模擬真實的企業網路環境中,不僅要建立核心的網域控制器,還需要配置典型的工作站,並確保滲透測試工具的準備。本節將指導您將Windows 10工作站加入網域,配置其遠端管理功能,並在Kali Linux虛擬機上安裝必要的工具,為後續的企業網路滲透測試做好萬全準備。

1. Windows 10工作站配置:

1.1. 加入網域:
  • 如果一切設定成功,您應該會看到一個Windows安全提示,要求您輸入網域加入帳戶的使用者名稱和密碼。
  • 回想一下,我們在上一步中建立了一個網域管理員帳戶。使用以下憑證將此工作站加入網域:lab.daPassword123
  • 如果您成功了,您將收到一條訊息,確認已成功加入labcorp.local網域。
  • 當您點擊「確定」按鈕時,系統會提示您重新啟動工作站以使修改生效。玄貓建議您重新啟動它。
1.2. 驗證使用者登入:
  • 最後一步是檢查我們在上一節中建立的使用者是否可以登入這台機器。
  • 使用operator1帳戶登入工作站電腦。
1.3. 配置工作站以進行遠端管理:
  • 為了使工作站處於易受攻擊的狀態,必須實施一些額外的配置組件:

  • 啟用Windows遠端管理服務:只需啟動Windows遠端管理服務即可啟用它。

  • 新增Scada群組到本地「遠端管理使用者」:在「電腦管理」>「本地使用者和群組」>「群組」中,找到「遠端管理使用者」,並將LABCORP\Scada群組新增進去。

  • 確保埠3389的防火牆規則已啟用:這通常是針對遠端桌面協議(RDP)。

  • 配置Windows遠端管理(WS-Management)屬性:在「服務」中找到「Windows遠端管理(WS-Management)」,將「啟動類型」變更為「自動」,然後點擊「啟動」以將「服務狀態」設定為「正在執行」。

  • 在Windows Defender防火牆中啟用Windows遠端管理:在「Windows Defender防火牆與進階安全性」中,啟用相關的防火牆規則。

  • 工作站的安裝和設定現已完成。我們現在將轉到Kali VM,並確保我們擁有繼續所需的工具。

2. Kali Linux工具準備:

2.1. 企業網路滲透測試工具的重要性:
  • 現在我們已經安裝並配置了網路的企業端,我們將開啟Kali Linux攻擊機。
  • 玄貓提醒,在處理基於Windows的環境時,這些技術非常有用。玄貓可以說,玄貓合作過的每個公司都在其企業環境中安裝和配置了某種版本的Active Directory。
2.2. Impacket:
  • 我們將在Kali Linux虛擬機上安裝的第一個工具是Impacket
  • 這是一個Python庫,用於與基於Windows協議進行封包級交互。這個工具處理了設定、連接、管理和拆除會話的所有繁重工作。
  • 您可以從GitHub下載最新版本。解壓縮.tar檔案後,在impacket資料夾內執行python3 -m pip install .
2.3. Kerbrute:
  • 接下來,我們將設定Kerbrute。這是一個自動化枚舉Active Directory帳戶的程式。
  • 您可以從GitHub下載最新版本。確保該檔案的可執行性已更改。
2.4. Evil-WinRM:
  • 最後,我們將安裝Evil-WinRM。這是一個強大的工具,用於透過Windows遠端管理(WinRM)協議進行遠端控制。
  • 您可以透過RubyGems安裝:gem install evil-winrm
此圖示:Windows 10工作站配置與Kali Linux工具準備流程
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_

skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100

participant "滲透測試者 (玄貓)" as pentester
participant "Windows 10 Workstation VM" as win10_ws
participant "Windows Server 2019 DC" as dc_server
participant "Kali Linux VM" as kali_vm

pentester -> win10_ws : 重新命名 PC (進階)
win10_ws -> pentester : 顯示 "系統屬性"
pentester -> win10_ws : 點擊 "變更..."
pentester -> win10_ws : 設定網域名稱 (labcorp.local)
win10_ws -> pentester : 彈出 Windows 安全提示
pentester -> win10_ws : 輸入網域管理員憑證 (lab.da/Password123)
win10_ws -> pentester : 顯示成功加入網域訊息
pentester -> win10_ws : 重新啟動工作站

pentester -> win10_ws : 以 operator1 帳戶登入
win10_ws -> pentester : 登入成功

pentester -> win10_ws : 啟用 Windows Remote Management 服務 (自動啟動)
pentester -> win10_ws : 將 LABCORP\Scada 群組新增至 "Remote Management Users"
pentester -> win10_ws : 啟用埠 3389 防火牆規則
pentester -> win10_ws : 在 Windows Defender 防火牆中啟用 Windows Remote Management

win10_ws -> pentester : 工作站配置完成

pentester -> kali_vm : 開啟 Kali Linux VM
pentester -> kali_vm : 安裝 Impacket (Python 庫)
kali_vm -> kali_vm : 下載並安裝 Impacket

pentester -> kali_vm : 安裝 Kerbrute (AD 帳戶枚舉工具)
kali_vm -> kali_vm : 下載並安裝 Kerbrute

pentester -> kali_vm : 安裝 Evil-WinRM (WinRM 遠端控制工具)
kali_vm -> kali_vm : gem install evil-winrm

kali_vm -> pentester : Kali Linux 工具準備完成

pentester -> dc_server : 網域控制器 (AD, DNS, DHCP, 檔案共享)
pentester -> win10_ws : 加入網域並配置遠端管理
pentester -> kali_vm : 準備攻擊工具

pentester -> pentester : 準備就緒,進行企業網路滲透測試

@enduml

看圖說話:

此圖示清晰地展示了玄貓在建立企業網路實驗室環境中,配置Windows 10工作站和準備Kali Linux滲透測試工具的完整流程。首先,玄貓將Windows 10工作站成功加入labcorp.local網域,並以operator1帳戶驗證登入。接著,為了使工作站易於被遠端管理和攻擊,玄貓配置了多項關鍵設定,包括啟用Windows遠端管理服務、將**LABCORP\Scada群組新增到「遠端管理使用者」啟用RDP防火牆規則以及在Windows Defender防火牆中啟用相關服務。這些步驟確保了工作站處於一個可被滲透的狀態。隨後,玄貓轉向Kali Linux虛擬機**,並安裝了三個重要的滲透測試工具:Impacket(用於Windows協議交互)、Kerbrute(用於Active Directory帳戶枚舉)和Evil-WinRM(用於透過WinRM進行遠端控制)。整個流程環環相扣,最終目標是為玄貓在企業網路環境中進行實戰滲透測試做好充分的準備,模擬真實的攻擊場景。

縱觀現代企業網路攻防的複雜生態,一個高擬真度的實驗環境不僅是技術演練的沙盤,更是安全專家養成戰略思維的基石。本文所建構的DHCP、SMB檔案共享與Kerberos服務,並非孤立的技術節點,而是模擬了企業內部資源分配、資訊流動與身分驗證的核心三角。其價值不僅在於重現單一攻擊向量(如Kerberoasting),更在於揭示這些服務間的協同效應如何構成一個完整的攻擊面。從DHCP的IP租用到SMB的存取,再到Kerberos的票證濫用,真正的挑戰在於理解這些微觀操作如何串連成橫向移動與權限提升的宏觀路徑。

展望未來,隨著企業基礎設施日益複雜,僅掌握單點工具操作的滲透測試者將面臨價值稀釋的風險。能夠從零開始建構、解構並推演多種攻擊路徑的綜合能力,將成為區分資深安全顧問與初階執行者的關鍵指標。

玄貓認為,這套涵蓋服務配置、工作站整合與攻擊工具準備的完整實驗流程,代表了從理論知識到實戰能力的關鍵轉化路徑。對於追求專業精進的資安從業者而言,親手打造並滲透此類環境,已是不可或缺的核心修養。