首页
社区
课程
招聘
[原创]浅析Emotet银行木马
2021-1-15 18:49 7985

[原创]浅析Emotet银行木马

2021-1-15 18:49
7985

目录

Emotet.assets木马分析

前言

最近,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地址

 

 

 

拼接要发送的数据

 

 

 

 

使用 InternetOpen 来初始化应用程序

 

 

使用 InternetConnectW 来连接恶意IP地址

 

 

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

 

 

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

 

 

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

 

 

现网监控思路

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

 

 

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

总结

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

 

密码: infected


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞4
打赏
分享
最新回复 (7)
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
醒木i 2021-2-23 17:37
2
0
请问,第一步对宏调试是怎么操作的啊?  我没用过,需要什么工具获取嘛
雪    币: 3302
活跃值: (3469)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
1行 1 2021-2-23 17:47
3
0
醒木i 请问,第一步对宏调试是怎么操作的啊? 我没用过,需要什么工具获取嘛
我以前写的宏代码混淆分析里有比较详细的介绍,
https://bbs.pediy.com/thread-257952.htm
雪    币: 6568
活跃值: (3199)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
htpidk 2021-2-23 20:39
4
0
先做个标记,有空再看
雪    币: 3794
活跃值: (1862)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
欧阳休 2021-2-23 21:00
5
0
索然无味这个成语太熟悉!
雪    币: 2063
活跃值: (3823)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lhxdiao 2021-2-24 00:23
6
0
要启用宏的木马太老套了,现在应该做个文档安全沙盒对抗这类需要启用宏的木马
雪    币: 52
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
良为逆 2021-3-26 23:28
7
0
希望有一天我也能成为你这样的大佬
雪    币: 535
活跃值: (617)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Rixo_叶默 2022-2-12 12:52
8
0
大佬,那个去除平坦化和代码加平坦化的方法能不能发个帖子教一下
游客
登录 | 注册 方可回帖
返回