如今越來越多的公司開始限制用戶以本地管理員的身份來運行軟件,隨之帶來的問題是,如何允許用戶執行某些管理行為,例如安裝已批準的軟件。市場上有一些工具旨在解決這個問題。但我也發現了一個問題,即當用戶被允許與安裝程序進行交互時,他們通?梢蕴嵘麄儺斍霸谟嬎銠C上的權限。本文我將為大家演示,如何使用SCCM和Viewfinity進行提權。
SCCM Software Center
系統中心配置管理器(SCCM)支持管理員將軟件安裝程序發布到Software Center,或當前登錄的用戶,更常見的是以NT Authority\System權限運行。 有關SCCM部署類型的更多信息,請參閱此處。
根據安裝程序命令的部署方式,惡意用戶可能會使用這些列入白名單的安裝程序來提升其計算機上的權限。通常,如果允許用戶與安裝程序進行交互,這將是可能的。下面是一個場景的示例。
可以看到Software Center發布的應用程序“Flowdock”可用于安裝,并被標記為“Attended Install”。

安裝程序運行,并允許我們設置安裝路徑,這對于此攻擊(通常)是必不可少的條件。因為如果程序被安裝到Program Files,低權限用戶將無法寫入安裝目錄。 相反,如果我們可以控制安裝路徑,則可以將安裝路徑更改至我們擁有足夠權限的位置。這里,我選擇將該程序安裝到我的桌面。

繼續安裝進程,直至看到完成按鈕的界面。接著,我們啟動PowerShell。

在PowerShell中備份flowdock.exe程序,并將cmd.exe復制到flowdock.exe。然后,我們選中“Launch Flowdock”復選框完成安裝。

cmd.exe啟動后,我們鍵入whoami命令,可以看到當前我正以NT Authority\System權限運行。

Viewfinity
在為某客戶做測試時,我使用owerUp等工具進行初始探測后并沒有任何的發現。因此,我決定開始手動查看。根據以往的經驗,我首先觀察的就是當前運行的進程;蛟S我能找到一個0day,因為我有足夠的時間和耐心去一一的測試這些服務。一番瀏覽后,一個Viewfinity的進程引起了我的注意。這是一個權限管理軟件,與Software Center有些不同,因為它可以用于黑名單、白名單和特權提升。
起初,我并不知道這個軟件,當我瀏覽文件系統時,我看到一個名為vf_elevate.exe的可執行文件。經過一番研究后,我找到了配置文件,并試圖弄清楚這個程序是如何工作的。下圖是該配置文件的片段截圖。

由于在多個位置引用了組和權限,因此XML難以導航,我決定信任程序組名稱。我下載了Sysinternals Process Explorer,以及在配置文件中引用的Wireshark版本。這里,我沒有使用上述SCCM中描述的方法。而是按照通常的做法,安裝Wireshark并立即啟動了它。

通過Process Explorer我們可以看到,該進程的Integrity Level為high,這說明它具有完整的管理員權限,但當前仍以低權限用戶身份運行。這與Software Center的行為方式不同。我無法確定Viewfinity使用什么機制來提升權限(如果你知道,可以在Twitter上告訴我)。

在搗鼓Wireshark時,我幾乎嘗試了所有的可能性,例如使用打開或導出對話框啟動cmd。我發現從這些對話框中啟動的任何內容都將以medium等級運行,并且不會繼承Wireshark的權限。幸運的是,這里有一個Lua腳本控制臺被內置在Wireshark中。我使用Lua啟動了cmd,可以看到它的進程啟動級別為high,這相當于我獲取了一個具有管理員權限的shell。


為了驗證我當前的運行身份,我創建了一個用戶,并將他們添加到本地管理員組中。

使用net user命令查看用戶列表,可以看到新創建的用戶以成功被添加至管理員組。

|