貼一份筆記而已
最近沒空寫文章了 好好復習一下筆記
環境我用的god.org這個域
又看東西的時候遇到ldap基礎相關的知識了 復習手寫筆記 詳細可以參考靈騰文章和harmj0y文章
http://www.harmj0y.net/blog/activedirectory/a-pentesters-guide-to-group-scoping/
0x01 域中ldap查詢安全組
所有的組都是group類的實例
可以用(objectClass=group)或者(objectCategory=group)來過濾組
組的類型由屬性groupType決定,屬性groupType是一個位字段
域內所有組
域內全局組
域內通用組
域內本地組
域內安全組
域內系統創建的組
0x02 組中的 member && memberof屬性
這兩個屬性能查看組之間的所屬關系
0x03 安全組范圍
安全組可以根據作用范圍划分為
- 全局組 (Global group)
- 通用組(Universal group)
- 域本地組(Domain Local group)
附上daiker師傅畫的范圍圖:
三個組的使用范圍 簡寫的:
常見組
Administrators 域本地組
Domain Admins 全局組 “域管組” 域內所有計算機會把domain admins加入到本地管理員
Enterprise Admins 通用組 林 域中會默認把Enterprise Admins組加入到域本地組的administrators組中
Domain Users 全局組 域內機器 默認也會把Domain Users組加入本地用戶組
0x04 ad中的分區
Naming Context即為ad的分區,為什么要有分區?簡而言之為了隔離,以至於每個DC不需要復制林中的所有數據。
Active Directory預定義的Naming Context
-
Configuration NC(Configuration NC)
-
Schema NC(Schema NC)
-
Domain NC(DomainName NC)
連上ldap后查看相關容器。
Configuration NC
林配置信息的主要存儲庫,包含有關站點,服務,分區和Active Directory Schema 的信息。
配置NC中頂級容器說明:
Schema NC
Schema 信息定義Active Directory中使用的類,它是具有 classSchema ,attributeSchema 和 subSchema 對象的單個容器
Domain NC
不同的域內有不同的域Naming Context,其中包含特定於域的數據。
一個域的name context的根由域的DN表示:
corp.test.local域的DN將為dc=corp,dc=test,dc=local
Application Partitions NC
Application Partitions其實就是Naming Context的一個擴展,一共是兩個作用
1.用戶定義分區
簡而言之,因為nc是微軟預定義了,用戶自己定義不了,如果要定義分區,就可以使用Application Partitions NC。
2.存儲動態對象
動態對象是具有生存時間(TTL) 值的對象,Application Partitions可以給數據設置個TTL,時間一到,Active Directory就刪除該數據。
0x05 ldap中的objectCategory和objectClass
簡而言之,objectCategory和objectClass是用來ldap查詢中對類實例所屬關系的篩選
objectClass 屬性中,可以看到這個對象是哪個類的實例, 以及這個類的所有父類
example:
CN=jane,CN=Users,DC=test,DC=local的objectClass是top,person,organizationalPerson,user。
查詢上面對象的語句:(objectClass=user),(objectClass=organizationalPerson)
所有的類都是top類的子類。因此當我們過濾(objectClass=top)可以找到域內的所有對象
objectCategory是因為2008之前默認不對objectClass 屬性進行索引,所以objectCategory粗略可以理解為是帶了索引的objectClass
對象類的每個實例具有一個objectCategory屬性,該屬性是一個單值屬性。並且建立了索引。
其中包含對象是其實例的類或其父類之一的專有名稱。
example:
CN=jane,CN=Users,DC=test,DC=local.
他的objectCategory是CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local
所以同理:
adfind.exe -b dc=god,dc=org -s -subtree -bit -f "(objectCategory=person)" -dn
objectClass與objectCategory結合
Objectclass包含對象是哪個類的實例,以及這個類的所有父類
Objectcategory包含對象實例的類 或 其父類之一
所以如果沒建立索引,objectCategory划分一個大的范圍,然后通過objectClass進行精准匹配
0x06 AD中的OU、組
組:
OU:
ou、組、容器之間的區別
簡而言之
最重要的一點是OU能部署組策略,容器不行。
- OU:組織單元,是一個專用容器,被管理的集合,也可以說管理對象的集合。
- 容器: Domain Computers 是常規容器,Domain Controllers是OU
- 組: 組是權限的集合。
OU的委派
賦予域內用戶對OU的某些管理權限
ADfind 過濾OU
所有的OU都是organizationalUnit類的實例
使用(objectClass=organizationalUnit)或者(objectCategory=organizationalUnit)來過濾OU。
0x07 AGDLP
說白了 對組權限的策略集合: