筆記 隨手記
又復習了一下域中ACL的點,以前對於sddl過濾又有了新的認識。
** 以下出自學習daiker師傅文章的筆記。 只記錄下重點。**
windows 訪問控制模型
● 訪問令牌(Access Token)包含用戶的標識(User SID,Group SIDS),以及特權列表。
● 安全描述符(security identifiers)。被訪問的安全對象的相關安全信息。
域中表明身份是用sid表明而不是用戶名。
查看用戶屬性objectsid來查看一個用戶的sid。
域中對象訪問之間驗證ACL大體流程
A----------->B
- 對象A來訪問B的時候,A會出示自己的Access Token,(A的sid、A所在組的sid、特權列表)
- 對象B首先判斷是不是需要特權才能訪問,如果需要特權,則查看A的Access Token看有沒有那個特權。
- 對象B通過A的Access Token,來判斷A的用戶 sid以及組sids,跟自己的ACL做比對,來判斷是否讓A進行訪問。
ACL相關
ACL包含DACL和SACL
DACL:Discretionary Access Control List,定義對象的訪問控制策略(允許或拒絕訪問),DACL的ACE定義了哪些用戶或用戶組對該對象具有怎樣的訪問權限,當請求訪問該對象時,系統檢查請求方的SID與對象DACL中的ACE配置策略,根據找到的ACE配置授予訪問或拒絕訪問。如果該對象沒有設置DACL,系統默認允許所有訪問操作,如果對象配置了DACL但找不到對應SID的ACE條目,系統將拒絕訪問操作;
SACL:System Access Control List,定義對象的訪問行為記錄策略,SACL的ACE定義了對哪些用戶或用戶組的哪些訪問行為進行日志記錄,例如對指定用戶的訪問成功、失敗行為進行審計記錄日志等。
DACL起到的作用是權限訪問控制,也就是判斷一個用戶能不能訪問安全對象:****
SACL的作用是記錄訪問成功與否
ACE相關
這點主要清楚ACE的組成:
重點為有什么權限以及是否可以繼承。
權限分類:
- 通用權限
- 特殊權限
- 拓展權限
通用權限
表明對這個條目的通用讀寫權限。
特殊權限
對某個屬性的權限一個條目包含若干個屬性,通用屬性是對整個條目的權限。
特殊屬性就是對某個屬性的權限
拓展權限
擴展權限,比如強制更改密碼
權限是否被繼承
這個很好理解,不說了
SDDL
安全描述符定義語言(SDDL)
####### 利用adfind 查看某個屬性的ACL
SSDL 拆分
簡單來說 可以拆分為 :所有者+組+DACL+SACL
值對照:
https://clan8blog.wordpress.com/2016/08/08/sddl-explained/
通用權限拆分后結果:
(
A; ACE類型(允許/拒絕/審核)
CI; ACE標志(繼承和審核設置)
GW; 權限(增量權限列表)
; 對象類型(GUID)
; 繼承的對象類型(GUID)
S-1-5-21-1812960810-2335050734-3517558805-1103 受托人SID
)
拓展權限拆分結果:
(
OA; ACE類型(允許/拒絕/審核)
; ACE標志(繼承和審核設置)
CR; 權限(增量權限列表)
00299570-246d-11d0-a768-00aa006e0529; 對象類型(GUID)
; 繼承的對象類型(GUID)
S-1-5-21-1812960810-2335050734-3517558805-1178 受托人SID
)
會多一個GUID
PS: CN=Extended-Rights,CN=Configuration,DC=test,DC=local里面,具體在rightsGuid這個屬性里面
特殊權限和擴展權限會在ace中多一個GUID,體現在對象類型里面
由GUID 查看權限的名字:
1)拓展屬性是用CN=Extended-Rights,CN=Configuration,DC=test,DC=local里面的rightsGuid這個屬性
2)特殊屬性是用scheme分區中的schemaIDGUID
CN=ACS-Max-Peak-Bandwidth,CN=Schema,CN=Configuration,DC=god,DC=org
sddl+++增加閱讀性:
-sddlfilter過濾ACL
這個參數后面就是接的ace格式,要過濾的部分寫入參數后相應的位置即可:
AdFind.exe -s subtree -b "DC=test,DC=local" nTSecurityDescriptor -sddl+++ -sddlfilter ;;;;;"TEST\DC2016$" -recmute
