freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

无需感染加载 Emotet 模块的分析工具:EmoLoad
2023-01-01 11:59:47
所属地 北京

研究人员为深入分析 Emotet 核心组件和其他模块,专门开发了名为 EmoLoad 的工具,使用该工具可以单独加载执行 Emotet 的模块。

EmoLoad

EmoLoad 是一个能够运行 Emotet 模块的定制化加载工具。该工具能分配所需的数据结构,并调用自定义入口点,同时允许自定义执行环境。有了该工具的帮助,分析人员就可以轻松地进行动态分析。为了进一步简化分析过程,EmoLoad 甚至提供了将模块与其嵌入到一个独立的可执行文件中的选项,这使提交模块到沙盒进行分析成为可能。

为什么是 Emotet

Emotet 是近年来最为突出的威胁之一,模块化设计使得 Emotet 可以通过拉取不同的模块来实现不同的目的。例如当与勒索软件相配合时,可以下发对应的恶意组件。

这些额外的组件都由核心模块直接在内存中调用执行,不会落地在磁盘上。即使使用动态分析提取 Payload,单独加载提取的模块也不可避免地会失败,毕竟自定义入口点需要在内存中分配特定的数据结构。这些数据结构是核心模块进行管理,加载的不同组件都只用到其中一部分。

如何使用

可以使用如下命令执行 EmoLoad:

emotet-loader64.exe -d ${dll_path} -e ${epoch} [-c ${computer_name}] [-s ${root_serial}] [-o ${output_path}]

其中:

${dll_path}是要加载的 Emotet 模块的路径
${epoch}是模块所属的 epoch 标识
${computer_name}是计算机名称
${root_serial}是卷序号,为 32 位十六进制数
${output_path}是合并独立文件的输出路径

研究人员已经发现,与僵尸网络有关的 Emotet 模块会根据已知沙盒的特定值将其拉入黑名单。

示例一

加载计算机名称为 WIN-1234 并且卷序列号为 0x123ABC 的模块(来自 epoch 5 僵尸网络):

emotet-loader64.exe -d C:\path\to\emotet-module.dll -e 5 -c WIN-1234 -s 0x123ABC

示例二

将(来自 epoch 5 僵尸网络)的模块嵌入到独立的可执行文件中,带有随机计算机名和随机卷序列号:

emotet-loader64.exe -d C:\path\to\emotet-module.dll -e 5 -o emotet-standalone-module.exe 

生成的可执行文件 emotet-standalone-module.exe 不需要任何参数,就会将原始的 emotet-module.dll 文件释放到磁盘上,随后将其加载到内存中。

实际使用

为了展示 EmoLoad 如何支撑动态分析,对如下两个组件进行了演示。

来自 epoch5 的 Thunderbird 电子邮件客户端帐户窃取程序

来自 epoch 5 的通用电子邮件帐户窃取程序

每个样本都创建独立执行文件,并且提交给分析系统进行分析。

Thunderbird 电子邮件客户端帐户窃取程序

Thunderbird 电子邮件客户端帐户窃取程序被检测为 application/program (Emotet),如下所示。

image.png-318.6kB检测结果

如预期的那样,检测到恶意软件试图访问当前用户的 AppData\Roaming\Thunderbird\Profiles 文件夹窃取消息、密码和用户首选项等个人信息。

image.png-158.6kB窃密行为

通用电子邮件帐户窃取程序

通用电子邮件帐户窃取程序触发了多个检测规则,如下所示:

image.png-168.1kB恶意行为

检测到的另一种行为是加载 pstorec.dll 库,其中包含一组 Windows 保护存储 API,可用于检索 Internet Explorer、Outlook 和其他应用程序存储的网站凭据。

image.png-117.7kB访问 Windows 保护存储 API

EmoLoad 也可以辅助逆向工程。如下所示,将 EmoLoad 加载到调试器中,修改命令行后 EmoLoad 将在继续执行时加载指定的 DLL。

image.png-2445.1kBx64dbg 下调试情况

此时添加一个 DLL 断点,使加载 DLL 的特定函数后触发断点。如下所示,代码在检索到 LoadLibraryW 的地址后在断点处停止。随后可以进一步跟踪分析代码,如果没有 EmoLoad 的话,分析就无从展开了。

image.png-2202.2kB示例分析

结论

全球分析 Emotet 的安全厂商与研究人员非常多,大家也都开发了许多分析工具。VMware 的研究人员也将该工具开源,与社区分享分析能力。

参考来源

VMware

# 僵尸网络 # Emotet # 模块化
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录