從Windows Service帳戶到NT Authority System,一個加糖版本的rotterpotatong,含有少量果汁,即另一個本地特權升級工具
Rottenpotatong及其變體利用基於BITS服務的特權升級鏈,在127.0.0.1:6666 6666上,當您擁有SeImpersonate或SeAssignPrimaryToken特權時。在Windows Build Review期間,我們發現了一個有意禁用BITS的設置,並採用了端口6666 。
我們決定為rotterpotatong做武器:向多汁的土豆打招呼。
有關該理論,請參見腐爛的馬鈴薯 - 從服務帳戶到系統的特權升級,並遵循鏈接和參考的鏈。
我們發現,除了BITS ,我們還可以濫用幾個COM服務器。他們只需要:
IMarshal界面經過一番測試後,我們在幾個Windows版本上獲得併測試了有趣的CLSID列表。
JuicyPotato允許您:
目標clsid
選擇您想要的任何CLSID。在這裡,您可以找到由OS組織的列表。
com聽力端口
定義您喜歡的com聽力端口(而不是編組的硬編碼6666)
com偵聽IP地址
在任何IP上綁定服務器
過程創建模式
取決於假冒用戶的特權,您可以選擇:
CreateProcessWithToken (需要SeImpersonate )CreateProcessAsUser (需要SeAssignPrimaryToken )both啟動過程
如果剝削成功,請啟動可執行文件或腳本
過程參數
自定義啟動的過程參數
RPC服務器地址
對於隱身方法,您可以對外部RPC服務器進行身份驗證
RPC服務器端口
如果您想對外部服務器進行身份驗證,並且防火牆會阻止端口135 ...
測試模式
主要用於測試目的,即測試CLSID。它創建DCOM並打印令牌的用戶。請參閱此處的測試
T:>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

如果用戶具有SeImpersonate或SeAssignPrimaryToken特權,則您是系統。
幾乎不可能防止所有這些COM服務器的濫用。您可以認為通過DCOMCNFG修改這些對象的權限,但祝您好運,這將是具有挑戰性的。
實際解決方案是保護在* SERVICE帳戶下運行的敏感帳戶和應用程序。停止DCOM肯定會抑制這種利用,但可能會對基礎操作系統產生嚴重影響。
可以自動構建。可以從此處的“文物”部分下載二進製文件。
也可以在Blackarch中使用。