使用 sdclt 绕过 UAC 的新方法
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的博客上看到:
https://enigma0x3.net/2017/03/14/bypassing-uac-using-app-paths/
https://enigma0x3.net/2017/03/17/fileless-uac-bypass-using-sdclt-exe/
我此次说明的这种新方法是无文件,基于COM劫持的。
当以中等许可权调用sdclt.exe时,会发生的一些有趣事件:
- 它以高许可权运行另一个sdclt.exe进程
- 高许可权的sdclt进程会调用C:WindowsSystem32control.exe
- control.exe进程以高许可权运行,并且…