freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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 # 模块化
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录