SHA256:bc491dab698c81bf9a20df113f99fb6f6b34e8b27a57d5a625caba60070cd73d
文件分析
MSI文件
行为分析
不知道是系统报的错还是伪装的,就随便看看行为吧
进程行为
没有创建行为
文件行为
无文件写入,那应该就是系统不让运行了,那么行为分析意义就不大了,不过为了完整性,还是看看
注册表行为
未发现明显维权
网络行为
无网络连接
详细分析
对于MSI文件,我们使用ocra来看内部文件,主要看如下几个项
CustomAction中只有一个DesignCreativePatronCSE,暂时不用管
主要看File,可以看出有四个文件,我们待会可以导出
binary中也有一个文件,我们也可以取出
目前我们有的就是下图这些了
我们就按照file表的顺序分析就好啦,第一个文件是个zip包
又是4个文件,压缩包带密码,先放着吧,下一个
LEHFBZHYRZrG.exe文件
分析了半天,结果就是个7zip,属性也能直接看到
剩下两个dll,看着像系统dll,先不管了。
之后寻找密码花了一段时间,忘记binary那个文件没有看了,赶紧看下
开头就有大量的有效信息
然后还有安全检测
然后就是解压zip报,删除安装文件和压缩包之类的了
这个时候我们的有效信息就成了压缩包和压缩包密码
我们解压出来文件
有了之前的经验,我们先看看xml文件调用了ogsMPxxx.exe附带了一些参数
想起来前面的binary也有一个类似的调用,区别就是number不一样,先记录下
我们来看看其他文件,ogsMPDCBQsFp是一段数据,可能会用于读取解密
WWMykDEAxSnE.exe是个C#文件,丢进去后感觉不像是自定义文件,搜了下程序集名称,是用来生成系统服务的,那就暂时先不管了
到现在为止,又只剩下一个ogsMPDCBQsFp.exe文件了,这回是go了,花样还蛮多的
第一步居然是解密流程
交叉引用了下,在如下位置Call
那我们先看看解密后的格式
golang的调试会因为异步调用使得IP乱飞,可以在环境变量中加入如下值,来禁用。
GODEBUG="asyncpreemptoff=1"
一共有两次异或,第一次是固定值0xAC,第二次就不是了,如图下所示拿到自身文件名
然后获取路径名偏移3的位置的字符,也即是C://User中的U,那我们怎么知道他会被放置在那个文件夹内呢?这时候,之前的xml就派上用场了。
可以看到key就是P了
我们运行下去,shellcode就出来了
先拿出来,主程序还在继续,先完成再说
后续会连接www.baidu.com,网络连接显示的ip应该是DNS,不过微步的显示挺奇怪的
后续跑歪了,patch一下继续执行,发现后面就是执行shellcode了
所以样本也到了最后环节,分析shellcode
刚开始还是API hash
然后主函数中又解密出了一个pe文件
后续的代码就不仔细看了,根据结构猜一下是在内存中对齐pe并执行,我们就直接看导出的pe好了
在最后的pe中,一眼就能看到特殊域名