NTUSTISC - AD Note - 環境建置 & Background

NTUSTISC - AD Note - 環境建置 & Background

[TOC]

Lecture Video: 2022/05/04 AD 安全1

Background

  • What is Directory Service?1

    Windows Server 系統使用的目錄服務 就是 Active Directory

  • What is Active Directory(AD)?2

    Windows的Windows Server中,負責架構中大型網路環境的集中式目錄管理服務(Directory Services),他處理在組織中的網路物件,物件可以是使用者、群組、電腦、網域控制站、郵件、設定檔、組織單元、樹系等等,只要是在AD結構定義檔(Schema)中定義的物件,就可以儲存在AD資料檔中,並利用AD Service Interface來存取

  • What is Domain Service?1

    執行 AD DS 的伺服器稱為 domain controllers (DCs)

  • What is LDAP?3 :::info

    輕量型目錄存取協定 (LDAP) 是用來從 Active Directory 讀取資料,及將資料寫入 Active Directory 的標準協定。某些應用程式使用 LDAP 新增、移除或搜尋 Active Directory 中的使用者和群組,或是傳輸登入資料來驗證 Active Directory 中的使用者。每個 LDAP 通訊都包括用戶端 (如應用程式) 和伺服器 (例如 Active Directory)。 :::

  • What is Organization Units(OU)?[^fei-organization-units]

    容區(Container):屬性集合,跟物件不同是容器可以包含多個「物件」 組織單位(Organization Units):特殊容區,可包含其他物件、組織單位、群組原則

  • What is Group Policy Object(GPO)?[^upas1030-gpo]

    群組原則是透過群組原則物件(Group Policy Object,GPO)來設定,你要只要將GPO連結到指定的網域,此GPO內的設定值就會影響到該網域內的所有使用者與電腦。

    內建GPO

    AD DS網域有兩個內建的GPO

    1. Default Domain Policy:此GPO預設已備連結到網域,因此其設定值會套用到整個網域內的所有使用者與電腦。
    2. Default Domain Controller Policy:此GPO預設已被連到組織單位Domain Controllers,因此其設定值會被套用到Domain Controllers內所有的使用者與電腦 (Domain Controllers 內預設只有網域控制站的電腦帳戶。)

環境建置

:::info 這一整個lab雖然是從講師的drive下載下來的(連結爛掉了,有需要可以跟我拿),但還是可以從網路中自己創一個有這麼多漏洞的lab環境。可以先安裝win2016的虛擬機,然後到WazeHell/vulnerable-AD下載script,在該環境中跑起來,就可以了,不果因為跑完之後的所有帳號或密碼都是隨機的,所以如果要看別人或是後續我寫的WP會有點困難 :::

實驗環境拓樸

帳號密碼

  • Win10(Client) 帳號:administrator 密碼:1qaz@WSX3edc
    • 一般的網域帳號 帳號:bear 密碼:1qaz@WSX3edc
    • 低權限帳號 帳號:low 密碼:<無>無>
  • Win2016(DC) 帳號:administrator 密碼:1qaz@WSX3edc
  • ==Note== :::info 如果要指定本機端的帳戶進行登入,可以在帳號前面加入.\的符號或是直接寫主機名稱,強制用本地端的帳號登入,這個帳戶就是沒有加入AD domain底下 :::

詳細步驟

  1. 把講師提供的兩支VM(win10/win2016)灌起來並自行下載kali2022,==建議用VMware==
  2. 啟用Neo4j & BloodHound 因為環境目前預設的JDK version是1.8,所以如果啟用後續會用到的Neo4j會出問題,所以我們要先改java版本,改成JDK-11,比較詳細的流程可以參考[^neo4j-java-error]
    1. Uninstall JDK-1.8
    2. Download JDK-11 & Install it(Link)
      • 下載之前會需要你登入Oracle帳號
      • 如果想要知道哪一個版本的JAVA對應到哪一個版本的Neo4j,可以從這邊[^neo4j-java]找,照法就是在網址的地方中間有一個neo4j的版本,打上你的neo4j版本,他就會到對應的頁面告訴你JAVA的版本應該是多少,例如我的版本是4.3,就打上https://neo4j.com/docs/operations-manual/4.3/installation/requirements/,不過他也只有分3.x和4.x
    3. Modify Environment Variable
      • 更改環境變數這件事情一定要在Win10加入AD之前做的原因是,只要加入AD就無法改變環境變數的系統變數(如下圖),那我有想過把Win10直接退掉AD的網域,不過過程困難重重,所以我想還是直接開一個新的Win10從頭來會比要快,而且加入AD後還不能連網,畢竟DNS都被改掉了,會很不方便
      • 首先要在系統變數的地方新增JAVA_HOME然後value就是當初安裝JDK-11的位置
      • 並在Path中新增%JAVA_HOME%\bin<JDK-11 path to bin>並按下確定後到Command Prompt確認有沒有成功
    4. Activate Neo4j 在neo4j的目錄中進到bin,然後打開cmd,輸入$ neo4j.bat console,理論上前面有做對,應該就會開啟Neo4j的服務 :::spoiler Activate Neo4j Log
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
       C:\tools\neo4j-community-4.3.4\bin>neo4j.bat console
       Directories in use:
       home:         C:\tools\neo4j-community-4.3.4
       config:       C:\tools\neo4j-community-4.3.4\conf
       logs:         C:\tools\neo4j-community-4.3.4\logs
       plugins:      C:\tools\neo4j-community-4.3.4\plugins
       import:       C:\tools\neo4j-community-4.3.4\import
       data:         C:\tools\neo4j-community-4.3.4\data
       certificates: C:\tools\neo4j-community-4.3.4\certificates
       licenses:     C:\tools\neo4j-community-4.3.4\licenses
       run:          C:\tools\neo4j-community-4.3.4\run
       Starting Neo4j.
       2023-08-27 03:48:08.068+0000 INFO  Starting...
       2023-08-27 03:48:10.649+0000 INFO  ======== Neo4j 4.3.4 ========
       2023-08-27 03:48:12.832+0000 INFO  Initializing system graph model for component 'security-users' with version -1 and status UNINITIALIZED
       2023-08-27 03:48:12.848+0000 INFO  Setting up initial user from defaults: neo4j
       2023-08-27 03:48:12.848+0000 INFO  Creating new user 'neo4j' (passwordChangeRequired=true, suspended=false)
       2023-08-27 03:48:12.870+0000 INFO  Setting version for 'security-users' to 3
       2023-08-27 03:48:12.870+0000 INFO  After initialization of system graph model component 'security-users' have version 3 and status CURRENT
       2023-08-27 03:48:12.870+0000 INFO  Performing postInitialization step for component 'security-users' with version 3 and status CURRENT
       2023-08-27 03:48:13.274+0000 INFO  Bolt enabled on 127.0.0.1:7687.
       2023-08-27 03:48:14.472+0000 INFO  Remote interface available at http://localhost:7474/
       2023-08-27 03:48:14.472+0000 INFO  Started.
       2023-08-27 03:51:44.289+0000 WARN  The client is unauthorized due to authentication failure.
      

      ::: 接著進到http://localhost:7474/,輸入預設帳密neo4j/neo4j,最後改密碼就好了

    5. Activate BloodHound 進到BloodHound/bin目錄然後執行BloodHound.exe輸入neo4j的帳密,就可以進到一個全新的bloodhound頁面
  3. 把Win10加入AD
    1. Check Win2016 IP - 192.168.183.129
    2. 將Win10的DNS指向AD 主要目的就是把Win10網卡的DNS指向前面找到的Domain,在設定/網路和網際網路/狀態/變更介面卡選項/乙太網路/內容/網際網路通訊協定第4版(TCP/IPV4)/內容就可以找到更改的地方,然後把Win2016的IP填入
    3. 更改Win10網域 從控制台/系統及安全性/系統/變更設定/變更中更改網域成`kuma.org`,填入帳密按確定就可以了
    4. Restart Win10
    5. 使用網域帳號登入 用bear這個帳號登入Win10 :::spoiler Result 可以看到系統資訊中,網域的部分已經變成kuma.org :::

Reference

[^fei-organization-units]AD Security - [Day5] 一起來學 AD 安全吧!:什麼是 AD(3) Container & OU & Security Group [^upas1030-gpo]:GPO概念 [^neo4j-java]: System requirements [^neo4j-java-error]:當安裝Neo4j後,在cmd中輸入neo4j遇到(ERROR!Neo4j cannot be started using java version 1.8.0_211