压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

如何濫用 GPO 攻擊活動目錄 Part 2

正文

在我們真正開始修改GPO之前,我們需要嘗試理解一些關于它們是如何在GPMC和AD中正常更新的復雜問題。因為請相信我,事情并沒有看上去那么簡單。

當你首先創建一個GPO并命名它,然后查看它的“Details”選項卡時,你會看到它有以下User和Computer版本字段:# (AD), # (SYSVOL)。

對于每個GPO,在硬盤的C:WindowsSYSVOLdomainPolicies<guid>上,也有相應的路徑(稱為組策略模板(Group Policy Template))。對于這個GPO,它會是C:WindowsSYSVOLdomainPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}。對于域成員,你還可以通過它的網絡共享訪問SYSVOL,例如,\testlab.localSYSVOLtestlab.localPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}

在GPT中,有一個Machine和User目錄以及一個GPT.INI文件。

PS > ls "\testlab.localSYSVOLtestlab.localPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}"


    Directory: \testlab.localSYSVOLtestlab.localPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       13/01/2019     11:13                Machine
d-----       13/01/2019     11:13                User
-a----       13/01/2019     11:13             59 GPT.INI

很明顯,Computer策略被放入Machine中而User策略被放在User中。

GPT.INI是一個非常簡單的文件,它包含:

PS > cat "\testlab.localSYSVOLtestlab.localPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}GPT.INI"
[General]
Version=0
displayName=New Group Policy Object

請注意,displayName參數不會改變ˉ_(ツ)_/ˉ

如果我們對GPO進行一些修改并刷新GPMC,我們可以看到Computer的AD和SYSVOL編號已經增大了。

每次修改后,它們似乎都在增大,但是由于GPMC在后臺做了一些不可見的操作,除非你使用Process Monitor之類的方法進行監視,所以看起來很小的改動會導致很大的變化。

AD和SYSVOL值存儲在不同的地方,但是理解它們非常重要。

SYSVOL保存在GPT.INI文件中。如果我們再次查看,就會發現版本已經變了。

PS > cat "\testlab.localSYSVOLtestlab.localPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}GPT.INI"
[General]
Version=12
displayName=New Group Policy Object

如果你有一個同時應用Computer和User策略的GPO,它會變得更加復雜,因為GPT.INI的數字格式會發生變化。

PS > cat "\testlab.localSYSVOLtestlab.localPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}GPT.INI"
[General]
Version=65548
displayName=New Group Policy Object

version = [user verion][computer version],其中每個值都為16位。

要“翻譯”它們,我們首先將十進制轉換為十六進制。用科學模式的計算器,結果是1000C。但是因為它們是16位數字,所以實際上是0001000C,因為計算器不顯示前導零。

所以0001是1,000C是12。

AD編號保存為AD中組策略對象的屬性。可以通過Powerview查看它,如下所示:

PS > Get-DomainGPO -Identity "Test GPO" -Properties VersionNumber

versionnumber
-------------
       65548

它使用完全相同的格式。

在GPMC中修改GPO時,它將更新SYSVOL中的相應文件,更新GPT.INI中的值,然后更新它在AD中的versionnumber屬性。

要修改不帶GPMC的GPO,必須進入SYSVOL并手動修改文件。例如:如果我們想使用Restricted Groups部署一些新的本地管理員,我們必須修改C:WindowsSYSVOLdomainPolicies{F3003ADC-17E3-4FBE-A11E-6A41779ADD6E}MachineMicrosoftWindows NTSecEditGptTmpl.inf

更新文件而不增加AD或SYSVOL版本號的限制是:

  1. 客戶端不會自動提取修改,因為他們認為自己已經擁有了最新的配置(除非存在代碼執行,并且可以執行gpupdate /force)。
  2. 這些修改不會在域控制器之間復制。

要使所有客戶端能夠將修改作為其常規組策略更新計劃的一部分,必須手動增加AD和SYSVOL版本號。

這對于GPT.INI來說很容易,因為它只是一個文本文件。versionnumber屬性可以通過Powerview更新:

PS > Get-DomainGPO -Identity "Test GPO" | Set-DomainObject -Set @{'versionnumber'='1337'}
PS > Get-DomainGPO -Identity "Test GPO" -Properties VersionNumber

versionnumber
-------------
         1337

必須始終保持兩個值相同,否則會導致AD / SYSVOL Version Mismatch錯誤。

上一篇:安全攻防信息不對等挑戰加劇 金融行業如何高效進行態勢感知

下一篇:“安全+”沙龍第十四期在上海成功舉辦/1月4日