Study Notes of using sdclt.exe to bypass UAC

发布于 2024-10-16 12:45:49 字数 4512 浏览 17 评论 0

0x00 前言

Matt Nelson‏ @enigma0x3 在最近的文章中公开了一个绕过 Win10 UAC 的技巧,通过修改 HKCU 下的注册表键值实现对 UAC 的绕过,文章地址如下:

0x01 简介

本文将对其进行测试,分享测试心得,整理该方法的攻防技巧

0x02 原理

Sigcheck

可用来查看 exe 文件的清单(manifest)

下载地址:https://technet.microsoft.com/en-us/sysinternals/bb897441.aspx

在 Win10 环境下,cmd 下运行:

sigcheck.exe -m c:\windows\system32\sdclt.exe

如图

Alt text

level="requireAdministrator"

true 代表可自动提升权限

在 Win7 环境下,同样使用 Sigcheck 查看 sdclt.exe

如图

Alt text

level="asInvoker"表示不会提升权限,这也就是不支持 Win7 的原因

接下来,使用 ProcessMonitor 监控 sdclt.exe 的启动过程,查找是否会调用其他程序

0x03 实际测试

测试环境: Win 10 x64

注:

该方法只在 Win10 下测试成功

cmd 下输入:

sdclt.exe

正常启动,如图

Alt text

使用 ProcessMonitor 查看启动过程

如图

Alt text

启动 sdclt.exe 的过程中会以 High 权限查找注册表键值 HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe

如果手动修改该注册表键值,填入参数,那么就能够实现 UAC 的绕过

绕过方法如下:

新建注册表键值:

HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe

并将默认值设置为 cmd.exe

如图

Alt text

再次启动 sdclt.exe,发现转而去执行 cmd.exe,并且实现了对 UAC 的绕过,如图

Alt text

注:

启动的 exe 不能加参数,否则失败

例如填入 C:\Windows\System32\cmd.exe /c calc.exe,无法实现利用

如图

Alt text

在实际利用的过程中,如果需要加参数,可通过先将参数写入脚本,再加载脚本的方式进行利用

为了更好的隐蔽,实现“无文件”利用,可以尝试寻找 sdclt.exe 是否存在支持传入参数的命令

Matt Nelson‏ @enigma0x3 的第二篇文章就是解决了这个问题,文章地址如下:https://enigma0x3.net/2017/03/17/fileless-uac-bypass-using-sdclt-exe/

修改注册表,劫持 /kickoffelev 传入的参数,实现“无文件”利用

具体方法如下:

新建注册表键值:

HKCU:\Software\Classes\exefile\shell\runas\command\

新建项 isolatedCommand ,类型 REG_SZ ,内容作为启动参数,可设置为 notepad.exe

如图

Alt text

接着在 cmd 下输入:

sdclt.exe /KickOffElev

成功执行参数,启动 notetad.exe,如图

Alt text

参数换成 regedit.exe,启动过程并未被 UAC 拦截,成功绕过

如图

Alt text

但是通过创建注册表键值 exefile\shell\runas\command\会影响其他正常 exe 程序的启动,所以在利用上需要先创建键值,执行 sdclt.exe,之后再删除该键值

整个过程通过 powershell 实现,完整 POC 可参考:https://github.com/enigma0x3/Misc-PowerShell-Stuff/blob/master/Invoke-SDCLTBypass.ps1

0x04 防御和检测

防御:

UAC 权限设置为“Always Notify”,那么该方法将会失效

检测:

监控注册表键值:

HKCU:\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe

HKCU:\Software\Classes\exefile\shell\runas\command\

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

月野兔

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

qq_7J1imQ

文章 0 评论 0

《一串符号》

文章 0 评论 0

hls.

文章 0 评论 0

雅心素梦

文章 0 评论 0

塔塔猫

文章 0 评论 0

微信用户

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文