吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10645|回复: 65
收起左侧

[PC样本分析] Emotet银行家木马的分析与检测

  [复制链接]
TYLS123 发表于 2021-11-9 23:13
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 TYLS123 于 2021-11-12 23:22 编辑

一、Emotet银行家木马分析与检测

介绍

​                Emotet从2014年出去至2021年为止历经多次变种,本次课题选取几个比较典型的IOC进行分析,试图从主机、流量以及代码审计层面分析该木马的行为特征。
​                Emotet木马的攻击流程大致如下:Emotet利用垃圾邮件分发带有宏病毒的word文档,该word文档会调用powershell下载两个有效载荷,一个是包含预定银行列表的配置文件,另一个是Emotet的攻击有效载荷,该有效载荷包含外层的混淆器以及内层的恶意代码。

样本IOC

宏病毒:

a268e9e152c260a0e80431aa8d6df187d9f24a1b6be71328ea14320436083f51

宏病毒下载的payload:

7d6057f8d2dbdfd00fc109da6e428c11979edb5e958023d4c201b0d3931124ae

进程树如下

image-20211101172814769.png

代码审计分析特征

​                Emotet是一种主要通过垃圾邮件进行传播的木马。传播至今,已进行过多次版本迭代。早期版本中,它通过恶意JavaScript文件被投递。在后来的版本,演变为使用启用宏的Office文档从C2服务器下载后进行传播,本本分分析主要包括:如何宏病毒分析、释放持久性payload,Emotet恶意软件如何与其C2服务器进行通信,如何识别可执行文件中的硬编码C2服务器列表

1.宏病毒

​                这个受感染的文档中包含宏,它的宏中包含了一些恶意 VBA 代码。一旦用户点击了 Enable Content 按钮,即""启用宏""文件中的恶意的 VBA 代码就会自动运行。经过一段时间后,它会生成并执行一个很大的 PowerShell 文件。生成的 PowerShell 代码会从几个动态生成的 url 下载真正的 payload

(1)在宏代码开始加载的时候断下来,按住SHIFT键,点击"启用内容"按钮,然后松开SHIFT。然后按下ALT+F11,打开宏编辑窗口

image-20211031191004071.png

(2)通过调试宏代码后分析,Cnt0qpf_e5r值中传递的就是利用powershell从PowerShell 代码会从几个动态生成的 url 下载真正的 payload,显而易见,该payload使用了base64编码技术

image-20211031191233893.png

(3)通过base64在线编码对payload进行解码,解码后的payload如下图所示。发现该payload被混淆,通过代码来看,发现$Ml3evql即为恶意链接。点击工具栏中的运行,先运行一下该脚本,然后在命令行中输入$Ml3evql,查看该变量的值

image-20210930154236518.png

变量$Ml3evql是一个包含七个 URL 的列表。它使用它们从远程服务器下载有效负载payload

该脚本执行的流程为:

1.创建目录为下面下载的文件提供路径
C:\Users\qw\Z3tnc5d\L6z3oo3\.dll

2.从下面7个恶意链接中下载DLL文件
http://insvat.com/wp-admin/Dw/
http://littleindiadirectory.com/l/TOYuT/
http://blogs.g2gtechnologies.com/blogs/v/
http://pattayastore.com/visio-network-1hmpp/j5/
http://rsimadinah.com/wp-content/16qT/
https://tenmoney.business/wp-content/nhW/
https://sureoptimize.com/well-known/QsEs/

3.调用rundll32执行动态链接库中的Control_RunDLL导出函数

2.Payload

(1)查看该payload的基本信息

image-20211018172058168.png

(2)使用Process Moinitor查看进程相关信息

Process Moinitor先进行过滤,首先过滤出Process Create和Process Exit,能够快速看出当病毒释放时,发生了什么,并且什么正在创建

image-20211025212551828.png

从Process Moinitor发现该TCP的一些连接请求

119.59.124.163:8080
81.169.140.14:443
46.101.212.195:8080
68.169.49.14:7080
103.31.232.93:443
(3)使用x64dbg手动脱壳

1.脱壳

为新进程清空了350000内存地址

image-20211025151417386.png

dump下该部分。右键->Dump Memory to File,命名为119_00350000.bin

image-20211025152945061.png

SHA256:f08cc76ad0f070783c40d97065fc2ca09c49a5d9cdddeede58cb48e278f51e40

119_00350000.bin文件属性如下

image-20211025153440906.png

使用PEStudio打开119_00350000.bin,如下四张图所示,发现这是一个PE文件,并且只有一个库和导入表并且字符串也很少,猜测可能依然存在壳或者混淆,将该文件后缀修改为exe

image-20211027151453746.png

image-20211027151522831.png

image-20211027151539300.png

image-20211027151844367.png

(4)使用x64dbg继续分析脱壳后的文件即119_00350000.exe

为很多局部变量开辟了大量的堆栈空间,

image-20211027155103175.png

双击上图中两个连续的call调用的函数,能看到一堆静态字符串,Windows API是在运行时被动态解析的,下图中的这些字符串就是恶意软件的哈希,即API调用了什么,它将通过一些实例,在那里它将实际解密哈希的含义

image-20211027155713249.png

在两个call之后的指令处即move处下断点—>按F9,运行到该断点处,上面的windows API会一一解析,就能够看到这些Windows API的调用了

image-20211027155914929.png

在symbols处看到有更多的导入库

image-20211027171537344.png

打开process Monitor查看进程,设置过滤器,重点关注119_00350000.exe对文件、注册表、进程进行的一些操作

image-20211029112245304.png

获取Windows文件夹的位置

image-20211108163513963.png

获取命令行参数,内存中存储的参数为"--8c7fd39f",

image-20211029152446042.png

将从命令行中获取到的命令参数和内存中存储的参数进行比较,如果相等就进入到B8AB即核心代码不相等就进入D26C即死循环

JNZ(或JNE)(jump if not zero, or not equal),汇编语言中的条件跳转指令。结果不为零(或不相等)则跳转。

image-20211029115739620.png

通过修改EAX的值为00000000进入到核心代码B8AB处继续分析

image-20211029152803764.png

进入到B65E继续分析

image-20211029133359662.png

创建了一个互斥体变量

image-20211029153912772.png

又创建了一个互斥体变量

image-20211105150010309.png

使用CreateEventW函数创建两个线程,利用SignalObjectAndWait函数使得两个线程通过上图中创建的这两个互斥体变量来同步,如把一个互斥体变量设置成有信号的状态,然后等待另一个互斥体变量的信号,即原子操作,最后释放互斥体变量,关闭句柄

image-20211029154853392.png

获取HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Local AppData注册表中的数据,为%USERPROFILE%\AppData\Local

image-20211105130512461.png

获取将要复制的文件(即病毒样本)的基本信息

image-20211105132727011.png

查询HKLM\System\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName的值,即计算机的名字

image-20211105133849353.png

进入到D441函数继续分析

下图显示为选择语句,符合条件则跳转到第二个SHGetFolderPathW函数,获取C:\Users\asus\AppData\Local路径

image-20211105135348571.png

删除文件,虽然调用了&DeleteFileW函数,但是此时恶意文件并没有被删除

image-20211105140039102.png

获取目录的文件系统属性,并在该目录下创建文件夹

image-20211105150111642.png

如下图所示,在C:\Users\asus\AppData\Local目录下创建了makermferror文件夹

进入0108DAA9继续分析

image-20211029174349886.png

获取临时文件夹路径以及临时文件名

image-20211105152119875.png

在C:\Users\asus\AppData\Local\Temp文件夹下发现新的临时文件

image-20211105152436456.png

下面的代码的含义是查询C:\Users\asus\AppData\Local\makermferror\makermferror.exe是否存在,不存在则返回

image-20211105153030783.png

查询C:\Users\asus\AppData\Local\makermferror\makermferror.exe:Zone.Identifier路径,返回的为空

image-20211105153806210.png

(5)核心代码分析

红色方框为函数进入核心代码

image-20211108211058562.png

创建服务——打开已存在的服务——>修改服务的信息配置——>启动服务

image-20211108213535293.png

退出程序

image-20211105155308415.png

(5)查看外联的服务器

使用010 Editor打开119_00350000.bin,MS-DOS 文件可通过文件开头的 ASCII 字符串“MZ”(十六进制:4D 5A)(“幻数”)来识别。“MZ”是 MS-DOS 的主要开发者之一 Mark Zbikowski 的首字母缩写。所以我们必须用十六进制编辑器清除多余的部分。

image-20211025154500639.png

编辑—>删除。在过滤掉不必要的十六进制数据后,我们解压了 Emotet,保存为119_00350000.exe

image-20211025154543054.png

在调试器中重新运行解压版本的恶意软件之前,使用 PE-Bear查看 PE 文件是否已映射。通过查看 .text 部分,该文件似乎未映射。通常映射时,.text 部分全为0。

image-20211025160546340.png

使用x64dbg打开119_00350000,我们现在可以尝试找到其他 C2 服务器。为此,我们将使用从行为分析中收集的第一个 IP (119.59.124.163:8080),然后通过反转 IP 163 124 59 119 → A3 7C 3B 77 并转换为十六进制代码中的模式十六进制

image-20211025170152793.png

找到了一个匹配项

image-20211025170455275.png

双击找到的匹配项

image-20211025170713576.png

右键.data—>Dump Memory to File,将dump下的文件保存为119_00350000_00250000.bin

image-20211025171216824.png

该文件119_00350000_00250000.bin的属性

SHA256
ebb06ad0365a106a65e0b21a76de3e19965775034de62aeb15d622dc57e68e11

image-20211025171127188.png

通过python脚本提取出其中的所有ip和端口信息

image-20211025173241709.png

在此代码中,仅使用了 Emotet 已知的 4 个主要端口。

# 01BB = 443 # 1F90 = 8080 # 0050 = 80 # 1BA8 = 7080

p = re.compile(b"(....(\xbb\x01|\x90\x1f|\x50\x00|\xa8\x1b))")

但可以修改它以查找通过 Emotet 使用的 OSINT 已知的更多端口(如 20、21、22、30、53、143、465、990、993、4143、7080、8090、8443、50000 等),通过将其转换为十六进制。

提取出的ip和端口

103.31.232.93:443
68.169.49.14:7080
46.101.212.195:8080
81.169.140.14:443
119.59.124.163:8080
50.28.51.143:8080
86.42.166.147:80
51.15.8.192:8080
200.58.171.51:80
23.92.22.225:7080
119.92.51.40:8080
138.68.106.4:7080
5.77.13.70:80
71.244.60.231:7080
186.1.41.111:443
185.86.148.222:8080
190.230.60.129:8080
200.51.94.251:143
109.104.79.48:8080
80.85.87.122:8080
81.213.215.216:50000
139.5.237.27:443
109.169.86.13:8080
77.55.211.77:8080
183.82.97.25:80
46.29.183.211:8080
190.104.253.234:990
182.188.39.68:80
142.93.82.57:8080
46.163.144.228:80
62.75.143.100:7080
62.75.160.178:8080
203.25.159.3:8080
201.183.247.58:443
189.166.68.89:443
46.28.111.142:7080
190.230.60.129:80
190.38.14.52:80
189.160.49.234:8443
89.188.124.145:443
190.1.37.125:443
91.205.215.57:7080
71.244.60.230:7080
181.29.101.13:8080
151.80.142.33:80
46.21.105.59:8080
46.41.151.103:8080
186.83.133.253:8080
184.69.214.94:20
114.79.134.129:443
178.249.187.151:8080
88.250.223.190:8080
79.143.182.254:8080
178.79.163.131:8080
201.184.65.229:80
80.240.141.141:7080
190.230.60.129:80
170.84.133.72:8443
217.199.160.224:8080
159.203.204.126:8080
190.221.50.210:8080
187.188.166.192:80
78.189.76.2:50000
190.85.152.186:8080
79.129.0.173:8080
190.10.194.42:8080
190.158.19.141:80
170.84.133.72:7080
149.62.173.247:8080
113.170.129.113:443
91.83.93.124:7080
201.199.93.30:443
76.69.29.42:80
212.71.237.140:8080
119.159.150.176:443
5.196.35.138:7080
201.163.74.202:443
181.188.149.134:80
217.199.175.216:8080
87.106.77.40:7080
77.245.101.134:8080
181.36.42.205:443
200.57.102.71:8443
185.187.198.10:8080
186.0.95.172:80
123.168.4.66:22
0.0.0.0:0
61.141.59.46:52826
126.53.191.40:1738
81.105.92.160:22159
85.93.132.12:28063
24.102.194.133:15948
119.16.155.3:1901
37.67.115.145:8486
55.43.72.70:32197
33.59.186.233:10302
3.3.120.178:11309
47.70.184.3:51372
29.56.179.227:36109
53.50.119.213:37756
121.228.238.106:31779
93.251.152.238:56932
38.194.124.168:36165
104.78.226.216:63704
82.37.46.149:14507
56.52.50.155:58978
103.214.69.74:18416
96.98.217.209:758
121.87.44.84:34760
50.125.134.213:32555
100.211.85.84:4447
102.136.204.96:43252
97.202.110.118:8905

宏病毒的防御方法

Emotet银行木马主要通过电子垃圾邮件的方式进行传播感染目标用户,感染链中的关键步骤是Microsoft Word文档,其中包含旨在感染易受攻击的Windows主机的宏,通过对Emotet的分析,总结出以下有关安全意识的习惯。

1、从邮件角度
该木马是借助社会工程学,利用人类的弱点进行实施的攻击,因而对于接收大量邮件的岗位人员应提高对于邮件的安全性检验,收发邮件时要确认收发来源是否可靠,不要随便点击异常的邮件标题,更 加不要随意点击或者复制邮件中的网址, 不要轻易下载来源不明的附件。

2、从word文档角度
通常情况下,word文件不需要启用宏功能,但凡涉及启用“宏”,一律等同恶意文件,可以在word设置中禁用“宏功能”,针对带有自动宏病毒的Office文件,可以在Office打开文档的时候,始终按住SHift键,将禁止存在的一起自动宏

3、从通信角度
可以开启杀软的联网控制功能,如火绒开启联网控制功能的步骤如下:火绒->防护中心->系统防护->开启联网控制,开启此项功能后所有的联网行为都会提醒,遇到如powershell联网且不是自己执行的情况,要提高警惕并及时采取应对措施

4、从预防角度

​                养成及时更新操作系统和软件应用的好习惯,同时也要做好文件的 备份,以防止勒索软件加密重要文件后无法恢复。

附录:

提取C&C主机的python脚本:https://github.com/cybercdh/hacks/blob/master/emotet/emotet_config.py

image-20211029154432309.png

免费评分

参与人数 39威望 +2 吾爱币 +128 热心值 +36 收起 理由
Ricard路先生 + 1 我很赞同!
whaleben + 1 + 1 我很赞同!
neal5808 + 1 谢谢@Thanks!
404undefined + 1 + 1 我很赞同!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
WaterBottle + 1 + 1 我很赞同!
流泪的小白 + 1 + 1 热心回复!
mylaobaby + 1 + 1 我很赞同!
TIANJIFUYUN + 1 鼓励转贴优秀软件安全工具和文档!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yifengyff + 1 + 1 我很赞同!
sapin + 1 + 1 谢谢@Thanks!
it_harry + 1 + 1 谢谢@Thanks!
gaosld + 1 + 1 用心讨论,共获提升!
wfzc197647 + 1 + 1 我很赞同!
3303232005 + 1 + 1 热心回复!
yixi + 1 + 1 谢谢@Thanks!
squab + 1 用心讨论,共获提升!
crazyofcn + 1 我很赞同!
5a1t + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
axct + 1 我很赞同!
wangyuankl123 + 1 我很赞同!
hkx666 + 1 我很赞同!
woshi2 + 1 我很赞同!
吾之名翎 + 1 我很赞同!
xxx1 + 1 + 1 我很赞同!
d3d + 1 + 1 用心讨论,共获提升!
luozangchen + 1 我很赞同!
pxj1983 + 1 + 1 我很赞同!
jinxiaohui + 1 我很赞同!
shj666 + 1 + 1 我很赞同!
ttao88 + 1 我很赞同!
shiina0831 + 1 + 1 谢谢@Thanks!
jackyflyer + 1 + 1 我很赞同!
卖血上网 + 1 + 1 我很赞同!
努力加载中 + 1 + 1 用心讨论,共获提升!
Hmily + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
LegendSaber + 1 + 1 我很赞同!
张伯伦 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2021-11-10 17:14
TYLS123 发表于 2021-11-10 17:08
好像还是有点问题

那几个图是多出来的?还是没贴到正文里?
Hmily 发表于 2021-11-10 17:24
TYLS123 发表于 2021-11-10 17:08
好像还是有点问题

我看了下,有一些是重复的,也有丢了一个的,你在原文里看这里:
![image-20211029115739620](image-20211029115739620.png)
越南邻国宰相 发表于 2021-11-10 09:31
Hmily 发表于 2021-11-10 10:59
@TYLS123 请按照https://www.52pojie.cn/misc.php? ... 29&messageid=36 这个教程方式把图片贴到markdown文章的图片位置,可以直接使用discuz这种贴图方式就行。
h07799486 发表于 2021-11-10 11:10
好厉害啊,感谢分享~虽然我没看懂哈
 楼主| TYLS123 发表于 2021-11-10 13:00
Hmily 发表于 2021-11-10 10:59
@TYLS123 请按照https://www.52pojie.cn/misc.php?mod=faq&action=faq&id=29&messageid=36 这个教程方式把 ...

已修改,谢谢

点评

好像还有几个图多出来,是不是插丢了?  详情 回复 发表于 2021-11-10 13:02
Hmily 发表于 2021-11-10 13:02

好像还有几个图多出来,是不是插丢了?
dookp 发表于 2021-11-10 14:24
可以 666
wyz19910605 发表于 2021-11-10 16:19
内容不错  给你点一个咱哦
 楼主| TYLS123 发表于 2021-11-10 17:08
Hmily 发表于 2021-11-10 13:02
好像还有几个图多出来,是不是插丢了?

好像还是有点问题

点评

我看了下,有一些是重复的,也有丢了一个的,你在原文里看这里: !(image-20211029115739620.png)  详情 回复 发表于 2021-11-10 17:24
那几个图是多出来的?还是没贴到正文里?  详情 回复 发表于 2021-11-10 17:14
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 05:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表