钓鱼技巧:.manifest自启UAC与强签名
字数 916 2025-08-18 11:36:47
Windows UAC自启与强签名技术详解
一、UAC基础概念
UAC(用户账户控制)是Windows操作系统的核心安全机制,主要功能:
- 默认以较低权限运行交互式管理员账户
- 在执行需要管理员权限的任务时通过弹窗提示用户提升权限
- 有效防止恶意软件自动获取高权限
典型表现:
- 普通CMD:受限权限,无法修改系统关键设置
- 通过UAC提权后的CMD:拥有完整管理员权限,可执行系统级操作
二、实现UAC自启的两种方法
方法1:Visual Studio配置
- 创建新项目
- 进入项目属性(Project > Properties)
- 导航至Linker > Manifest File
- 修改UAC Execution Level选项:
asInvoker:默认级别highestAvailable:请求最高可用权限requireAdministrator:必须管理员权限
- 重新编译后,程序图标将显示盾牌标识
方法2:使用mt.exe工具
mt.exe是Windows SDK提供的清单工具,使用步骤:
- 准备manifest文件(包含UAC请求)
- 执行命令:
mt.exe -manifest yourfile.exe.manifest -outputresource:yourfile.exe;1 - 该命令将UAC声明嵌入可执行文件
三、发布者签名技术
所需工具
- makecert.exe:创建证书
- cert2spc.exe:转换证书格式
- pvk2pfx.exe:合并公私钥
- signtool.exe:文件签名
- certmgr.exe:证书管理
签名流程
-
创建根证书:
makecert.exe -n "CN=Microsoft Windows" -r -sv RootIssuer.pvk RootIssuer.cer -
创建子证书:
makecert.exe -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer -sky signature -
转换证书格式:
cert2spc.exe ChildSubject.cer ChildSubject.spc -
合并为PFX格式:
pvk2pfx.exe -pvk ChildSubject.pvk -pi 123456 -spc ChildSubject.spc -pfx ChildSubject.pfx -f -
签名可执行文件:
signtool sign /f ChildSubject.pfx /p 123456 yourfile.exe -
证书部署(目标机器):
- 普通用户权限:
certmgr.exe -add -c Root.cer -s -r currentUser root - 管理员权限:
certmgr.exe -add -c Root.cer -s -r localmachine root
- 普通用户权限:
四、注意事项与限制
-
签名顺序:必须先添加UAC支持,再进行代码签名
-
跨设备限制:
- 签名证书未预装在目标系统时,仍显示"未知发布者"
- 需先在目标系统安装根证书才能显示自定义发布者信息
-
安全影响:
- 此技术并非UAC绕过,只是让程序运行时自动触发UAC提示
- 最终权限提升仍需用户手动确认
五、实际应用场景
- 红队操作中用于提高钓鱼成功率
- 权限维持时确保payload以高权限运行
- 需要管理员权限的合法工具分发