利用Empire獲取域控許可權
文章翻譯自http://www.harmj0y.net/blog/empire/expanding-your-empire/ ,根據自我理解略有改動。
許可權提升
首先我們可以在主agent選單中檢視使用者名稱前有沒有*來判斷我們獲取到的許可權是否是高許可權,也可以利用info命令根據是否有“high_integrity = 1”來判斷。
由於需要一定許可權才可以獲取憑證,所以我們第一時間嘗試提權。
在Empire中可以使用shell命令來執行windows中的命令,發現我們當前使用者“dfm”在本地管理組裡面:
雖然在管理組裡面,但是我們的agent並不是所謂的高許可權,猜測可能是uac作祟,嘗試使用Empire的bypassuac功能獲取高許可權會話:
可以看到,我們的使用者名稱前面多了個前面提到的*。
憑據收集
我們使用ps命令檢視該agent上的程序,發現有個“Mike”使用者的程序:
使用mimikatz命令獲取Mike使用者憑據:
Empire中還可以使用“creds”命令進行視覺化檢視:
輸入creds <filter>命令檢視指定使用者的憑據:
使用者列舉
輸入“usemodule situational_awareness/network/powerview/get_user“命令檢視Mike該使用者的詳細資訊:
通過上圖發現MIke使用者是Workstation Admins組成員,第一章裡面也提到Workstation Admins組屬於本地管理組,這意味著我們可以嘗試使用這些憑據對訪問該組的其他成員。
HUNTING
使用situational_awareness/network/powerview/user_hunter模組來做一些有趣的事,該模組利用“Invoke-UserHunter"預設來獲取域管登入過哪些機器:
發現域管DEV\will-da從192.168.99.136登入過192.168.99.14,我們嘗試Mike使用者是否有許可權登入192.168.99.136。
使用ping -a命令獲取目標機器的機器名:
使用situational_awareness/network/powerview/get_localgroup模組哪些使用者可以登入192.168.99.136(DEVWKSTNx64):
通過上圖發現Workstation Admins組是目標機器上的本地管理組之一,且Mike使用者有許可權登入該機器。
橫向滲透
我們嘗試竊取Mike使用者的程序令牌來獲取目標機器的訪問許可權,發現Mike使用者有個cmd程序在執行著。可以利用ps cmd命令過濾ps輸出:
使用steal_token <PID>命令竊取令牌,嘗試獲取目標機器C盤:
OK,我們已經有許可權了。
然後利用usemodule lateral_movement/invoke_wmi命令來獲取再一個Empire agent:
通過設定Listener和ComputerName來執行,如果失敗,可以通過設定CredID繼續嘗試:
成功獲取再一個Empire agent,利用mimikatz繼續獲取新的憑據:
利用management/psinject模組進行程序注入,注入到will-da執行的程序中:
使用situational_awareness/network/powerview/get_domain_controller模組獲取域控制器:
順利訪問域控:
HOPPING THE TRUST
我們這次目的是獲取父域lab.local許可權。
首先使用situational_awareness/network/powerview/get_domain_trust模組檢視信任關係:
通過上圖發現,子域和父域存在雙向信任,可以利用子域憑證獲取父域許可權。
首先利用management/user_to_sid模組獲取父域lab\krbtgt的SID:
利用credentials/mimikatz/dcsync模組獲取子域dev.lab.local中krbtgt賬號hash:
前面提到的creds命令也可以,並生成對應的CredID:
我們利用credentials/mimikatz/golden_ticket模組實行“黃金票據”攻擊。
把剛剛獲取到的SID中的502改成509:
獲取父域lab.local中krbtgt使用者hash:
現在我們擁有兩個域的krbtgt賬號hash:
利用父域lab.local中krbtgt的hash繼續進行“黃金票據”攻擊:
成功獲取對父域lab.local的域控訪問許可權: