Active Directory之AD對象

1、概述

在這篇文章中,我們將討論不同的 Active Directory 對象及其基本概念,例如:

  • 爲什麼域中需要 Active Directory 對象
  • 如何創建它們?
  • 如何枚舉 Active Directory 對象

Active Directory 對象

Active Directory 對象是一組表示域中資源的屬性。每個 Active Directory 對象都由唯一的 SID(安全標識符)標識,被用來允許或拒絕對域中各種資源的訪問。讓我們討論一些屬於 Active Directory 的 AD 對象。

2、User Objects (用戶對象)

用戶對象被分配給域用戶帳戶,用於獲取域資源的訪問權限。如果您擁有管理用戶對象所需的權限,則可以從 Active Directory 用戶和計算機控制檯管理這些對象。用戶帳戶也用於運行程序或系統服務,並由用戶SID識別,這與域SID類似,它由域SID和用戶RID(相對標識符)組成。

PS C:\Users\scarred.monk> Get-ADUser Scarred.Monk

DistinguishedName : CN=Scarred Monk,CN=Users,DC=rootdse,DC=lab
Enabled           : True
GivenName         : Scarred
Name              : Scarred Monk
ObjectClass       : user
ObjectGUID        : 2ba8220b-63db-4dda-b6de-095a7fa0da24
SamAccountName    : Scarred.Monk
SID               : S-1-5-21-580985966-2115238843-2989639066-1107
Surname           : Monk
UserPrincipalName : [email protected]

用戶對象的 SID

在用戶的 SID 值中,S-1-5-21-580985966-2115238843-2989639066 是域 SID(安全標識符),1107 是唯一標識它的用戶 RID(相對標識符)。

一個SID可以分爲以下幾個部分:

(SID)-(Revision Level)-(Identifier-Authority)-(Sub-Authority1)-(Sub-Authority2)...-(RID)

微軟對SID組成部分的描述:

  • SID:SID 中的 S 將上述字符串標識爲 SID
  • Revision level:SID 結構的修訂版本。迄今爲止,這從未改變過並且一直是 1
  • **Identifier-Authority: **一個 48 位的頒發機構標識符,用於標識發佈/創建 SID 的機構。 (在上述的例子中,標誌符頒發機構的值爲 5
  • Subauthority: 子頒發機構,這是一個變量編號,用於識別SID所描述的用戶或組與創建它的機構的關係。
  • **RID:**相對標識符(RID),它能唯一標識相對於發佈SID機構的帳戶和組。

在域環境中,你會在多個位置看到用戶 SID,例如在事件查看器或 ACL 中。SID也被用於安全描述符中,以存儲與權限有關的信息。

下面是事件日誌中用戶SID的例子:

img

以下是註冊表中用戶SID的一個例子:

img

你可以在 Microsoft Docs 中找到常見的 SID 列表。:https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/security-identifiers-in-windows#well-known-sids-all-versions-of-windows

然而,在企業環境中,一個用戶可以有一個以上的用戶賬戶來完成不同的任務。例如,一個組織中的系統管理員可以有多個不同的賬戶,如一個賬戶用於在分配給他們的筆記本電腦上工作,第二個賬戶用於在本地域工作,還有幾個賬戶用於在AD林中的其他域工作。

 【----幫助網安學習,以下所有學習資料免費領!加vx:yj009991,備註 “博客園” 獲取!】

 ① 網安學習成長路徑思維導圖
 ② 60+網安經典常用工具包
 ③ 100+SRC漏洞分析報告
 ④ 150+網安攻防實戰技術電子書
 ⑤ 最權威CISSP 認證考試指南+題庫
 ⑥ 超1800頁CTF實戰技巧手冊
 ⑦ 最新網安大廠面試題合集(含答案)
 ⑧ APP客戶端安全檢測指南(安卓+IOS)

要獲取 Active Directory 域中所有用戶帳戶的詳細信息,我們可以使用以下命令:

PS C:\Users\scarred.monk> Get-ADUser -Filter *

這個命令的輸出信息非常多,因爲它包含了很多關於所有用戶的細節。爲了只獲取用戶的少數屬性,我們可以使用cmdlet 的Select-Object (它的別名是Select),只選擇我們感興趣的屬性,如SamAccountNameSIDenabled(查看賬戶是否啓用/禁用)。

PS C:\Users\scarred.monk> Get-ADUser -f * |select SamAccountName, SID, enabled

SamAccountName    SID                                           enabled
--------------    ---                                           -------
Administrator     S-1-5-21-580985966-2115238843-2989639066-500     True
Guest             S-1-5-21-580985966-2115238843-2989639066-501    False
krbtgt            S-1-5-21-580985966-2115238843-2989639066-502    False
MATRIX$           S-1-5-21-580985966-2115238843-2989639066-1103    True
darkvortex$       S-1-5-21-580985966-2115238843-2989639066-1104    True
SQLServiceAccount S-1-5-21-580985966-2115238843-2989639066-1105    True
Scarred.Monk      S-1-5-21-580985966-2115238843-2989639066-1107    True

這裏可以使用Filter參數獲取用戶信息。Filter參數使用PowerShell表達式來編寫 Active Directory查詢字符串。使用 -F 同-Filter

下面是使用 Filter 參數查找以 admin* 開頭的用戶帳戶的示例:

PS C:\Users\scarred.monk> Get-ADUser -Filter 'Name -like "admin*"'

DistinguishedName : CN=Administrator,CN=Users,DC=rootdse,DC=lab
Enabled           : True
GivenName         :
Name              : Administrator
ObjectClass       : user
ObjectGUID        : 061b1157-9a8d-4a34-9304-563a08e3883c
SamAccountName    : Administrator
SID               : S-1-5-21-580985966-2115238843-2989639066-500

當你以域用戶身份登錄時,域計算機(在其上進行登錄嘗試)將請求發送到域控制器以進行身份驗證,並詢問域控制器爲用戶帳戶分配了哪些權限。驗證後,計算機會收到來自域控制器的響應,並使用適當的權限和限制讓你登錄。這是因爲域用戶帳戶的憑據信息存儲在域控制器上,而不是用戶登錄的本地計算機上。

如果要創建新用戶可以使用 Cmdlet 的New-ADUser命令:

PS C:\> New-ADUser -Name "AD User" -GivenName AD -Surname User -SamAccountName ad.user -UserPrincipalName [email protected] -AccountPassword (ConvertTo-SecureString password@123 -AsPlainText -Force) -PassThru

3、Computer Objects(計算機對象)

計算機對象代表加入域並由用戶用於登錄域的機器。當用戶以域用戶身份登錄計算機時,計算機對象將充當向域驗證用戶身份的媒介。因此,如果計算機對象從域中刪除,用戶將無法登錄,因爲計算機將無法訪問域控制器。

PS C:\Users\scarred.monk> Get-ADComputer -f *

DistinguishedName : CN=RDSEDC01,OU=Domain Controllers,DC=rootdse,DC=lab
DNSHostName       : RDSEDC01.rootdse.lab
Enabled           : True
Name              : RDSEDC01
ObjectClass       : computer
ObjectGUID        : 032428f5-d629-451b-9d1d-46fce3ec0677
SamAccountName    : RDSEDC01$
SID               : S-1-5-21-580985966-2115238843-2989639066-1000
UserPrincipalName :

DistinguishedName : CN=SQLSERVER,CN=Computers,DC=rootdse,DC=lab
DNSHostName       :
Enabled           : True
Name              : SQLSERVER
ObjectClass       : computer
ObjectGUID        : d4a1bca9-d729-4d61-90d3-ff33ea9f0c1e
SamAccountName    : SQLSERVER$
SID               : S-1-5-21-580985966-2115238843-2989639066-1106

所有計算機對象都有自己的機器用戶,以$結尾。

在這個例子中,計算機對象RDSEDC01的機器賬戶是RDSEDC01$,這些帳戶在域中執行自己的操作。

域中具有三種可以算作計算機對象的對象:

  • 域控制器
  • 域計算機(工作站)
  • 成員服務器

域控制器

域控制器是一個集中式 Windows 服務器,它通過託管 Active Directory 域並向客戶端提供身份驗證和目錄服務來管理域。域控制器只能處理單個域的身份驗證請求,但它也可以存儲來自林中其他域的對象的部分只讀副本(如果它被啓用爲全局編錄服務器)。

要檢查域控制器,我們可以使用以下命令:

PS C:\Users\scarred.monk> Get-ADDomainController

ComputerObjectDN           : CN=RDSEDC01,OU=Domain Controllers,DC=rootdse,DC=lab
DefaultPartition           : DC=rootdse,DC=lab
Domain                     : rootdse.lab
Enabled                    : True
Forest                     : rootdse.lab
HostName                   : RDSEDC01.rootdse.lab
InvocationId               : 85a56dee-48fe-4897-8941-50ed5a196849
IPv4Address                : 192.168.209.110
IPv6Address                :
IsGlobalCatalog            : True
IsReadOnly                 : False
LdapPort                   : 389
Name                       : RDSEDC01
NTDSSettingsObjectDN       : CN=NTDS Settings,CN=RDSEDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=rootdse,DC=lab
OperatingSystem            : Windows Server 2019 Datacenter
OperatingSystemHotfix      :
OperatingSystemServicePack :
OperatingSystemVersion     : 10.0 (17763)
OperationMasterRoles       : {SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster...}
Partitions                 : {DC=ForestDnsZones,DC=rootdse,DC=lab, DC=DomainDnsZones,DC=rootdse,DC=lab, CN=Schema,CN=Configuration,DC=rootdse,DC=lab, CN=Configuration,DC=rootdse,DC=lab...}
ServerObjectDN             : CN=RDSEDC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=rootdse,DC=lab
ServerObjectGuid           : d50faf97-ee22-4724-b248-bf8eeda85c92
Site                       : Default-First-Site-Name
SslPort                    : 636

域計算機(工作站)

域計算機可以由員工使用的個人計算機表示,例如屬於域的臺式機、筆記本電腦。就 Active Directory 而言,計算機對象與用戶對象非常相似,因爲計算機對象擁有用戶對象的所有屬性(計算機對象直接從用戶對象類繼承)。計算機出現在 Active Directory 中的原因很少,例如需要安全地訪問資源、利用 GPO 併爲其分配權限。

對象類會在後續的有關AD模式和LDAP的文章中詳細解釋

爲了加入 Active Directory 域並允許域用戶登錄到該域,域計算機需要一個安全通道來與域控制器通信。安全通道是指可以傳輸加密數據的經過身份驗證的連接。要創建安全通道,域計算機必須向域控制器提供域計算機帳戶的密碼。與用戶帳戶身份驗證類似,Active Directory 使用 Kerberos 來驗證計算機帳戶的身份。域控制器通過關聯的計算機對象及其存儲的密碼驗證受信任的域計算機。

要檢查域計算機,我們可以使用以下命令:

PS C:\Users\scarred.monk> Get-ADComputer -Filter *

成員服務器

域環境中的成員服務器提供不同的服務。這些服務器根據需要提供的服務類型安裝了一個或多個角色,例如 Exchange 服務器、Web 服務器、文件服務器、SQL 服務器等。它們可以是 Windows Server 操作系統或 Linux 操作系統。

要檢查成員服務器,我們可以使用以下命令:

PS C:\Users\scarred.monk> Get-ADComputer -Filter 'operatingsystem -like "*server*"'

讓我們來談談下一種 AD 對象,即組對象。

4、組對象

組對象用於包含許多不同的 Active Directory 對象,例如用戶、計算機和其他組。這樣做是爲了通過將權限分配給一組用戶/計算機而不是單個帳戶、爲組創建委派組策略、創建電子郵件分發列表等,使系統管理員的管理更容易。

例如,在一個組織中,不同的團隊有不同的組,並根據需要爲這些組分配不同的權限。假設有一個名爲“DB Admins”的組,該組有權登錄並在多個 SQL 服務器上執行少量數據庫操作、訪問多個 DB 文件共享等。當新用戶加入 DB 團隊時,IT 團隊會將用戶添加到該組 (DB ADmins) 中,這將爲新用戶提供其團隊成員擁有的所有訪問權限。它節省了 IT 團隊爲每個用戶單獨配置權限的時間。

要獲取 Active Directory 域中所有組的詳細信息,我們可以使用以下命令:

PS C:\Users\scarred.monk> Get-ADGroup -f * | Select-Object name

name
----
Administrators
Users
Guests
Print Operators
Backup Operators
Replicator
Remote Desktop Users
Network Configuration Operators
Performance Monitor Users
Performance Log Users
Distributed COM Users
IIS_IUSRS
Cryptographic Operators
Event Log Readers
Certificate Service DCOM Access
RDS Remote Access Servers
RDS Endpoint Servers
RDS Management Servers
Hyper-V Administrators
Access Control Assistance Operators
Remote Management Users
Storage Replica Administrators
Domain Computers
Domain Controllers
Schema Admins
Enterprise Admins
Cert Publishers
Domain Admins
Domain Users
Domain Guests
Group Policy Creator Owners
RAS and IAS Servers
Server Operators
Account Operators
Pre-Windows 2000 Compatible Access
Incoming Forest Trust Builders
Windows Authorization Access Group
Terminal Server License Servers
Allowed RODC Password Replication Group
Denied RODC Password Replication Group
Read-only Domain Controllers
Enterprise Read-only Domain Controllers
Cloneable Domain Controllers
Protected Users
Key Admins
Enterprise Key Admins
DnsAdmins
DnsUpdateProxy

組類型

  • 分發組(Distribution Group)

    分發組(通訊組)是用來在一個組中包括多個用戶。當一封電子郵件被髮送到一個分發組時,它將被髮送到該分發組中的所有用戶。例如。名稱爲Corporate Office的分發組將包括企業辦公室的所有用戶。當有人向該組發送電子郵件時,它將被髮送給所有公司辦公室員工。

  • 安全組(Security Group)

    與分發組類似,安全組可以包含用戶/計算機帳戶或組,用於向組中的用戶/計算機提供跨域/林的不同訪問和權限。例如,名爲 DBAdmins 的安全組可以包含數據庫操作團隊的所有成員,這些成員可能有權訪問多個 SQL 服務器和數據庫團隊的文件共享。當新的 DB 管理員加入團隊時,將用戶帳戶添加到 DBAdmins 安全組將提供跨 SQL 數據庫的所有權限。

    要獲取有關安全組的詳細信息,我們可以使用GroupCategory -eq "security"這樣的過濾器:

    PS C:\Users\scarred.monk> Get-ADGroup -Filter {GroupCategory -eq "security"}
    

    每個組類型有三個組作用域:

    • **Domain local(本地域):**用於僅在創建它的域中管理對不同域資源的訪問權限。
    • **Global(全局):**用於提供對另一個域中資源的訪問。一個全局組可以添加到其他全局和本地組。
    • **Universal(通用):**用於定義角色和管理分佈在多個域中的資源。如果網絡連接了多個分支,則最好僅對很少更改的組使用通用組。

Active Directory 中的一些重要組如下:

Admin groups(管理員組)

最重要的組是域管理員(Domain Admin)和企業管理員(Enterprise Admins):

  • Domain Admin(域管理員組)爲其域中的成員提供管理員權限。

  • Enterprise Admins 組提供整個林中的管理員權限。

AD中的其他重要羣組

除了上面兩個重要的組之外,還有其他一些重要的組,你應該注意:

  • Schema Admins:Schema Admins 組的成員可以修改 Active Directory 數據庫架構。該組擁有對Acitve Directory架構的完全管理權限

  • DNSAdmins:如果 DNS 服務器角色安裝在域中的域控制器上,則 DNSAdmins 組的成員有權訪問/修改網絡 DNS 信息。 Shay Ber 發表了一篇文章https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83,解釋了 DNSAdmins 組的成員如何以 SYSTEM 用戶身份在域控制器中執行代碼(任意 DLL)。

  • Print Operators:如果您在 Print Operators 組中添加用戶,則該用戶帳戶可以登錄域控制器。

  • Protected Users:受保護的用戶組允許強制實施帳戶的安全。該組的成員在身份驗證過程中獲得了額外的保護,以防止憑據泄露。

  • Server Operators:Server Operators 組的成員可以登錄到域控制器並管理其配置。它可以創建和管理該域中的用戶和組,但不可以管理服務器管理員賬戶。

  • Account Operators:Account Operators 組的成員可以創建和修改大多數類型的帳戶,包括用戶、本地組和全局組的帳戶,並且成員可以本地登錄到域控制器。但是,帳戶操作員組的成員無法管理管理員用戶帳戶或管理員、Server OperatorsAccount OperatorsBackup Operators,和 Print Operators 。

  • Backup Operators:Backup Operators的成員有權登錄、備份、恢復/修改域控制器中的文件。

  • Remote Desktop Users:該組的成員可以通過 RDP 登錄到域控制器。如果用戶已經有權在本地登錄域控制器,則將其添加到該組可以允許用戶通過 RDP 遠程登錄域控制器。如果未啓用本地登錄並將其添加到此組,則您將看到以下警告:

    RDP

  • Group Policy Creator Owners:組策略創建者所有者的成員可以編輯域中的 GPO

以下是一些高價值組。這些組的成員默認擁有登錄域控制器的權限。如果這些組的賬戶被入侵,那麼AD域就很有可能被入侵。

Administrators
Domain Admins
Enterprise Admins
Print Operators
Backup Operators
Account Operators

Custom groups(自定義組)

除此之外,組織還爲 IT 管理員、IT 服務檯、SQL 管理員、應用程序管理員等創建自定義特權組。此外,如果我們向服務器添加其他角色,則會創建組。就像我們添加 DHCP 角色時,創建了 DHCP 管理員組或安裝 Microsoft Exchange 時,添加了 Exchange 組織管理員和 Exchange Windows 權限組。要獲取詳細信息,在微軟的文檔中還有許多其他組的描述:https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-security-groups#replicator

Shared Folders(共享文件夾)

共享文件夾也是 Active Directory 中的對象。在 AD 中發佈新共享時,會爲其創建一個對象。這對於 AD 用戶輕鬆找到所有共享非常有幫助。下面是在 AD 中發佈的共享文件夾的屏幕截圖:

Shares

對於滲透測試人員,可以枚舉共享以查看哪些是可訪問的以及存儲在那裏的數據。我們可以這樣枚舉共享:

PS C:\> Get-SmbShare

Name            ScopeName Path                                         Description
----            --------- ----                                         -----------
ADMIN$          *         C:\Windows                                   Remote Admin
C$              *         C:\                                          Default share
Corporate Files *         C:\ADShares\Corporate Files                  Corporate Files data for 2020
DBA Backup      *         C:\ADShares\DBA Backup                       Romania DB Backup
IPC$            *                                                      Remote IPC
IT Tools        *         C:\ADShares\IT Tools                         IT Team Important Tools
NETLOGON        *         C:\Windows\SYSVOL\sysvol\rootdse.org\SCRIPTS Logon server share
Old Backup      *         C:\ADShares\Old Backup                       All Backup
Operations Team *         C:\ADShares\Operations Team                  Engineering Operations daily data
Salary Details  *         C:\ADShares\Salary Details                   Finance Team 2020
Sales Data      *         C:\ADShares\Sales Data                       Latest Sales Team Shared folder
SYSVOL          *         C:\Windows\SYSVOL\sysvol                     Logon server share


PS C:\> net view \\RDSEDC01
Shared resources at \\RDSEDC01

Share name       Type  Used as  Comment

-------------------------------------------------------------------------------
Corporate Files  Disk           Corporate Files data for 2020
DBA Backup       Disk           Romania DB Backup
IT Tools         Disk           IT Team Important Tools
NETLOGON         Disk           Logon server share
Old Backup       Disk           All Backup
Operations Team  Disk           Engineering Operations daily data
Salary Details   Disk           Finance Team 2020
Sales Data       Disk           Latest Sales Team Shared folder
SYSVOL           Disk           Logon 

在第下次文章中,我們將介紹組策略,它是 Active Directory 的重要元素之一。我們將討論什麼是組策略、爲什麼需要它們、如何創建它們、使用組策略可以實現什麼,並瞭解如何枚舉和破壞組策略。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章