1行 发表于 2020-9-16 10:17

简析"千层饼"式伪装方式的病毒

本帖最后由 1行 于 2020-9-16 10:19 编辑




## 前言

有天看到一个分析Dridex银行木马的报告,想到自己对银行木马没什么了解,所以就从any.run上根据Dridex标签下载了一个样本来分析,结果分析到最后发现是一个Phobos勒索病毒,不过这个变种的伪装还是有分析价值的。



## 流程

利用CVE-2017-11882漏洞,在Excel文件打开时下载第一层恶意样本,第一层样本从资源段释放第二层恶意DLL,第二层恶意DLL利用第一层样本中的图片资源,异或解压缩提取出最终勒索病毒。

## 详细分析

恶意程序利用`CVE-2017-11882漏洞`下载主体文件
下载恶意程序



但是网站已经挂了



不过从`any.run`上下载了一个包含下载的恶意文件的pacp包,用`NetworkMiner_2-5`把其中的恶意文件提取出来。



下载文件的版本信息,看着没撒事情,



发现是一个.net框架的恶意程序



打开发现是被混淆过的,



使用`DotNet Id`查看到了恶意程序使用`.Net Reactor`混淆



从GitHub上下载了`de4dot3.1`,然后发现怎么试都不行,


后来又下载了一个别人改编之后的 `de4dot` 然后才把混淆解开



再次打开恶意程序,基本上混淆已经没有了



### 第一层文件

先看看文件有撒资源,发现了一个图片资源,很多恶意程序都会利用图片来保存恶意文件的二进制信息,



从 Main 函数开始调试



base64解密资源段中的数据,加载 AndroidStudio.dll 到内存中,



### 第二层文件 AndroidStudio.dll

在内存中将恶意的动态链接库解析出来,上面的是有混淆的,下面的是去除了混淆了,两个结合起来调试分析



调用了恶意程序 AndroidStudio.dll 的导出函数 StartGame,





先sleep一会,然后获取第一层文件中的图片资源,



对图片资源进行解密



对数据进行异或,



异或之后的二进制数据



最后对数据进行解压缩



解压缩出第三层文件,



### 第三层文件 Phobos勒索病毒

第三层文件还是.net框架的



还是有混淆,将其去除混淆进行分析



直接开始调试,在程序入口点之前对一些数据进行操作



发现还会解密出来一个.net框架的文件,暂时先放放,一会再看他



使用`WriteProcessMemory`来将刚解密出来的文件加载到内存中,



会运行一个powershell进程,来删除文件





然后,可以在火绒剑上看到一直重复执行解密出来的第3层文件,然而一直不加密我的文件,不过勒索文件没撒意思,有意思的是这个样本的伪装方式。

## 总结

这个“千层饼”的伪装方式,还是有些意思的,从攻击者的视角来看,恶意的文件不落地,直接在内存中隐蔽执行了。


样本MD5:34CA23D3E1A47C147D913CC813EAA4C3   https://app.any.run/tasks/fd30617d-8ed6-4906-b5e1-7e321597a42b/

1行 发表于 2020-9-17 09:22

Alex27933 发表于 2020-9-17 08:13
提醒一下,吾爱的md编辑不支持toc目录

目录在个人信息下面

哈哈,前几次发就晓得了,在本地写的,发上来也懒得改了,

1行 发表于 2020-9-17 20:43

chaopi 发表于 2020-9-17 08:33
厉害,顺便请教楼主:.NET加密目前有没有不能被反混淆的混淆方法呢?

网上一搜就有,新版本的一般就不会被混淆了

17877087703 发表于 2020-9-16 10:23

讲述的很清晰,支持你

国际豆哥 发表于 2020-9-16 10:26

牛批,讲的好

shenweiraul 发表于 2020-9-16 10:28

学习了~~~谢谢

油炸煤气罐 发表于 2020-9-16 10:30

;www这种思路还是有点意思

kabengqi 发表于 2020-9-16 10:33

虽然不会逆向,但是不影响我看得过瘾

a910673331 发表于 2020-9-16 10:45

思路清晰 学到了

bobo_008 发表于 2020-9-16 10:48

学习了~~~

Latteitc 发表于 2020-9-16 10:48

厉害,感谢分享

carion 发表于 2020-9-16 11:19

厉害,感谢分享
页: [1] 2 3 4 5 6 7
查看完整版本: 简析"千层饼"式伪装方式的病毒