吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10690|回复: 9
收起左侧

[转载] Emotet新模块分析

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

转帖自: https://www.4hou.com/system/16726.html

英语好的看原文,感觉翻译的有些跟原文有出入。 这里:https://www.fortinet.com/blog/threat-research/analysis-of-the-new-modules-that-emotet-spreads.html





导语:研究人员通过持续监测Emotet C2服务器的连接后,从C2服务器上接收到3个新模块。本文就对这3个新模块在受害者系统上的运行情况进行分析。


研究人员通过持续监测Emotet C2服务器的连接后,从C2服务器上接收到3个新模块。本文就对这3个新模块在受害者系统上的运行情况进行分析。当受感染的系统发送受害者机器和运行的进程列表等相关信息时,C2服务器会响应一个响应包。响应数据是加密的,解密后研究人员发现3个模块,分别是模块1,模块2和模块3。图1是解密后3个模块的数据部分。
图1. 三个模块的数据段红框中的数据是flag或sub-flag。蓝色划线的数据是utf8格式的模块数据,蓝色划线数据之后的数据是模块数据。研究人员分析发现模块1和模块2都是dll文件,会在新创建的进程中执行。模块3是一个exe文件,会在新进程中执行。


Module 1

该模块并不是一个全新的模块,本节只介绍其主要作用。该模块负责将自己传播到同一局域网中的其他计算机中。当在线程中执行时,该模块会枚举受害者机器上的所有网络资源来找出受害者使用的共享对象的其他计算机名。模块会尝试用Administrator作为用户名一个接一个地登陆这些计算机,并重复尝试1000种不同的密码组合。图2是ASM代码和密码的代码段。
图2. 暴力破解攻击

恶意软件成功登陆到计算机后,就会以随机文件名复制Emotet文件到计算机中,并创建一个服务来启动它。图3是创建服务来运行Emotet。


图3. 在被黑的计算机中启动Emotet

为了在受害者的网络环境中传播自己,恶意软件会使用许多不同的API,包括"WNetOpenEnumW", "WNetEnumResourceW", "WNetAddConnection2W", "NetUserEnum", "CopyFileW", "OpenSCManagerW", "CreateServiceW", "StartServiceW"。OpenSCManagerW的API的第一个参数是MachineName,攻击者可以传递\\RemoteComputerName这样的计算机名来建立到计算机上的服务控制管理器的连接。因此,Emotet就可以远程创建和启动该服务来停止恶意软件在LAN上的传播和复制。


Module 2

模块2是一个dll文件,生成日期是2019年1月29日,和模块1一样是在线程中执行的。模块2在线程中执行时会创建一个含有CREATE_SUSPENDED creation flag的名为Emotet (culturesource.exe)的新进程。然后复制主代码到新创建的进程中,之后修改线程环境数据,并开始运行处于挂起状态的进程来在进程中执行复制的代码。模块2会传递一个临时文件路径到命令行参数中的进程中。它用来接收来自受害者计算机的数据。同时在线程函数中,会等待进程停止工作和退出。之后,临时文件就会在线程函数中处理。研究人员分析发现该模块的功能是从受害者的outlook账号中收集邮箱地址信息。最后,加密收集的邮件地址信息并发送到C2服务器。下面看一下如何在新创建的进程中执行。Outlook有一个dll文件OLMAPI32.dll,负责提供一些API来获取outlook账号简介信息,以及从outlook的收件箱、发件箱这样的文件夹中读取文件内容。模块2会从系统注册表中读取OLMAPI32.dll的完全路径,然后加载该dll文件并获取所需的API。该模块中的所有字符串也都是加密的。图4是从注册表中获取的OLMAPI32.dll的完全路径。


图4. 从注册表中获取的OLMAPI32.dll的完全路径


图5. 检查所需的API是否成功加载


一旦OLMAPI32.dll加载,就会加载一些API在sub_4010F0函数中处理。图5中可以看出通过API哈希信息加载API,然后检查这些API是否成功加载。通过调用API,模块2会从受害者的outlook中读取账号信息和邮件地址。最后保存收集的邮件地址到临时文件中以备进一步处理。图6是在临时文件中找到的收集的邮件地址。图6. 收件箱中的邮件地址被收集并保存到临时文件中然后,新创建的进程的主要工作就完成的,进程就会退出线程函数可以获取进程的终端信号,然后从临时文件中读取收集的信息到内存中,并放在一个数据结构中,之后进行加密并发送给C2服务器。图7是从临时文件中读取的收集的outlook邮件地址信息在线程函数中被读取,并准备加密。图7. 数据结构中收集的电子邮件地址信息C2服务器的IP地址被硬编码在内存中。模块2总共有9个IP和端口,下面是IP和端口列表:所有的数据都会加密2次并以base64的形式编码,然后伪装成HTTP cookie的值(base64代码)的形式,并发送HTTP包到上面列出的C2服务器中。图8是发送给C2服务器198.199.96.164 : 443的包。Cookie的值是加密的,base64编码的邮件地址信息从测试的outlook账号中被窃取。图8.发送收集的电子邮件信息到C2服务器


Module 3

模块3是一个exe文件,是恶意软件TrickBot的新变种。从图1中可以看出在所有的模块的sub-flag 1A都有1字节,03表示模块是dll文件,会在线程中执行,就像模块1和模块2一样,01表示模块是exe文件,会单独执行。模块有01 flag,Emotet会把它提取到%ProgramData%的本地文件夹中,并以随机文件名命名,并调用API CreateProcessW来运行。TrickBot变种使用多种成熟的技术来保护代码防止在运行时被调试和分析。

内存中解密PE文件

恶意软件运行后,首先会在内存中解密PE文件,然后以可执行的特征加载到新创建的内存中,并从入口点执行。图9是调用入口点的情形。PE文件的基地址是0x1670000,入口点是0x1671000。然后TrickBot会转到位于0x1670000的PE文件,使用特殊进程来保护函数和字符串。图9. TrickBot调用解密的PE文件的入口点

保护代码的关键函数

许多关键函数都是加密的,只有在调用前才解密,而且调用后会立刻再次加密。它使用关键函数来完成这个动作,下面是该函数sub_1672F6C的ASM代码。 当需要调用一个目的函数时,就调用关键函数Sub_1672F6C,然后传播目的函数索引和目的函数的参数给关键函数。函数Sub_1672F6C (call    dword ptr [ebp+8] ; call 1671EEC)会根据传递的函数索引对函数进行解密。然后解密另一个函数Sub_1672E34(function index为1Ch),该函数用来修正目的函数的正确重定位。之后,目的函数会被调用。

防分析技术
恶意软件会检查其中列出的一些DLL是否在当前进程中加载。这些DLL都是分析工具或防病毒软件,比如VMware, SunBelt Sandbox, Sandboxie, Virtual PC, WPE Pro, Avast, Comodo, iDefense:pstorec.dll, vmcheck.dll, dbghelp.dll, wpespy.dll, api_log.dll, SbieDll.dll, SxIn.dll, dir_watch.dll, Sf2.dll, cmdvrt32.dll, snxhk.dll如果其中任意一个DLL被检测到加载了,恶意软件就会立刻退出进程。TrickBot还会继续检查以下防病毒服务是否运行:Microsoft "WinDefend", Malwarebytes "MBAMService", Sophos "SAVService"如果检测到就执行命令来停止或kill掉这些服务和相关进程。恶意软件会执行cmd.exe /c sc stop WinDefend和cmd.exe /c sc delete WinDefend来停止Microsoft “WinDefend”服务。还会kill掉相关的进程,包括MsMpEng.exe", "MSASCuiL.exe" (for win10)和"MSASCui.exe" (for Win10)。最后,调用API “ControlService”来停止运行的MBAMService服务,图10是停止MBAMService服务的ASM代码段。图10. 停止服务 "MBAMService"

重分配exe

TrickBot会比较进程来查看当前进程是否来自于文件夹%AppData%\winnet。如果不是,就将自己复制到该文件夹然后退出当前进程,并运行新复制的文件夹中的进程。图11是将自己复制到%AppData%\winnet\。图11. 复制自己到文件夹%AppData%\winnet

解密嵌入的PE文件并执行

通过以上检测后,TrickBot会解密内存中嵌入的PE文件,大小为16E00h字节。研究人员分析发现嵌入了3个PE文件,一个是适用于32位Windows平台的,大小为16E00H,一个是适用于64位Windows平台的,大小为1C000H,最后一个大小为342EH。研究人员正在分析这3个PE文件中。

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
willJ + 3 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

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

安全技术 发表于 2019-3-15 02:14
小白路过
hnadsl2001 发表于 2019-3-15 07:53
access78 发表于 2019-3-15 07:53
lyliucn 发表于 2019-3-15 08:35
长知识,看起来很深奥。
shangziq 发表于 2019-3-15 09:05
看来得复习一下原来学过的汇编语言了,好多年没学了,有点生疏了
willJ 发表于 2019-3-15 09:29
有两个图没有出来,你是不是调整下?
 楼主| tfrist 发表于 2019-3-15 10:10
willJ 发表于 2019-3-15 09:29
有两个图没有出来,你是不是调整下?

重新添加了 谢谢
JakerPower 发表于 2019-3-16 03:34
看不懂,感觉高大上
ts0001 发表于 2019-3-17 09:09
感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 09:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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