国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Windows內網協議學習LDAP篇之組和OU介紹

 

作者: daiker@360RedTeam

0x00 前言

這篇文章主要介紹AD里面的組和組織單位(OU)。

 

0x01 一些LDAP高級搜索語法

1. LDAP 查找中的位操作

在LDAP 里面,有些字段是位字段,這里以userAccountControl舉例,關于這個字段的詳細意義,后面會詳細介紹,這里先把他當做一個普通的位字段,不去考慮他的具體含義,這里先看下他的內容。

他的屬性類位于架構分區(qū)的CN=User-Account-Control,CN=Schema,CN=Configuration,DC=test,DC=local

attributeSyntax2.5.5.9,oMSyntax2。

查表可知是32位的Integer類型。

之所以我們說他是位字段,是因為他是由一個個位構成。

比如說一個賬戶,他的LOCKOUT,以及NOT_DELEGATED,其他的位都沒有,那這個用戶的屬性userAccountControl的值就為0x100000+0x0010。是個32 位 int 類型。

那現在的難題就變成。如果我要搜索域內所有設置了NOT_DELEGATED的所有對象。那在上一篇文章里面我們學到的LDAP語法就顯得力不從心。因為上一篇文章的語法只能對某個屬性進行過濾,還不能對屬性里面的某個具體位進行過濾,這也是我們這一節(jié)要講的內容。LDAP的語法支持按位搜索。

執(zhí)行過濾器以搜索位字段,必須遵循以下語法:

   <屬性名稱>:<BitFilterRule-ID> := <十進制比較值>

其中的<BitFilterRule-ID>,內容如下。

我們最常的是AND ,也就是1.2.840.113556.1.4.803

我們舉幾個例子。

我們想查詢哪些對象設置了TRUSTED_FOR_DELEGATION

TRUSTED_FOR_DELEGATION對應的十進制比較值位524288

根據語法,我們就可以構造以下過濾規(guī)則

(userAccountControl:1.2.840.113556.1.4.803:=524288)

但是這種我們還得去記BitFilterRule,于是adfind提供了一個更為快捷的方式。

2. LDAP 查找中的objectCategory和objectClass

(1) objectClass

在前面一節(jié)里面說過,在對象的objectClass 屬性里面,可以看到這個對象是哪個類的實例,以及這個類的所有父類,比如說CN=jane,CN=Users,DC=test,DC=localobjectClasstop,person,organizationalPerson,user。那我們通過過濾語句(objectClass=user),(objectClass=organizationalPerson)都能找到這個對象。

所有的類都是top類的子類。因此當我們過濾(objectClass=top)可以找到域內的所有對象。

(2) objectCategory

在Windows Server 2008之前默認不對objectClass 屬性進行索引。最初認為對多值屬性(例如object Class)進行索引會導致性能下降。如此一來,Windows 2000 附帶了未索引的objectClass 屬性和另一個已建立索引的單值屬性,稱為objectCategory。

接下來介紹下objectCategory這個屬性。對象類的每個實例還具有一個objectCategory屬性,該屬性是一個單值屬性。并且建立了索引。其中包含對象是其實例的類或其父類之一的專有名稱。

比如說CN=jane,CN=Users,DC=test,DC=local.他的objectCategoryCN=Person,CN=Schema,CN=Configuration,DC=test,DC=local

創(chuàng)建對象時,系統(tǒng)會將其objectCategory屬性設置為由其對象類的defaultObjectCategory屬性指定的值。無法更改對象的objectCategory屬性。

如果我們想過濾所有objectCategory的屬性為CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local的對象,這個很簡單。

(objectCategory="CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local")

但是這樣,又有點不方便,需要記住記住類的DN,所以LDAP在實現上實現了個小技巧。對象類有個屬性lDAPDisplayName,指定他的顯示名。事實上,我們看objectClass屬性里面的類以及父類(比如top.person),他的名字都是這個類的lDAPDisplayName

CN=Person,CN=Schema,CN=Configuration,DC=test,DC=locallDAPDisplayNameperson.所以LDAP在實現上,支持用類的lDAPDisplayName作為搜索條件。所以如果我們想找所有CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local的實例,可以我簡化為以下過濾規(guī)則。

(objectCategory=person)

(3) objectClass 與objectCategory的結合使用

如果想確保查詢在所有版本的Active Directory上都能正常運行,建議使用 objectClass 和objectCategory結合。如果在目錄中已經索引了ObjectClass ,或者所有域控制器都在運行Windows Server 2008或更高版本,則可以隨意使用 objectClass,而不必擔心會對性能產生影響。

這里我們介紹下objectClass 和objectCategory的集合使用。前面我們分別介紹了objectClass 以及objectCategory,但是沒講怎么把他們結合在一起使用。

我們這里再來理一理思路。

CN=jane,CN=Users,DC=test,DC=local這個對象。

他的objectClasstop,person,organizationalPerson,user。

他的objectCategoryperson。

一個對象的objectClass 是一個類的對象類,以及這個對象類的所有父類。

一個對象的objectCategory 是一個類的對象類或者這個對象類的所有父類。

所以說一個對象的objectCategory 必定是objectClass 中的其中一個。

user,person,organizationalPerson類將其defaultObjectCategory設置為person。這允許像(objectCategory= person)這樣的搜索過濾器通過單個查詢定位所有這些類的實例。

比如說,我們要定位所有的user 類的實例。(CN=jane,CN=Users,DC=test,DC=local就是user類的一個對象)

user 類的繼承關系如下。

top => person => organizationalPerson => user

person,organizationalPerson,user都將其defaultObjectCategory設置為person。因此我們可以先過濾。

(objectCategory=person)

但是這樣的結果并不精準。我們使用objectClass進一步在過濾后的結果進行過濾

(&(objectCategory=person)(objectClass=user))

這樣就能精準匹配到了。其實說通俗點就是,objectCategory建立索引,所以查詢時間比較快。我們通過objectCategory劃分一個大的范圍,然后通過objectClass進行精準匹配。

當然如果在目錄中已經索引了ObjectClass ,或者所有域控制器都在運行Windows Server 2008或更高版本,我們直接使用 objectClass((objectClass=user))也能很精準地匹配并且不用考慮效率問題。

 

0x01 組

1. 組介紹

在域內,我們無時無刻不在跟組打交道,比如我們熟悉的域管,就是一個組。按照用途來分,組分為通訊組和安全組。對于通訊組,我們接觸的比較多的就是郵件組,將若干個人劃分到一個通訊組,給這個通訊組發(fā)件,那組內用戶都能收到。但是通訊組不能控制對資源的訪問,我們并不是很在意。這篇文章側重介紹安全組。

安全組是權限的集合。舉個例子,運維需要對公司的網絡進行管理,需要一些特殊的管理權限,我們就可以設置個組,對組配置權限。然后將運維拉近組里面,組里面的運維就擁有了該權限。安全組可以根據作用范圍劃分為。

  • 全局組 (Global group)
  • 通用組(Universal group)
  • 域本地組(Domain Local group)

2. 查詢組

所有的組都是group類的實例,

我們可以用(objectClass=group)或者(objectCategory=group)來過濾組。

如果需要考慮效率建議使用,正如前面所說objectCategory有建立索引。而objectClass在08之前并沒有建立索引。

那為啥不需要objectClassobjectCategory配合使用。

我們之前說了,一般配合使用的場景都是通過objectCategory匹配劃分一個大的范圍,然后通過objectClass進行精準匹配。這里面通過objectCategory匹配到的已經是很精準了,就不需要再精準匹配了。

組的類型由屬性groupType決定,屬性groupType是一個位字段

現在我們搜索一下

  • 查詢域內的所有組
  • 域內的所有全局組
  • 域內的所有通用組
  • 域內的所有域本地組
  • 域內的所有安全組,包括全局組,通用組,域本地組
  • 域內的所有通訊組,不屬于安全組的組都是通訊組
  • 域內系統(tǒng)創(chuàng)建的群組

3. 組范圍

之前說過安全組可以根據作用范圍劃分為。

  • 全局組 (Global group)
  • 通用組(Universal group)
  • 域本地組(Domain Local group)下面來詳細介紹下

先看個表格,比較下三個組。

組類型可以授予權限可包含可包含于成員是否在全局編錄復制
全局組在同一林中或信任域或林中的任何域上。來自同一域的帳戶。 來自同一域的其他全局組來自同一林中任何域的通用組。 來自同一域的其他全局組。 來自同一林中任何域或任何信任域的域本地組。
通用組在同一林或信任林中的任何域上。來自同一林中任何域的帳戶。 來自同一林中任何域的全局組。 來自同一林中任何域的其他通用組。同一林中的其他通用組。 在同一個林或信任林中域本地組。
域本地組在同一個域中來自任何域或任何受信任域的帳戶。 來自任何域或任何受信任域的全局組。 來自同一林中任何域的通用組。 來自同一域的其他域本地組。來自同一域的其他域本地組。

為了更直觀,畫了個圖

接下來詳細介紹下三個組

  • 域本地組(Domain Local group)

顧名思義,就是本域內的本地組。不適用于林,適用于本域??砂謨鹊馁~戶,通用組,全局組。其他域內的通用組要在本域擁有權限,一般都是加入這個域的域本地組。比如說一個林里面,只有林根域有Enterprise Admins這個組,這是個通用組。然后其他子域 的域本地組Administrators會把林根域的Enterprise Admins加進里面,所以林根域的Enterprise Admins組用戶才在整個林內具備管理員權限。如果想要一個只允許訪問同一個域中的資源的組,那么使用域本地組即可。

  • 通用組(Universal group)

上面已經簡單提過了通用組,典型例子是Enterprise Admins這個組。在林的場景下比較有用。組內成員會在GC內復制。如果你想要一個可以訪問林中任何東西的組,并且可以在林中包含任何賬戶,請使用通用組。

  • 全局組 (Global group)

全局組比較復雜,前面說了。在單域內用域本地組,在林中使用通用組。全局組應該說是一種比較折中的方案,他可以在林中使用,但是只能包含本域內的賬戶。全局組的使用范圍是本域以及受信任關系的其他域。最為常見的全局組是Domain Admin,也就是我們常說的域管。因為全局組只能包含本域內賬戶,因此來自一個域的賬戶不能嵌套在另一個域中的全局組中,這就是為什么來自同一個域的用戶不符合在外部域中的域管的成員資格(由于其全局范圍的影響)。

4. 常見組介紹

  • Administrators

域本地組。具備系統(tǒng)管理員的權限,擁有對整個域最大的控制權,可以執(zhí)行整個域的管理任務。Administrators包括Domain AdminsEnterprise Admins。

  • Domain Admins

全局組。我們常說的域管組。默認情況下,域內所有機器會把Domain Admins加入到本地管理員組里面。

  • Enterprise Admins

通用組。在林中,只有林根域才有這個組,林中其他域沒有這個組,但是其他域默認會把這個組加入到本域的Administrators里面去。

  • Domain Users

全局組。包括域中所有用戶帳戶,在域中創(chuàng)建用戶帳戶后,該帳戶將自動添加到該組中。默認情況下,域內所有機器會把Domain Users加入到本地用戶組里面,也就是為什么默認情況底下,啥都不配置。域用戶可以登錄域內任何一臺普通成員機器。

更多的常見組,會在后續(xù)要使用到的時候進行介紹,這里不一一介紹了。

5. AGDLP

安全組是權限的集合,所以在微軟的建議中,并不建議給賦予單個用戶權限,而是賦予一個組權限,然后將成員拉近組。下面介紹下AGDLP策略。這里直接用網上的圖。

  • A表示用戶賬號,Account
  • G表示全局組,Global group
  • U表示通用組,Universal Group
  • L表示本地組, local group
  • DL表示域本地組,Domain local group
  • P表示資源權限,Resource Permissions

有常見的幾種權限劃分方式

  • AGP,將用戶賬戶添加到全局組,然后賦予全局組權限

  • AGLP,將用戶賬戶添加到全局組,將全局組添加到本地組, 然后賦予本地組權限

  • ADLP 將用戶賬戶添加到域本地組,然后賦予域本地組權限

  • AGDLP,將用戶賬戶添加到全局組,將全局組添加到域本地組, 然后賦予域本地組權限

  • AGUDLP,將用戶賬戶添加到全局組,將全局組添加到通用組,將通用組添加到域本地組, 然后賦予域本地組權限

6. 查詢組內用戶以及用戶所屬的組

如果group4 是group2 組內的成員

那么group2有個屬性member 標識group4是它的成員。

group4有個屬性memberOf 標識它是group2的成員

根據這兩個屬性,我們就可以開始過濾了。

我們舉個例子。

在我們有四個組(group1,group2,group3,group4),一個用戶(it-1)。

上面箭頭意思是組成員

group1 這個組里面有一個成員group2

group2 這個組里面有兩個個成員group4it-1

group3 這個組里面有一個成員it-1

那我們開始進行搜索。

(1) 查看group2有哪些成員

最簡單的,查看group2 這個對象的member屬性

或者過濾memberOfgroup2的所有對象

(2) 查看it-1 屬于哪些組

最簡單的,查看it-1 這個對象的memberOf屬性

或者過濾memberit-1的所有對象

(3) 查看group1有哪些成員,這些成員如果是組,就繼續(xù)查下去,知道非組成員為止。

上面兩個都比較好理解,接下來,我們來分析一下。

在這里

如果僅僅是查group1有哪些成員,那就只有group2,但是我們現在的需求是遞歸查下去,group2也是一個組,組內又有哪些成員。從圖中我們可以看出有group2,group4,it-1

這里LDAP 給我們提供一個特性,也是位操作符的一部分。BitFilterRule-ID1.2.840.113556.1.4.1941.在adfind 里面可以用INCHAIN簡化。

現在我們開始查group1的所有成員,以及成員的成員,…。

(4) 查看it-1 屬于哪些組,這些組又屬于哪些組,如此往上遞歸查詢,直到這個組不屬于其他組。

 

0x02 組織單位(Organization Unit)

1. OU介紹

組織單位(Organization Unit),簡稱OU,是一個容器對象,將域中的對象組織成邏輯組,幫助網絡管理員簡化管理組。組織單位包含下列類型的對象:用戶,計算機,工作組,打印機,安全策略,其他組織單位等??梢栽诮M織單位基礎上部署組策略,統(tǒng)一管理組織單位中的域對象。 在企業(yè)域環(huán)境里面,我們經??吹桨凑詹糠謩澐值囊粋€個OU。

2. OU跟容器的區(qū)別

組織單位(OU)是專用容器,與常規(guī)容器的區(qū)別在于管理員可以將組策略應用于OU,然后系統(tǒng)將其下推到OU中的所有計算機。您不能將組策略應用于容器。需要注意的是Domain Computers是一個普通容器,而Domain Controllers是一個OU,因此可以可以將組策略應該于Domain Controllers,不可以將組策略應用于Domain Computers。關于更多組策略的內容,我們后面會專門有一篇文章介紹組策略。

PS:上面說的Domain ComputersDomain Controllers特指根域的,不是User容器底下的,那個是組

3. OU跟組的區(qū)別

組織單位跟組是兩個完全不同的概念。很多人經常會把這兩個弄混。組是權限的集合。OU是管理對象的集合。舉個前面舉過的例子,運維需要對公司的網絡進行管理,需要一些特殊的管理權限,我們就可以設置個組,對組配置權限。然后將運維拉近組里面,組里面的運維就擁有了該權限。比如我們需要對財務部里面的用戶進行統(tǒng)一管理,那我們可以設置個OU,然后把財務部的用戶拉近這個OU,這樣就可以進行集中管理,比如說下發(fā)組策略。說通俗點,組是管理的集合,OU是被管理的集合。關于權限的更多內容,后面會有一篇文章專門介紹。

4. OU委派

考慮這樣一種需求,如果我們想允許某個用戶把其他用戶拉近OU,而不賦予這個用戶域管權限,我們可以在這個OU給這個用戶委派 添加成員的權限。組織單位的委派其實就是賦予某個域內用戶對OU的某些管理權限。這些權限體現在ACL里面。

5. 查詢OU

所有的OU都是organizationalUnit類的實例,

我們可以用(objectClass=organizationalUnit)或者(objectCategory=organizationalUnit)來過濾OU。

查詢OU里面的賬戶,可以指定BaseDN為OU就行

 

0x03 引用

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AD常用命令以及概念
AD域控如何對接組織架構 ad域控管理
LDAP基礎講座
Windows管理組說明
AD相關知識
組策略系列之三:用戶或計算機應用組策略的前提
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服