返回文章列表

Windows Server 2019 網域控制器安裝與進階設定指南

本篇文章詳細闡述在 Windows Server 2019 環境中建構企業級網域控制器的完整流程。內容涵蓋 Active Directory 網域服務、DNS 及 DHCP 伺服器角色的安裝與設定。從伺服器角色新增、提升為網域控制器,到建立組織單位與使用者帳戶,並深入探討 DNS 反向查詢區域與 DHCP 授權等進階配置。文章特別提及停用 Kerberos 預先驗證的實務操作,旨在為模擬真實工業控制系統(ICS)的滲透測試實驗室,奠定穩固的身份驗證與網路服務基礎。

資訊安全 系統管理

在現代企業網路架構中,Active Directory 網域控制器扮演著身份與存取管理的核心樞紐。它不僅是集中化管理使用者帳戶、群組原則與電腦物件的基礎平台,更定義了整個組織的信任邊界與安全基線。透過整合 DNS 進行精確的名稱解析,並藉由 DHCP 實現 IP 位址的自動化配置,網域控制器建構了一個穩定且高效的運作環境。從資訊安全的角度來看,此一基礎設施同時也是攻擊者在橫向移動與權限提升過程中的主要目標。因此,深入理解其安裝、設定與後續維護的理論與實務,對於建立穩固的防禦體系或模擬真實的攻擊情境,皆具有不可或缺的戰略價值。

企業環境組件安裝與設定:Windows 2019網域控制器

玄貓認為,在模擬真實的工業控制系統(ICS)環境時,整合企業級的IT基礎設施至關重要。這包括建立一個功能完善的網域控制器(Domain Controller, DC),以模擬企業網路的身份驗證、授權和資源管理。本節將詳細指導如何安裝和設定一個帶有Active Directory、DNS和DHCP服務的Windows Server 2019網域控制器,並將Windows 10工作站加入該網域。

1. 實驗室網路佈局概覽:

1.1. 現有實驗室佈局回顧:
  • 為了喚醒您的記憶,我們的實驗室目前應該類似於下圖所示的佈局,包含了PLC、SCADA、Kali Linux、Ubuntu和Windows 7虛擬機,分佈在不同的子網路中。
1.2. 企業實驗室新增組件:
  • 當您完成網域控制器和工作站的設定後,您的網路應該會像下圖所示,新增了Windows 2019 DC和Windows 10工作站,它們將構成企業網路的部分。

2. 網域控制器安裝與設定:

2.1. ISO獲取與虛擬機準備:
  • 玄貓假設您已經能夠啟動ISO並將網域控制器引導到Windows Update的步驟。
  • 玄貓建議您回到第一章,回顧如何將ISO檔案導入ESXi伺服器的資料儲存區。
2.2. 網路介面設定:
  • 首先,我們將停用VM網路介面,並為選定的DNS提供一個靜態IP位址,例如127.0.0.1。玄貓提醒,這裡的127.0.0.1通常用於本機迴路,在實際環境中應設定為DC自身的靜態IP。
2.3. 變更機器名稱:
  • 接下來,我們將修改機器的名稱。玄貓建議您為其設定一個有意義的名稱,例如DC01
  • 機器將需要重新啟動以使名稱變更生效。重新啟動後,進入「伺服器管理員」(Server Manager)面板。
2.4. 新增角色與功能:
  • 在「伺服器管理員」中,選擇「新增角色及功能」(Add roles and features)。
  • 您將看到「選取安裝類型」頁面,直接點擊「下一步」(Next)。
  • 接著,您會進入「選取目的地伺服器」頁面,請仔細檢查並確保您選擇了主要伺服器,然後點擊「下一步」。
2.5. 選取伺服器角色:
  • 您將看到一個角色列表供選擇。我們需要選擇Active Directory 網域服務(AD DS)DHCP 伺服器DNS 伺服器
  • 每次選擇一個選項後,都會彈出一個視窗,提供有關您將安裝的角色的資訊。點擊「新增功能」(Add feature)按鈕以確保每個角色都被選中。
  • 之後會出現「選取功能」視窗。玄貓提醒,除了那些預設選中的功能外,無需選擇任何其他功能,直接點擊「下一步」。
2.6. 確認安裝選項:
  • 透過AD DS、DHCP伺服器和DNS伺服器的資訊顯示,點擊「下一步」按鈕。
  • 您將進入「確認安裝選項」畫面,點擊「安裝」(Install)按鈕繼續。
2.7. 提升為網域控制器:
  • 安裝完成後,您將進入「安裝進度」畫面,選擇「將此伺服器提升為網域控制器」(Promote this server to a domain controller)。
  • 在這裡,您將選擇建立一個新樹系(new forest)的選項。然後點擊「下一步」按鈕,並將網域名稱變更為您希望的名稱,例如blackcat.local
2.8. 網域控制器選項:
  • 接下來是「網域控制器選項」部分。保持其他所有設定不變,並為「目錄服務還原模式」(Directory Services Restore Mode)建立一個密碼。
2.9. DNS選項與額外選項:
  • 在不選擇「建立DNS委派」的情況下,點擊「下一步」通過DNS選項。
  • 然後會提供「其他選項」。在此視窗中,將為您生成NetBIOS網域名稱。
  • 在「路徑」畫面中,點擊「下一步」,然後再次點擊「下一步」。
  • 在「檢閱選項」頁面,點擊「下一步」。

此圖示:Windows Server 2019網域控制器安裝流程

@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 minClassWidth 100
skinparam defaultFontSize 16

participant "滲透測試者 (玄貓)" as pentester
participant "Windows Server 2019 VM" as server_vm
participant "伺服器管理員" as server_manager
participant "AD DS 安裝精靈" as ad_wizard

pentester -> server_vm : 啟動 ISO 並安裝 OS
server_vm -> pentester : 進入 Windows Update 階段

pentester -> server_vm : 設定靜態 IP (127.0.0.1 for DNS)
pentester -> server_vm : 變更機器名稱 (例如: DC01)
server_vm -> server_vm : 重新啟動

pentester -> server_manager : 開啟伺服器管理員
pentester -> server_manager : 選擇 "新增角色及功能"
server_manager -> ad_wizard : 啟動安裝精靈

ad_wizard -> pentester : 顯示 "選取安裝類型"
pentester -> ad_wizard : 點擊 "下一步"

ad_wizard -> pentester : 顯示 "選取目的地伺服器"
pentester -> ad_wizard : 確認伺服器並點擊 "下一步"

ad_wizard -> pentester : 顯示 "選取伺服器角色"
pentester -> ad_wizard : 勾選 "Active Directory 網域服務"
pentester -> ad_wizard : 勾選 "DHCP 伺服器"
pentester -> ad_wizard : 勾選 "DNS 伺服器"
ad_wizard -> pentester : 彈出 "新增功能" 提示
pentester -> ad_wizard : 點擊 "新增功能" (對每個角色)

ad_wizard -> pentester : 顯示 "選取功能"
pentester -> ad_wizard : 點擊 "下一步" (不額外選取)

ad_wizard -> pentester : 顯示 AD DS, DHCP, DNS 資訊
pentester -> ad_wizard : 點擊 "下一步"

ad_wizard -> pentester : 顯示 "確認安裝選項"
pentester -> ad_wizard : 點擊 "安裝"

server_vm -> server_vm : 安裝角色服務
ad_wizard -> pentester : 顯示 "安裝進度"

pentester -> ad_wizard : 選擇 "將此伺服器提升為網域控制器"

ad_wizard -> pentester : 顯示 "部署組態"
pentester -> ad_wizard : 選擇 "新增樹系"
pentester -> ad_wizard : 設定根網域名稱 (例如: blackcat.local)
pentester -> ad_wizard : 點擊 "下一步"

ad_wizard -> pentester : 顯示 "網域控制器選項"
pentester -> ad_wizard : 設定 DSRM 密碼
pentester -> ad_wizard : 點擊 "下一步"

ad_wizard -> pentester : 顯示 DNS 選項
pentester -> ad_wizard : 點擊 "下一步" (不選建立 DNS 委派)

ad_wizard -> pentester : 顯示 "其他選項" (NetBIOS 名稱)
pentester -> ad_wizard : 點擊 "下一步"

ad_wizard -> pentester : 顯示 "路徑"
pentester -> ad_wizard : 點擊 "下一步"

ad_wizard -> pentester : 顯示 "檢閱選項"
pentester -> ad_wizard : 點擊 "下一步"

@enduml

看圖說話:

此圖示詳細描繪了玄貓在Windows Server 2019虛擬機上安裝和設定網域控制器的逐步流程。整個過程從玄貓啟動ISO並安裝作業系統開始,隨後進行基礎的網路介面設定(包括將DNS設定為127.0.0.1)和機器名稱變更。完成這些準備後,玄貓透過伺服器管理員啟動新增角色及功能精靈,依序選擇並安裝Active Directory 網域服務(AD DS)DHCP 伺服器DNS 伺服器這三個核心角色。安裝完成後,最關鍵的一步是將此伺服器提升為網域控制器,這涉及到建立一個新的樹系並設定根網域名稱(例如blackcat.local),同時設定目錄服務還原模式(DSRM)密碼。圖示清晰地展示了每個步驟的交互和選擇,為玄貓建立企業級實驗室環境提供了明確的指引,這對於模擬真實的ICS滲透測試場景至關重要。

企業環境組件安裝與設定:網域控制器後續配置與DNS/DHCP服務

玄貓認為,一個完整的企業網路環境不僅需要網域控制器來管理身份和資源,還需要DNS(網域名稱系統)和DHCP(動態主機配置協議)服務來實現網路通訊和IP位址的自動分配。本節將繼續指導您完成網域控制器的最終配置,包括建立網域管理員帳戶和操作員帳戶,並詳細說明如何安裝和設定DNS和DHCP伺服器。

1. 網域控制器最終配置:

1.1. 先決條件檢查與安裝完成:
  • 在您點擊「下一步」後,系統將執行先決條件檢查。完成後,點擊「安裝」。
  • 安裝完成後,您將被登出,伺服器會重新啟動。系統重新啟動後,您會看到現在已經有了一個LABCORP網域。
1.2. 新增網域管理員帳戶:
  • 現在AD已部署完成,我們需要迅速新增一個網域管理員帳戶,以便繼續進行後續的伺服器設定。
  • 在「Active Directory 使用者和電腦」(Active Directory Users and Computers)中新增一個使用者。
  • 玄貓使用了lab.da作為憑證,密碼為Password123,並將此新使用者設定為「Domain Admins」群組的成員。
1.3. 建立組織單位與群組:
  • 您將繼續建立組織單位(Organizational Unit, OU),例如LabGroups
  • 然後,在LabGroups組織單位內,您將建立一個名為Scada的群組。
1.4. 新增操作員帳戶:
  • 現在您需要在LabUsers組織單位中新增三個額外的使用者:
  • operator1/Password1
  • operator2/Password2
  • operator3/Password3
  • 玄貓建議將密碼設定為Password1Password2等,並將他們加入Scada群組。
1.5. 停用Kerberos預先驗證:
  • 在建立operator2帳戶時,我們將修改一個特定參數。
  • 從「使用者和電腦」部分選擇operator2,然後進入「帳戶」分頁。
  • 在「帳戶選項」下,勾選「不要求Kerberos預先驗證」(Do not require Kerberos preauthentication)的方框。
  • 玄貓提醒,這是一種針對Kerberos暴力破解的防禦措施。如果它被禁用,我們可以記錄那些沒有使用此功能的用戶的哈希值。

2. DNS伺服器安裝與設定:

2.1. 登入與開啟DNS管理員:
  • Kerberos預先驗證停用後,我們將繼續安裝和設定DNS伺服器。
  • 登出本地管理員帳戶,並以lab.da帳戶重新登入伺服器。
  • 從「伺服器管理員」面板左側的選單中選擇「DNS」。這將顯示可指定的DNS伺服器列表。
  • 右鍵點擊DC01伺服器以選取它。這將提供一個上下文選單,我們可以在其中選擇「DNS管理員」。
2.2. 建立反向查詢區域:
  • 一個視窗將出現,顯示您可以建立區域的伺服器。在「反向查詢區域」(Reverse Lookup Zones)資料夾下,我們將建立一個新區域。
  • 選擇「主要區域」(Primary zone),然後點擊「下一步」。
  • 接著,在labcorp.local網域下,我們希望選擇在所有網域控制器上複製的選項。
  • 再次點擊「下一步」,選擇「IPv4反向查詢區域」選項。
  • 經過這兩個頁面後,您將進入一個畫面,您可以在其中指定「反向查詢區域名稱」:網路ID。
2.3. 動態更新與資源回收:
  • 在「動態更新」畫面,點擊「下一步」。現在將建立並運行一個反向區域。
  • 玄貓提醒,現在我們可以設定資源回收。右鍵點擊區域,選擇「屬性」,然後點擊「時效/回收」(Aging/Scavenging)。
  • 勾選「回收過時資源記錄」(Scavenge outdated resource records)選項,然後應用相關設定。
  • 完成時效/回收屬性設定後,您就完成了DNS伺服器的設定。

3. DHCP伺服器安裝與設定:

3.1. 開啟DHCP管理員:
  • DNS伺服器配置現已完成。我們現在將繼續新增和安裝DHCP伺服器。
  • 在「伺服器管理員」中,選擇「工具」(Tools),然後選擇「DHCP」。這將開啟DHCP管理員。
3.2. 授權DHCP伺服器:
  • 右鍵點擊dc01.labcorp.local伺服器,從上下文選單中選擇「授權」(Authorize)。
3.3. 建立新的IPv4範圍:
  • 授權後,我們將建立一個新的IPv4範圍。右鍵點擊「IPv4」圖示,選擇「新增範圍…」(New Scope…)。

此圖示:網域控制器後續配置與DNS/DHCP服務設定流程

@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 "Active Directory 使用者和電腦" as ad_uc
participant "DNS 管理員" as dns_manager
participant "DHCP 管理員" as dhcp_manager

pentester -> dc_server : 完成 AD DS 安裝並重啟
dc_server -> pentester : 顯示 LABCORP 網域

pentester -> ad_uc : 新增網域管理員 (lab.da/Password123)
pentester -> ad_uc : 將 lab.da 加入 Domain Admins 群組

pentester -> ad_uc : 建立組織單位 (LabGroups, LabUsers)
pentester -> ad_uc : 在 LabGroups 中建立群組 (Scada)
pentester -> ad_uc : 在 LabUsers 中新增使用者 (operator1, operator2, operator3)
pentester -> ad_uc : 將 operator1, operator2, operator3 加入 Scada 群組

pentester -> ad_uc : 修改 operator2 帳戶屬性
pentester -> ad_uc : 勾選 "不要求 Kerberos 預先驗證"

pentester -> dc_server : 登出本地管理員,以 lab.da 登入

pentester -> dc_server : 開啟 DNS 管理員
dc_server -> dns_manager : 顯示 DNS 伺服器列表
pentester -> dns_manager : 右鍵 DC01 伺服器,選擇 "DNS 管理員"

pentester -> dns_manager : 在 "反向查詢區域" 下建立新區域
pentester -> dns_manager : 設定為 "主要區域"
pentester -> dns_manager : 選擇在所有 DC 上複製
pentester -> dns_manager : 選擇 "IPv4 反向查詢區域"
pentester -> dns_manager : 指定網路 ID 作為區域名稱
pentester -> dns_manager : 啟用 "動態更新"

pentester -> dns_manager : 配置區域時效/回收屬性
pentester -> dns_manager : 勾選 "回收過時資源記錄"
dns_manager -> pentester : DNS 伺服器配置完成

pentester -> dc_server : 開啟 DHCP 管理員
dc_server -> dhcp_manager : 顯示 DHCP 伺服器列表
pentester -> dhcp_manager : 右鍵 dc01.labcorp.local 伺服器,選擇 "授權"

pentester -> dhcp_manager : 右鍵 "IPv4" 圖示,選擇 "新增範圍..."
dhcp_manager -> pentester : 啟動新增範圍精靈

@enduml

看圖說話:

此圖示詳細闡述了玄貓在Windows Server 2019網域控制器上完成後續配置以及DNS和DHCP服務設定的流程。首先,在AD DS安裝完成後,玄貓創建了一個網域管理員帳戶lab.da,並將其加入Domain Admins群組。接著,玄貓建立了組織單位LabGroupsLabUsers,並在其中新增了Scada群組和operator1operator2operator3等使用者帳戶。特別值得注意的是,玄貓為operator2帳戶停用了Kerberos預先驗證,這是在滲透測試中常用來獲取哈希值的技術。隨後,玄貓以lab.da身份登入,並依序配置了DNS伺服器,包括建立反向查詢區域、設定動態更新和資源回收。最後,玄貓啟動並授權了DHCP伺服器,並準備建立新的IPv4範圍。整個流程環環相扣,為玄貓的ICS實驗室構建了一個功能齊全且具備真實企業網路特性的基礎環境,為後續的滲透測試實戰奠定了堅實基礎。

縱觀現代工控系統與企業IT網路日益融合的資安挑戰,單純的OT環境模擬已不足以反映真實威脅。此次網域控制器的建構,其價值不僅在於成功安裝AD、DNS與DHCP服務,更在於透過建立分層權限(如網域管理員與操作員)及刻意配置的安全弱點(如停用Kerberos預先驗證),精準複製了企業環境中常見的攻擊切入點與權限提升路徑。相較於傳統IT建置教學,此流程的每一步都隱含著後續滲透測試的戰術考量,將基礎設施的搭建轉化為攻擊劇本的前置作業。

隨著此企業IT核心的落成,未來的焦點將轉移至IT與OT邊界的互動與跨網段攻擊。我們預見,以此為基礎,探索從企業網域橫向移動至SCADA系統,或利用網域憑證滲透工控網路,將成為下一階段演練的核心。

玄貓認為,此基礎設施的完整建構,是從單點漏洞掃描邁向真實攻擊路徑模擬的關鍵分水嶺。對於追求深度工控安全的專家而言,精通此類高擬真環境的部署與其背後的攻防思維,已是不可或缺的核心能力。