在Windows 10中,應用程序的路徑可以用來繞過用戶賬戶控製

點擊標題下「藍色微信名」可快速關注           

一種在Windows 10 中利用應用程序的路徑來繞過用戶賬戶控製(UAC)的新技術由安全研究員Matt Nelson進行了詳細的說明。

在過去的幾個月裏,Nelson詳細介紹了其他UAC繞過方法,其中一個是濫用了事件查看器,另一個是利用了磁盤清理程序。前者已經被Remcos RAT和Erebus勒索軟件運行商用於實時攻擊當中,並對俄羅斯和白俄羅斯的軍事與航空航天組織構成了威脅。

現在,研究人員發現了另一個“不用依賴IFileOperation/DLL劫持方法”就能繞過的方法,但是該方法隻能在Windows 10上工作。根據Nelson的說法,微軟已經開始專注於解決之前發現的已經公開的繞過問題了,但是新的在Windows 10上的繞過工作代號為15031,“絕大多數的公開的繞過技術已經被修補了。”

由於他們的manifest文件,會自動建立有微軟簽名的二進製文件產生,研究人員仔細查看,發現了一個與sdclt.exe相關的問題。這是一個與Windows備份和恢複工具有關的程序。實事證明,sdclt.exe會自動更新是因為它的manifest文件,但是僅僅是在Windows 10上(Windows 7上阻止其從中等狀態自動建立manifest文件)。

sdclt.exe的執行流程是,二進製文件會啟動control.exe,從而在完整性極高的上下文環境中打開一個控製麵板項目。研究人員發現這個過程中通過在HKEY_CURRENT_USER中查詢App Path關鍵字,就能夠獲得control.exe的路徑。

“從高完整性的程序中調用HKEY_CURRENT_USER(或HKCU),著實有趣。這通常意味著一個正在升級的程序正在與注冊表位置進行交互,中等完整性的程序可以將其篡改,”Nelson說道。

如果搜索control.exe的完整路徑沒有從HKCU中返回關鍵字,sdclt.exe就會繼續在Windows中按序搜索。然而一旦關鍵字可以被修改,進程就會先對其進行搜索,攻擊者可以用這個來讓sdclt.exe查詢一個修改了關鍵字的App 路徑。研究人員設法讓cmd.exe返回到查詢中去,這是一個高完整性的過程。

然而這種技術不允許對一個參數進行操作,也就是說攻擊者必須將payload放置到磁盤中去。一旦參數被添加,字符串就會被解釋為ShellExecuteInfo結構的IpFile的值,它將會被傳遞給ShellExecuteEx,但是它不會被執行。因為這個值不存在。

研究人員還在GitHub上發布了一個腳本來演示這種攻擊。“腳本中采用的是到達你payload的一個完整路徑。 C:\Windows\System32\cmd.exe 是一個很好的例子。它會自動添加關鍵字,啟動sdclt.exe,然後將其清除,”Nelson解釋道。

研究人員解釋到,可以將UAC的級別設置為“始終通知”或者從本地管理員組中刪除當前用戶來防止攻擊。若想要進一步監控此類攻擊,可以通過利用methods/signatures來查找,以及一旦HKCU\Microsoft\Windows\CurrentVersion\App Paths\Control.exe加入了新的注冊表項就彈出警告。

轉載請注明來自精睿安全





長按二維碼關注精睿安全

微信號:jrsecurity