Active-Directory

“權限被拒絕”以非管理員身份創建新的基於域的 Dfs 根

  • January 11, 2019

我的任務是將我們領域中的一些日常任務委派給一群沒有Domain Admins會員資格的技術人員。其中一項任務是創建新的基於域的 Dfs 根(Server 2008 R2 Enterprise DC)。這就是我卡住的地方。

c0de

這基本上只是試圖創建一個基於域的 Dfs 根,使用任意(列表中的第一個)域控制器作為第一個命名空間伺服器:

$DfsnRootName="test"
$DCList = Get-ADDomainController -Filter * | ForEach-Object { ,$_.HostName } 
New-DfsnRoot -Path "\\domain.contoso.com\$DfsnRootName" -TargetPath "\\$($DCList[0])\$dfsnRootName" `
            -Description "Dfs-Root für $DfsnRootName" -EnableAccessBasedEnumeration $true -Type DomainV2
$DCList | ForEach-Object {
   New-DfsnRootTarget -Path "\\domain.contoso.com\$DfsnRootName" `
                      -TargetPath "\\$_\$dfsnRootName" -State Online
}

錯誤0r

上面的程式碼拋出一個異常,提到缺少對 CIM 資源的訪問權限。CategoryInfoROOT\Microsoft\Windows\DFSN\MSFT_DFSNamespace中給出的路徑類似於 WMI 路徑:

New-DfsnRoot : Access to a CIM resource was not available to the client.
At line:1 char:1
+ New-DfsnRoot -Path "\\domain.contoso.com\$DfsnRootName" -TargetPath "\\$($DCList ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   + CategoryInfo          : PermissionDenied: (MSFT_DFSNamespace:ROOT\Microsoft\...FT_DFSNamespace) [New-DfsnRoot], CimException
   + FullyQualifiedErrorId : MI RESULT 2,New-DfsnRoot


PS Z:\> $Error[0].CategoryInfo


Category   : PermissionDenied
Activity   : New-DfsnRoot
Reason     : CimException
TargetName : MSFT_DFSNamespace
TargetType : ROOT\Microsoft\Windows\DFSN\MSFT_DFSNamespace

無奈的 res0luti0n 嘗試:

我通過 Dfs 控制台為整個域擁有“委派管理權限”: 委派管理權限截圖

這實際上只是為添加到CN=Dfs-Configuration,CN=SystemAD 容器的主體添加“完全控制”ACE。

*當我在使用“添加 Dfs root”*嚮導時收到錯誤指示服務控制管理器上缺少權限時dfsmgmt.msc,我曾經sc sdset scmanager操縱 SDDL 字元串添加具有“KA”(密鑰訪問)權限的相應組,類似於BUILTIN\AdministratorsACE預設情況下存在。

這樣,我可以使用*“添加 Dfs 根”*嚮導完成所有步驟,但根本身的創建仍然失敗 - “無法添加命名空間伺服器 \ADSRV0\Test。訪問被拒絕”

W00噸?

Just Enough Administration (JEA)端點非常適合您的任務。設計 JEA 端點需要三個主要決策:

  1. 誰可以呼叫 JEA 端點?
  2. 來電者能做什麼?
  3. 通話將以誰的身份進行?

PS 5.1 中的 PowerShell 端點在技術上不是 JEA 端點,但機製本質上是相同的。

Get-PSSessionConfiguration

名稱:microsoft.powershell PSVersion:5.1

StartupScript:

RunAsUser:

權限:NT AUTHORITY\INTERACTIVE AccessAllowed、BUILTIN\Administrators AccessAllowed、BUILTIN\Remote Management Users AccessAllowed

由此,權限組定義了允許呼叫的人。PowerShell 端點可以做什麼沒有限制,因此您擁有完整的語言功能。最後,在 RunAsUser 為空白的情況下 - 程式碼執行模擬為使用者或提供的憑據。

在此基礎上,查看 JEA 的幫助Register-PSSessionConfiguration概述

對於獎勵積分,請考慮使用組管理服務帳戶 (GMSA)作為解決方案的一部分,尤其是作為呼叫者。

在您的情況下: 您可以將端點限制為由您的有限權限使用者呼叫。

然後定義您希望他們使用的特定 cmdlet。這些可以內置,也可以從您指定的自定義模組中公開。保持這些特定於您的任務,以避免使用複雜參數的特權提升攻擊或暴露的太多低級命令可以利用作為提升使用者執行的優勢。

您可以使用RunAsUser域管理員或其他具有足夠權限的帳戶。

引用自:https://serverfault.com/questions/833749