UAC白名单挖掘
用户帐户控制(User Account Control)是Windows Vista(及更高版本操作系统)中一组新的基础结构技 术,可以帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统,同时也可以帮助组织部署更易于管理 的平台
使用UAC,应用程序和任务总是在非管理员帐户的安全上下文中运行,但管理员专门给系统授予管理员 级别的访问权限时除外。UAC会阻止未经授权应用程序的自动安装,防止无意中对系统设置进行更改
VS2022里面的UAC
在visual studio里面有一个manifest文件,这个文件本质上是一个xml文件,用于标识当前应用程序的配 置属性,其中这几个级别明细如下
aslnvoker 默认权限
highestAvailable 最高权限
requireAdministrator 必须是管理员权限
我们可以在链接器->清单文件里面找到UAC的执行级别,更改执行级别
寻找UAC白名单文件
我们需要的UAC程序需要满足以下几个条件
1. 程序的manifest标识的配置属性 autoElevate 为 true
2. 程序不弹出UAC弹窗
3. 从注册表里查询Shell\Open\command键值对
这里可以使用sigcheck64.exe这个文件来检查,微软有官方链接
Sigcheck 是一种命令行实用工具,可显示文件版本号、时间戳信息和数字签名详细信息(例如证书链)。 它还提供一个用于在 VirusTotal 上检查文件状态的选项、一个针对 40 多个防病毒引擎执行自动文件扫描的站点,以及一个用于上传文件以供扫描的选项。
这是我对虚拟机ComputerDefult.exe文件执行的结果
Sigcheck v2.90 - File version and signature viewer
Copyright (C) 2004-2022 Mark Russinovich
Sysinternals - www.sysinternals.com
c:\windows\system32\ComputerDefaults.exe:
Verified: Signed
Signing date: 5:55 2024/9/6
Publisher: Microsoft Windows
Company: Microsoft Corporation
Description: Set Program Access and Computer Defaults Control Panel
Product: Microsoft?Windows?Operating System
Prod version: 10.0.22621.3527
File version: 10.0.22621.3527 (WinBuild.160101.0800)
MachineType: 64-bit
Manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="amd64"
version="5.1.0.0"
name="Microsoft.Windows.ComputerDefaults" type="win32" />
<description>Set Program Access and Computer Defaults Control Panel</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
processorArchitecture="amd64"
/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
uiAccess