1行 发表于 2021-2-22 16:54

Emotet木马分析



# Emotet木马分析

## 前言

最近,AnyRun发布了2020年年度报告,其中 Emotet 木马被上传的次数高达3w余次,充分说明了它的活跃程度,所以对Emotet木马进行简要分析。

## 执行流程

利用宏代码来执行下载的恶意程序,再利用rundll32来运行恶意程序的导出函数,拷贝恶意程序,再次rundll32来运行恶意程序的导出函数,获取信息,加密后发送至C2服务器。



## 详细分析

### doc文件

**样本名称:a268e9e152c260a0e80431aa8d6df187d9f24a1b6be71328ea14320436083f51.doc
MD5:a58394937da9d3adb33e948058fde4e9**

样本具有宏代码,利用宏代码解析混淆的ps脚本文件,从恶意地址处下载恶意动态链接库。

样本打开,可以看到警告,宏已被禁用



对宏进行调试之后,可知下面的代码是宏要执行的



解密代码并去除混淆,进行整理之后,payload是从5个恶意地址之中下载恶意动态链接库,利用rundll32.exe来执行恶意动态链接库的control_rundll导出函数。



### IzL1U.dll

**MD5:A7BC5F701692EE285EBB1C331226A832**

由于payload执行的是`"C:\Windows\system32\rundll32.exe" C:\Users\admin\IzL1U.dll Control_RunDLL`,所以明白恶意程序的分析重点是IzL1U.dll的导出函数 Control_RunDLL。
可以使用OD的带参数调试。



对 VirtuAlloc 下断点,直接进入恶意动态链接库的导出函数中进行分析。
导出函数的大部分操作在IDA中可以看到,就不过多分析。



dump出解密后的PE文件,使用IDA查看,发现应该是被平坦化处理过,本来准备试试将平坦化去除。调试了几下,发现程序的重点是这两个`GetProcAddress及执行获取到的函数`,所以就没去除平坦化。



可以直接在调用GetProcAddress函数的上层函数的Retn处下断点,就可以看到EAX中出现的函数名,`CALL EAX`就是执行获取到的函数。





调试之后,可以看到拼接的字符串,然后将恶意动态链接库拷贝到指定目录。





创建自启动服务





以命令行方式,创建拷贝程序的进程



### zqncrdcqr.dsy

想要调试zqncrdcqr.dsy,有两种方法
- 直接附加调试rundll32.exe
- 带参数调试rundll32.exe

在调试之后,OD会卡在ReadDirectoryChangesW函数处,试过跳过后,发现会一直获取它的函数地址,所以直接将与它有关的一大段函数都NOP掉,发现可以继续调试了。
单步分析之后,LoadLibraryW 获取dll的函数地址。



遍历线程,目的是为了获取进程对应的应用程序名称。





获取密钥



获取计算机的名称



拷贝字符串



将遍历进程获取到的所有字符串都拷贝到缓冲区中



将计算机信息拷贝至上面的空间中



复制哈希值和哈希值所在的状态



加密数据,主要加密了计算机名称及进程对应的应用程序名



加密后的数据



获取C2的ip地址





拼接要发送的数据

4fc76e3e





使用 InternetOpen 来初始化应用程序



使用 InternetConnectW 来连接恶意IP地址



使用 HttpOpenRequestW 发送本机信息等加密数据



利用 InternetReadFile 函数从打开的句柄中读取数据



发送完数据之后,遍历 C:\Windows\System32\Ryqsnymjzf\ 目录,将目录下的所有文件都删除





## 现网监控思路

如果想要对Emotet家族进行监控,可以从流量方面入手。对捕获到的流量进行分析,在调试中发现了一些硬编码的东西,通过这些可以对HTTP的header及body部分进行检测。
在流量中发现一个流具有这样的特征,则说明该机器已感染Emotet木马。



也可以使用Yara规则来匹配样本,只是在编写Yara规则时,要在精确与全覆盖两方面有所取舍,需要大量的样本做支撑。

## 总结

有时候就会发现,逆向就是要大胆假设,小心求证。
分析前会觉得样本好难分析啊,分析完成之后就会觉得索然无味。。。
密码: infected

rr2020 发表于 2021-2-22 17:54

楼主你好,我对病毒分析也挺感兴趣的,不知道从哪方面入手,看了你讲解的挺详细,但还是不太懂,代码去混淆我理解是还原代码原本样子,还原出来的好像是vb代码,下面的图又出现像C代码,还有用到的好多工具,都不是太懂,有什么推荐的教程或书籍吗,遇到病毒调试解决的思路可以分享一下吗

linhzye 发表于 2021-3-9 09:57

rr2020 发表于 2021-2-22 17:54
楼主你好,我对病毒分析也挺感兴趣的,不知道从哪方面入手,看了你讲解的挺详细,但还是不太懂,代码去混淆 ...

前面是用宏代码(VBA),后面下载下来的dll是汇编编译。

wohaofanlou 发表于 2021-2-22 20:03

我的电脑中的都是感染EXE文件的木马 全部删掉了

aj0scker 发表于 2021-2-22 23:45

十分详尽的分享,感谢楼主

tsecond 发表于 2021-2-23 08:18

这个模块加载的malware还活着呢!好几年前就分析过一个变种!

cheng911001 发表于 2021-2-23 09:35

谢谢楼主大大分析

龙神邪少 发表于 2021-2-23 10:09

感谢楼主大佬的讲解

你与明日 发表于 2021-2-23 11:26

15OD好评!!{:1_921:}

Airey 发表于 2021-2-23 11:53

我直接好家伙{:1_893:} ,看都看不懂:$qqq

chmod755 发表于 2021-2-23 14:55

楼主问个问题,为啥我这powershell里的dll名字,跟你报告里的不一样?
页: [1] 2 3 4 5
查看完整版本: Emotet木马分析