首页
社区
课程
招聘
[原创]一个msi样本的分析2
发表于: 2025-2-27 23:06 2116

[原创]一个msi样本的分析2

2025-2-27 23:06
2116

样本来源:
a67K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5Y4y4Q4x3X3g2C8j5h3k6S2L8W2)9J5k6h3y4F1i4K6u0r3N6r3S2J5k6h3q4V1i4K6u0V1x3U0t1%4z5e0b7&6x3W2)9J5k6o6q4Q4x3X3b7I4i4K6u0W2K9s2c8E0L8l9`.`.
感谢分享~
SHA256:165eb1453ad116dad9d695afb519eacc2996f53643336496731b1bb95e447563

文件分析

msi文件

image-20250227125506266

行为分析

进程行为

安装程序没有看到其他进程创建的行为

image-20250227125734076

文件行为

好像安装失败了?先不管了

image-20250227125848574

注册表行为

未发现明显维权行为

网络行为

未检出,那应该就是安装失败了

详细分析

对于msi文件,我们先使用Orca看下文件结构

File目录下总共有三个文件

image-20250227130953024

第一个Firefox的exe签名正常,应该是个白文件

image-20250227131137874

第二个jpg就是个图片,凡是不清楚里面有没有藏shellcode,但是目前来看就是正常文件

image-20250227131211397

那么我们重点需要分析的就是protector.exe了。先放放,看看msi文件中的其他段。逻辑上我们需要找到哪里会调用protector。

在CustomAction中,我们可以找到如下位置调用了火狐的安装包,viewer.exe也是白文件,用于使用特定参数运行指定文件

image-20250227131910994

image-20250227132609853

msi调用protector比较隐蔽

首先在Property中声明了该文件为AI_APP_FILE

image-20250227132150307

然后调用aicustact.dll执行LaunchAPP调用AI_APP_FILE,其中aicustact.dll也为白文件,签名正常

image-20250227132319041

image-20250227132937822

ok目前为止,我们已经大致确定了目标以及目标程序的调用方法,接下来就开始分析核心文件

protector.exe

rust编写的程序,使用ida9可以恢复大部分符号

我们进入main函数下拉一下就可以看到c2

image-20250227135437292

我们现在还是从头开始分析

首先进入main函数,可以看到request_admin_privileges函数,这个函数用来识别调用属性,如果是管理员执行则继续,否则结束进程,猜测这里就是直接运行无法获取信息的原因

image-20250227152645214

后续add_startup_task函数中调用powershell执行命令做维权操作

image-20250227152558597

image-20250227152111943

1
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -EncodedCommand JABhAGMAdABpAG8AbgAgAD0AIABOAGUAdwAtAFMAYwBoAGUAZAB1AGwAZQBkAFQAYQBzAGsAQQBjAHQAaQBvAG4AIAAtAEUAeABlAGMAdQB0AGUAIAAiAEMAOgBcAFcAaQBuAGQAbwB3AHMAXABTAHkAcwB0AGUAbQAzADIAXABXAGkAbgBkAG8AdwBzAFAAbwB3AGUAcgBTAGgAZQBsAGwAXAB2ADEALgAwAFwAcABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACIAIAAtAEEAcgBnAHUAbQBlAG4AdAAgACIALQBOAG8AUAByAG8AZgBpAGwAZQAgAC0ARQB4AGUAYwB1AHQAaQBvAG4AUABvAGwAaQBjAHkAIABCAHkAcABhAHMAcwAgAC0AVwBpAG4AZABvAHcAUwB0AHkAbABlACAASABpAGQAZABlAG4AIAAtAEYAaQBsAGUAUABhAHQAaAAgAFwAIgBDADoAXABcAFUAcwBlAHIAcwBcAFwAUABpAG4AawBLAGUAeQBcAFwARABlAHMAawB0AG8AcABcAFwAVABlAG0AcABcAFwAaAB1AGgAdQA3AC4AMgA2AFwAXABwAHIAbwB0AGUAYwB0AG8AcgAuAGUAeABlAFwAIgAiADsAIAAkAHQAcgBpAGcAZwBlAHIAIAA9ACAATgBlAHcALQBTAGMAaABlAGQAdQBsAGUAZABUAGEAcwBrAFQAcgBpAGcAZwBlAHIAIAAtAEEAdABMAG8AZwBvAG4AOwAgAFIAZQBnAGkAcwB0AGUAcgAtAFMAYwBoAGUAZAB1AGwAZQBkAFQAYQBzAGsAIAAtAFQAYQBzAGsATgBhAG0AZQAgACIAUwB5AHMAQwBvAHIAZQBUAGUAcwB0ACIAIAAtAEEAYwB0AGkAbwBuACAAJABhAGMAdABpAG8AbgAgAC0AVAByAGkAZwBnAGUAcgAgACQAdAByAGkAZwBnAGUAcgAgAC0ARABlAHMAYwByAGkAcAB0AGkAbwBuACAAIgBUAGUAcwB0ACAAcwB0AGEAcgB0AHUAcAAgAHQAYQBzAGsAIgAgAC0AUgB1AG4ATABlAHYAZQBsACAASABpAGcAaABlAHMAdAAAAA==

绕过windeender,执行如下命令,隐藏路径并在登陆时启动

image-20250227153112155

在这之后就是核心内容了,创建内存,接收上述c2的文件,然后执行

image-20250227153454616

image-20250227153531970

image-20250227153614924

之后这个文件就没有什么操作了,确认为下载器+加载器

然后就是shellcode分析了,我们可以从内存中dump出来,也可以直接访问ip获取

Donut的pe转shellcode,我们可以再转成pe文件

image-20250227155308011

代码使用donut,在如下位置解密c#指令集,后续使用clr非托管调用执行

image-20250227222737585

image-20250227224429317

我们来看下释放的文件

image-20250227224136275

直接把病毒类型爆出来了,XWorm

image-20250227225446590

每十秒建立一次连接,具体的直接看XWorm的分析吧~

IOC

154.197.33.29

微步云沙箱已可检出样本,欢迎大家使用哦~


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回