专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
51好读  ›  专栏  ›  看雪学苑

一个msi样本的分析

看雪学苑  · 公众号  · 互联网安全  · 2025-03-18 17:59

正文

SHA256:bc491dab698c81bf9a20df113f99fb6f6b34e8b27a57d5a625caba60070cd73d

文件分析

MSI文件


image-20250225203730454

行为分析

不知道是系统报的错还是伪装的,就随便看看行为吧


image-20250225203821388


进程行为

没有创建行为


image-20250225203911133


文件行为

无文件写入,那应该就是系统不让运行了,那么行为分析意义就不大了,不过为了完整性,还是看看


image-20250225203959135


注册表行为

未发现明显维权

image-20250225204058193


网络行为

无网络连接

image-20250225204127460


详细分析

对于MSI文件,我们使用ocra来看内部文件,主要看如下几个项

image-20250225204711877


CustomAction中只有一个DesignCreativePatronCSE,暂时不用管


image-20250225204748505

主要看File,可以看出有四个文件,我们待会可以导出

image-20250225204854545


binary中也有一个文件,我们也可以取出


image-20250225205043323


目前我们有的就是下图这些了


image-20250225205250846


我们就按照file表的顺序分析就好啦,第一个文件是个zip包


image-20250225210312454


又是4个文件,压缩包带密码,先放着吧,下一个


image-20250225210526807


LEHFBZHYRZrG.exe文件


image-20250225210638365


分析了半天,结果就是个7zip,属性也能直接看到


image-20250225210906955

image-20250225210930070


剩下两个dll,看着像系统dll,先不管了。


之后寻找密码花了一段时间,忘记binary那个文件没有看了,赶紧看下


开头就有大量的有效信息


image-20250225212725061


然后还有安全检测


image-20250225213805963


然后就是解压zip报,删除安装文件和压缩包之类的了


image-20250225213838920


这个时候我们的有效信息就成了压缩包和压缩包密码


我们解压出来文件


image-20250225214318267


有了之前的经验,我们先看看xml文件调用了ogsMPxxx.exe附带了一些参数


想起来前面的binary也有一个类似的调用,区别就是number不一样,先记录下


image-20250225214444906

image-20250225214612475


我们来看看其他文件,ogsMPDCBQsFp是一段数据,可能会用于读取解密


image-20250225214930713


WWMykDEAxSnE.exe是个C#文件,丢进去后感觉不像是自定义文件,搜了下程序集名称,是用来生成系统服务的,那就暂时先不管了


image-20250225215412684


到现在为止,又只剩下一个ogsMPDCBQsFp.exe文件了,这回是go了,花样还蛮多的


image-20250225215659284


第一步居然是解密流程


image-20250225222054177


交叉引用了下,在如下位置Call


image-20250225222146624


那我们先看看解密后的格式


golang的调试会因为异步调用使得IP乱飞,可以在环境变量中加入如下值,来禁用。


GODEBUG="asyncpreemptoff=1"


一共有两次异或,第一次是固定值0xAC,第二次就不是了,如图下所示拿到自身文件名


image-20250225222942944


然后获取路径名偏移3的位置的字符,也即是C://User中的U,那我们怎么知道他会被放置在那个文件夹内呢?这时候,之前的xml就派上用场了。


可以看到key就是P了


image-20250225224309979


我们运行下去,shellcode就出来了


image-20250225224855697


先拿出来,主程序还在继续,先完成再说


后续会连接www.baidu.com,网络连接显示的ip应该是DNS,不过微步的显示挺奇怪的



image-20250225231400893


后续跑歪了,patch一下继续执行,发现后面就是执行shellcode了


image-20250225232147105


所以样本也到了最后环节,分析shellcode


刚开始还是API hash


image-20250225235249486

image-20250225235233594


然后主函数中又解密出了一个pe文件


image-20250226000042508


后续的代码就不仔细看了,根据结构猜一下是在内存中对齐pe并执行,我们就直接看导出的pe好了


image-20250226000152973


在最后的pe中,一眼就能看到特殊域名


image-20250226001142040







请到「今天看啥」查看全文