提权技术之Bypass UAC

本文深入探讨了Windows系统中Bypass User Account Control (UAC)的技术,详细解释了不同方法如何绕过UAC限制,实现权限提升。通过实例分析,展示了常见UAC漏洞利用过程,同时讨论了防御措施和安全建议,为系统管理员提供关键的安全知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// UAC(用户账户控制)是微软在Windows VISTA以后版本中引入的一种安全机制。通过UAC,应用程序和任务始终在非管理员权限下的安全上下文中运行。
// 除非特别授予管理员权限。UAC可以阻止未经授权的应用程序自动进行安装,并防止无意地更改系统设置。

// UAC需要授权的动作包括:配置Windows Update、增加或删除用户账户、更改用户账户的类型、改变UAC设置、安装ActiveX、安装或移除程序、安装设备驱动程序、
// 设置家长控制、将文件移动或复制到Program File或Windows目录、查看其它用户文件夹等。

// 触发UAC时,系统会创建一个consent.exe进程,该进程通过白名单程序和用户选择来判断是否创建管理员权限进程。请求进程将要请求的进程cmdline和进程路径通过LPC
// 接口传递给appinfo的RAiLuanchAdminProcess函数。该函数首先验证路径是否在白名单中,并将结果传递给consent.exe进程,该进程验证请求进程的签名以及发起者的
// 权限是否符合要求后,决定是否弹出UAC窗口让用户确认。这个UAC窗口会创建新的安全桌面,屏蔽之前的界面。同时这个UAC窗口进程是系统权限进程,其他普通进程无法
// 和其进行通信交互。用户确认之后,会调用CreateProcessAsUser函数以管理员权限启动请求的进程。

// 目前实现Bypass UAC主要有两种方法:一种是利用白名单提权机制,另一种是利用COM组件接口技术。

// PS:基于白名单程序的Bypass UAC:

// 有些系统程序是直接获取管理员权限,而不触发UAC弹框的,这类程序称为白名单程序。例如:slui.exe、taskmgr.exe、msra.exe、eudcedit.exe、eventvwr.exe、CompMgmtLauncher.exe等。
// 这些白名单程序可以通过DLL劫持、注入或者修改注册表执行命令的方式启动目标程序,实现Bypass UAC提权操作。

// PS:对于CompMgmtLauncher.exe程序来说,它是通过修改注册表来进行提权的:它会先读取注册表HKCU\Software\Classes\mscfile\shell\open\command中的数据。所以,如果你构造了
// 该注册路径,并写入启动程序的路径中,那么,CompMgmtLauncher.exe便会启动该程序。

// 步骤:1.打开注册表,将程序路径写入到 HKCY\Software\Classes\mscfile\shell\open\command\(Default) 2.运行CompMgmtLauncher.exe程序。

// 示例代码:
BOOL SetReg(char* lpszExePath)
{
   
   
    HEKY hKey = NULL;
    // 创建项
    ::RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Classes\\mscfile\\Shell\\Open\\Command", 0, NULL, 0, KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &hKey, NULL);
    if (NULL == hKey)
    {
   
   
        Sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值