文章前言
注册表键AlwaysInstallElevated是一个策略设置项,Window允许低权限用户以System权限运行安装文件,如果启用此策略设置项,那么任何权限的用户都能以NT AUTHORITY\SYSTEM权限来安装恶意的MSI文件,从安全的角度来看,攻击者可能会滥用这一点,以便将其权限升级到系统级别。
环境配置首先,在"运行"设置框中输入"gpedit.msc"进入组策略编辑器,之后进行编辑,修改以下内容:
1、组策略—>计算机配置—>管理模板—>Windows组件—>Window Installer —>永远以高权限进行安装:
2、组策略—>用户配置—>管理模板—>Windows组件—>WIndows Installer—>永远以高权限进行安装—>启用:
设置完成后会在注册表(regedit)的以下两个位置自动创建键值"1":
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated:
简单测试我们假设我们已经获取到了一台主机的权限,并且有一个meterpreter会话
确定主机上是否存在此问题的最简单方法是查询以*册表项:
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Metasploit提升权限的最简单和最快的方法是通过metasploit框架,该框架包含一个模块,该模块可以生成一个带有简单有效负载MSI包,该包将作为系统在目标主机上执行,并且它将被自动删除
use exploit/windows/local/always_install_elevated set session 1
PowerUp在这里,可以使用PowerUp的Get-RegistryAlwaysInstallElevated模块来检测注册表键值是否被设置,如果AlwaysInstallElevated注册表键值被设置,则意味着MSI文件
是以System权限运行的,运行该模式的命令如下:
Import-Module .\PowerUp.ps1 Get-RegistryAlwaysInstallElevated
接下来,使用PowerUp来添加账户,运行Write-UserAddMSI模块生成MSI文件:
Write-UserAddMSI
接下来以普通用户权限运行UserAdd.msi:
之后会弹出框用于添加用户名、用户密码、用户组:
之后查看用户可以发现成功添加用户backdoor:
同时成功添加到管理员组:
在渗透测试过程中,我们自然希望不要去惊扰目标用户,避免被发现,所以常常需要使用"静谧模式",关于这一点我们可以在CMD中直接运行UserAdd.msi即可,不过需要添加以下参数:
/quiet:在安装过程中禁止向用户发送消息 /qn:不适用GUI /i:安装程序最常用的格式为:
msiexec /q /i UserAdd.msi
防御措施禁用注册表键值AlwaysInstallElevated就OK~
# windows
# 计算机
# session
# mac
# 注册表
# win
# microsoft
# 环境配置
# 渗透测试
# 键值
# 组策略
# 最简单
# 过程中
# 以高
# 是一个
# 在这里
# 都能
# 会在
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
php485返回空数组怎么回事_php485数据接收为空排查指南【详解】
c++中如何求一个数的平方根_c++ sqrt函数与牛顿迭代法
php下载安装包太大怎么下载_分卷压缩下载方法【教程】
Windows系统文件被保护机制阻止怎么办_权限不足错误处理方案
如何外贸网站设计-能留住客户提升用户体验!
php订单日志怎么记录发货_php记录订单发货操作日志指南【指南】
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
如何在Golang中使用replace替换模块_指定本地或远程路径
php怎么捕获异常_trycatch结构处理运行时错误的技巧【方法】
如何使用正则表达式批量替换重复的“-”模式为固定字符串
如何在Golang中实现服务熔断与限流_Golang微服务容错与流控方法
Win10怎样安装PPT模板_Win10安装PPT模板教程【步骤】
C++中引用和指针有什么区别?(代码说明)
Win10怎么卸载剪映_Win10彻底卸载剪映方法【步骤】
C#如何使用XPathNavigator高效查询XML
Win11怎么更改账户头像_Windows 11自定义用户头像图片设置【步骤】
PHP主流架构怎么部署到Docker_容器化流程【操作】
Go 中 defer 语句在 goroutine 内部不返回时不会执行
php8.4如何配置ssl证书_php8.4https访问配置指南【教程】
Flask 表单数据通过 SMTP 发送邮件的完整实现教程
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
php8.4如何调用com组件_php8.4windows下com操作指南【教程】
win11如何清理传递优化文件 Win11为C盘瘦身删除更新缓存【技巧】
Win11文件扩展名怎么显示 Win11查看文件后缀名设置【步骤】
php高频调试功能有哪些_php常用调试函数与工具汇总【解答】
Windows10如何更改开机密码_Win10登录选项更改密码教程
Go 语言标准库为何不提供泛型切片的 Contains 方法?
Win11怎么关闭贴靠布局_Win11禁用窗口最大化时的布局菜单
如何解决Windows字体显示模糊的问题?(ClearType设置)
Mac如何创建和管理多个桌面空间_Mac高效多任务处理【技巧】
Win10系统更新错误0x80240034怎么办 Win10更新错误解决法【方法】
Win11怎么查看激活状态_查询Windows 11是否已永久激活【详解】
Win11局域网共享怎么设置 Win11文件夹网络共享教程【详解】
Win11怎么设置默认浏览器Chrome_Windows11修改默认网页打开方式
Win11如何开启系统更新 Win11开启系统更新方法【步骤】
如何使用正则表达式提取以编号开头、后跟多个注解的完整代码块
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
php查询数据怎么分组_groupby分组查询配合聚合函数【技巧】
Win11时间不对怎么同步_Win11自动校准互联网时间【设置】
Win11怎么忘记WiFi网络_Win11删除已保存无线连接【教程】
用Python构建微服务架构实践_FastAPI与Django对比详解
Go 中 defer 在 goroutine 内部不生效的原因与执行时机详解
Win11怎么设置多显示器任务栏 Win11扩展任务栏至多屏方便跨屏操作【技巧】
Win10系统映像怎么恢复 Win10使用系统映像还原电脑【指南】
网站体验不好=浪费钱:如何提升-用户体验效果差
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Python技术债务管理_长期维护解析【教程】
c++如何连接Redis c++ hiredis库使用教程【指南】
Linux如何挂载新硬盘_Linux磁盘分区格式化与开机自动挂载【指南】
2025-10-05
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。