那些從未聽過的高危用戶權限
前言
我發(fā)現(xiàn)Windows用戶權限非常有趣。獨立于計算機/域對象DACL,用戶權限主要負責“通過什么方式可以讓特定的用戶登錄到一個特定的系統(tǒng) ”,它被組策略中的用戶權限分配所管理。我最近利用Get-ProcessTokenPrivilege函數(shù)中將枚舉到的特權整合到PowerUp,尤其是特殊的權限。
SeEnableDelegationPrivilege
SeEnableDelegationPrivilege被我忽略了。這項權限負責一個用戶帳戶是否可以“允許計算機和用戶帳戶被信任為委派”,我忽略了它的權限是因為規(guī)定的文檔:“沒有任何理由將此用戶權限分配給成員服務器上的任何人和屬于域的工作站,因為它在這些上下文中沒有意義; 它僅與域控制器和獨立計算機相關。“所以這個權利適用于域,而不是本地域加入的機器。
我們一開始都認為這個權限只負責TRUSTED_FOR_DELEGATION和TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION標志的修改-這將建立一個漂亮的攻擊。不幸的是,對我們的攻擊者,看來這種權限也控制msDS-AllowedToDelegateTo屬性的修改,它包含受限制的委派目標。
如果我們沒有SeEnableDelegationPrivilege 權限,我們就不能修改授權特定的用戶帳戶控制設置,也不能修改目標msDS-AllowedToDelegateTo 字段(即使我們有對象的完全控制權):
現(xiàn)在的問題是:我們如何確定哪些用戶在域中擁有這項權限?由于SeEnableDelegationPrivilege僅適用于域控制器本身,我們需要檢查應用于域控制器的任何組策略對象是否修改了給定DC的用戶權限分配。在大多數(shù)情況下,這將是“默認域控制器策略”(GUID={6AC1786C-016F-11D2-945F-00C04FB984F9})。這也正是 Get-DomainPolicy -Source DC PowerView函數(shù)所做的:
因此,默認情況下,只有BUILTIN\Administrators(即域管理員/企業(yè)管理員等)的成員才有權修改這些授權設置。但是,如果我們可以編輯這個GPO或者應用于域控制器的任意一個GPO會發(fā)生什么?
為什么關心
在給予足夠的權限下,有一百萬種方法開啟Active Directory后門。Sean Metcalf把這些叫作“Sneaky Active Directory Persistence Tricks”。其中的一些涉及到ACL后門,這些我在過去已經(jīng)介紹過一些。其他的方法可能需要惡意修改的組策略。還有一些可能涉及修改用戶對象。SeEnableDelegationPrivilege 的這種方法比以上所說的都高明。
如果我們在域中控制了一個擁有SeEnableDelegationPrivilege權限的對象,這表明對象在域中的任何用戶對象上都有GenericAll/GenericWrite權限,我們可以無限期的,隨意攻擊域。
由于在默認域控制器GPO上提升域權限或編輯權限只需幾分鐘,你可以對給定的GPO進行單一的修改來實現(xiàn)這個后門。這GPO位于\\DOMAIN\sysvol\testlab.local\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf 。通過將任何用戶SID或用戶名添加到[Privilege Rights]節(jié)的SeEnableDelegationPrivilege行中,當用戶/當前電腦的DC重啟或刷新其組策略時,設置就會生效:
如果惡意用戶在域中擁有任意用戶的完整的權限,我們可以修改用戶的msDS-AllowedToDelegateTo的值為我們想要攻擊的任何目標。如果需要,我們還可以修改TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION UAC標志。在這種情況下,讓我們利用ldap/DOMAIN_CONTROLLER來隨意使用DCSyncing:
如果惡意用戶對任何目標受害都有GenericAll權限,那么我們甚至不必知道受害用戶的密碼。我們可以使用Set-DomainUserPassword將密碼強制重置為一個已知值,然后執(zhí)行asktgt.exe/s4u.exe攻擊流。
很顯然,從防守端,我們可以通過PowerView或其他方式來了解哪些用戶在域控制器中擁有SeEnableDelegationPrivilege特權。這個權限會賦予用戶完整的域控制權,這是一個偉大的“微妙”的權限,但是可以很簡單的檢測(如果你知道你在找什么)出AD后門。有明顯的方法,你可以破壞域控制器中已經(jīng)被賦予的SYSTEM權限,在未來幾周,我會詳細介紹檢測特定DACL修改的方法,但是,在組策略中審查這些應用是一個好的開始。