1.LDAP簡介
LDAP全稱是Lightweight Directory Access Protocol,輕量目錄訪問協(xié)議网梢。顧名思義,LDAP是設(shè)計用來訪問目錄數(shù)據(jù)庫的一個協(xié)議赂毯。協(xié)議就是標(biāo)準(zhǔn)战虏,并且是抽象的。在這套標(biāo)準(zhǔn)下党涕,AD(Active Directory)是微軟的對目錄服務(wù)數(shù)據(jù)庫的實現(xiàn)烦感。目錄服務(wù)數(shù)據(jù)庫也是一種數(shù)據(jù)庫,這種數(shù)據(jù)庫相對于我們熟知的關(guān)系型數(shù)據(jù)庫(比如MySQL,Oracle),主要有以下幾個方面的特點膛堤。
它成樹狀結(jié)構(gòu)組織數(shù)據(jù)手趣,類似文件目錄一樣。
它是為查詢肥荔、瀏覽和搜索而優(yōu)化的數(shù)據(jù)庫绿渣,也就是說LDAP的讀性能特別強,但是寫性能差燕耿,而且還不支持事務(wù)處理中符、回滾等復(fù)雜功能。
為了能夠訪問目錄數(shù)據(jù)庫誉帅,必須設(shè)計一臺能夠訪問目錄服務(wù)數(shù)據(jù)庫的協(xié)議淀散,LDAP是其中一種實現(xiàn)協(xié)議。
舉個栗子:
- 目錄樹:如上圖所示蚜锨,在一個目錄服務(wù)系統(tǒng)中档插,整個目錄信息集可以表示為一個目錄信息樹,樹中的每個節(jié)點是一個條目亚再。
- 條目:每個條目就是一條記錄郭膛,每個條目有自己的唯一可區(qū)別的名稱(DN)。比如圖中的每個圓圈都是一條記錄针余。
- DN,RDN:比如說第一個葉子條目饲鄙,他有一個唯一可區(qū)分的名稱DN:
uid=bob,ou=people,dc=acme,dc=org
。類似于文件目錄的相對路徑絕對路徑圆雁,他除了有個DN之外,還有個RDN帆谍,他與目錄結(jié)構(gòu)無關(guān)伪朽,比如之前咱們提過的uid=bob,ou=people,dc=acme,dc=org
,他的RDN就是uid=bob -
屬性:描述條目具體信息汛蝙。比如``uid=bill,ou=people,dc=acme,dc=org`烈涮,他有屬性name 為bill朴肺,屬性age為11,屬性school 為xx坚洽。
2.Active Directory簡介
上面講過AD(Active Directory)是微軟的對目錄服務(wù)數(shù)據(jù)庫的實現(xiàn)戈稿,Active Directory存儲著整個域內(nèi)所有的計算機,用戶等的所有信息讶舰。換言之鞍盗,在滲透測試中,通過Active Directory對域環(huán)境進(jìn)行信息收集跳昼,是一種十分全面也有效的手段之一般甲。那么,我們?nèi)绾卧L問域內(nèi)的Active Directory呢鹅颊?
- 通過連接域控的389/636端口(636端口是LDAPS)來進(jìn)行連接查看修改敷存。
- 如果需要在整個林中進(jìn)行搜索,而不單單是在具體的某個域進(jìn)行搜索的時候堪伍,可以連接域控的3268/3269端口锚烦。
3.Active Directory詳解
接下來我們來具體的探究下Active Directory具體有啥東西。
3.1.Naming Context
Active Directory具有分布式特性帝雇,一個林中有若干個域挽牢,每個域內(nèi)有若干臺域控,每臺域控有一個獨立的Active Directory摊求。微軟將Active Directory劃分為若干個分區(qū)(這個分區(qū)我們稱為Naming Context禽拔,簡稱NC),每個Naming Context都有其自己的安全邊界室叉。
Active Directory預(yù)定義了三個Naming Context
- Configuration NC(Configuration NC)
- Schema NC(Schema NC)
- Domain NC(DomainName NC)
使用ADExplorer連接進(jìn)來就可以看到這三個:
3.1.1.Configuration NC
配置NC睹栖,林配置信息的主要存儲庫,包含有關(guān)站點茧痕,服務(wù)野来,分區(qū)和Active DirectorySchema 的信息,并被復(fù)制到林中的每個域控制器踪旷。
Naming Context的頂級容器有:
RDN | 說明 |
---|---|
CN=DisplaySpecifiers | 定義了Active Directory管理單元的各種顯示格式 |
CN=Extended-Rights | 擴展權(quán)限對象的容器 |
CN=ForestUpdates | 包含用于表示森林狀態(tài)和與域功能級別更改的對象 |
CN=Partitions | 包含每個Naming Context曼氛,Application Partitions以及外部LDAP目錄引用的對象 |
CN=Physical Locations | 包含位置對象,可以將其與其他對象關(guān)聯(lián) 以表示該對象的位置 |
CN=Services | 存儲有關(guān)服務(wù)的配置信息令野,比如文件復(fù)制服務(wù) |
CN=Sites | 包含所有站點拓?fù)浜蛷?fù)制對象 |
CN=WellKnown Security Principals | 包含常用的外部安全性主題的對象舀患,比如Anonymous,Authenticated Users气破,Everyone等等 |
3.1.2.Schema NC (Schema NC)
Schema NC 包含表示 Active Directory 支持的類和屬性的對象聊浅。schema是在林范圍內(nèi)定義的,因此Schema NC被復(fù)制到林中的每個域控制器。Schema NC 的根可以在 Schema 容器中找到低匙,盡管 Schema container看起來是 Configuration container的子容器旷痕,但實際上它本身就是單個容器。(Although the Schema container appears to be a child of the Configuration container, it is actually a separate naming context in its own right. )
3.1.3.Domain NC (DomainName NC)
之前我們說過顽冶,域內(nèi)的所有計算機欺抗,所有用戶的具體信息都存在Active Directory底下,具體來說,就是在Active Directory的這個Naming Context里面。我們用工具查看的默認(rèn)Naming Context選的也是這個Naming Context娃善。后面對域內(nèi)很多東西的查看都在這個Naming Context里面進(jìn)行祭往。
RDN | 說明 |
---|---|
CN=Builtin | 內(nèi)置本地安全組的容器,包括管理員,域用戶和賬號操作員等等 |
CN=Computers | 機器用戶的容器,包括加入域的所有機器 |
OU=Domain Controllers | 域控制器的容器,包括域內(nèi)所有域控 |
CN=ForeignSecurityPrincipals | 代表域中來自森林外部域的組中的成員 |
CN=Keys | Server 2016之后才有秉溉,關(guān)鍵憑證對象的默認(rèn)容器 |
CN=Managed Service Accounts | 托管服務(wù)帳戶的容器 |
CN=System | 各種預(yù)配置對象的容器。包括信任對象碗誉,DNS對象和組策略對象 |
CN=TPM Devices | 可信平臺模塊(TPM)密鑰的恢復(fù)信息的容器 |
CN=Users | 用戶和組對象的默認(rèn)容器 |
3.2.Application Partitions
從 Windows Server 2003 開始召嘶,微軟允許用戶自定義分區(qū)來擴展Naming Context的概念。Application Partitions其實就是Naming Context的一個擴展哮缺,它本質(zhì)上還是屬于Naming Context弄跌。
關(guān)于Application Partitions有一些限制需要注意:
Application Partitions不能包含安全主體,主要包括user尝苇、inetOrgPerson铛只、group和computer objects。 可以在Application Partitions中創(chuàng)建任何其他類型的對象糠溜。
Application Partitions中包含的所有對象都不會復(fù)制到全局目錄
(Global Catalog)中淳玩。 即使擁有Application Partitions副本的域控也是Global Catalog server(全局編錄服務(wù)器),域控也不會在進(jìn)行全局目錄(Global Catalog)搜索時從Application Partition返回任何對象非竿。Application Partitions中的對象不能移出分區(qū)蜕着。 這與域中包含的對象不同,后者可以在域之間移動红柱。
4.組
組(Group)是用戶賬號的集合承匣。通過向一組用戶分配權(quán)限,就可以不必向每個用戶分別分配權(quán)限了锤悄。按照用途來分韧骗,組分為通訊組和安全組。
5.OU
組織單位(Organization Unit)铁蹈,簡稱OU宽闲,是一個容器對象众眨,將域中的對象組織成邏輯組握牧,幫助網(wǎng)絡(luò)管理員簡化管理組容诬。組織單位包含下列類型的對象:用戶,計算機沿腰,工作組览徒,打印機,安全策略颂龙,其他組織單位等习蓬。可以在組織單位基礎(chǔ)上部署組策略措嵌,統(tǒng)一管理組織單位中的域?qū)ο蟆?在企業(yè)域環(huán)境里面躲叼,我們經(jīng)常看到按照部分劃分的一個個OU企巢。
5.1.OU跟組的區(qū)別
組織單位跟組是兩個完全不同的概念枫慷。很多人經(jīng)常會把這兩個弄混。組是權(quán)限的集合浪规。OU是管理對象的集合或听。舉個例子,運維需要對公司的網(wǎng)絡(luò)進(jìn)行管理笋婿,需要一些特殊的管理權(quán)限誉裆,我們就可以設(shè)置個組,對組配置權(quán)限缸濒。然后將運維拉近組里面足丢,組里面的運維就擁有了該權(quán)限。比如我們需要對財務(wù)部里面的用戶進(jìn)行統(tǒng)一管理庇配,那我們可以設(shè)置個OU斩跌,然后把財務(wù)部的用戶拉近這個OU,這樣就可以進(jìn)行集中管理讨永,比如說下發(fā)組策略滔驶。說通俗點,組是管理的集合卿闹,OU是被管理的集合揭糕。
6.相關(guān)工具
-
ADSI 編輯器
微軟自帶
-
LDP
微軟自帶
-
ADexplorer
-
adfind && admod
adfind用于查詢,admod用于修改
- ldapsearch
Linux下用的多
ldapsearch -h 127.0.0.1 -p 389 -x -b "ou=People,dc=example,dc=org" -D "cn=aaa,dc=example,dc=org" "(&(objectClass=inetOrgPerson)(cn=userid))" -W