使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析

本文主要是介绍使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

Cisco Talos团队近期发现名为“BlackWater”的恶意活动与可疑的持续威胁组织MuddyWater相关联。在2019年4月,我们开始监测到新型样本,并对其进行分析,结果表明攻击者已经在常规的运营活动中添加了三个不同的步骤,允许恶意软件绕过某些安全控制,并且MuddyWater的策略、技术和流程(TTPs)已经发展到逃避检测阶段。一旦成功,该恶意软件系列会将基于PowerShell的后门安装到受害者的计算机上,从而为威胁参与者提供远程访问的权限。尽管新型恶意活动表明,威胁参与者正在采取措施来提高其运营过程的安全性,并尽可能逃避终端检测,但我们发现其基础代码仍然保持不变。本文中所描述的分析成果将有助于威胁分析团队识别MuddyWater最新的TTP。

在最新的恶意活动中,威胁行为者首先添加了一个经过混淆后的Visual Basic for Applications(VBA)脚本,通过创建注册表项的方式来建立持久性。接下来,该脚本将触发PowerShell Stager,可能是为了伪装成红方工具,而不会被认为是高级威胁。随后,Stager将与一个威胁行为者控制的服务器进行通信,以获得FruityC2代理脚本的一个组件,这是GitHub上的一个开源框架,可以进一步枚举主机。这样一来,威胁参与者就可以监控Web日志,并确定未参与活动的某人是否向其服务器发出请求以尝试调查该活动。一旦枚举命令运行,代理将与不同的C2进行通信,并在URL字段中发回数据。这样一来,基于主机的检测将会变得更加困难,因为这一过程中并不会生成易于识别的“errors.txt”文件。威胁参与者还采取了额外的步骤来替换近期最新样本中的一些变量字符串,这可能是为了避免根据Yara规则进行基于签名的检测。

在近几个月内观察到的相关恶意样本显示,恶意活动的复杂程度不断增加。一些疑似与MuddyWater相关的样本表明,在2019年2月至3月期间,威胁参与者在受感染的主机上创建了持久性,并使用PowerShell命令枚举受害者的主机IP地址以及命令与控制(C2)服务器的IP地址。所有这些组件都包含在木马化的附件里,因此安全人员只需获得文档的样本,即可发现攻击者的TTP。与之相比,4月发生的恶意活动需要采取多步骤的调查方法。

BlackWater文档分析

Talos团队发现有证据表明恶意样本疑似与恶意组织MuddyWater有关。MuddyWater自2017年11月起至今一直活跃,并且主要针对中东地区的实体。我们有一定证据判断,这些文件是通过网络钓鱼电子邮件的方式发送给受害者的。其中的一个木马文件创建于2019年4月23日,其原始文件的标题是“company information list.doc”。中国菜刀

使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析

文档打开后,它会提示用户启用名称为“BlackWater.bas”的宏。威胁行为者对宏添加了密码保护,如果用户试图在Visual Basic中查看宏,可能会发现该宏无法访问,这可能是一种防逆向技术。威胁行为者使用了替换密码对“blackWater.bas”宏进行了混淆,并使用相应的整数来替换字符。

宏运行时的截图:天空彩

使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析

该宏中包含一个PowerShell脚本,可以在“运行”注册表项KCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemTextEncoding中添加条目,从而保证持久性。然后脚本每300秒调用一次文件“\ProgramData\SysTextEnc.ini”。SysTextEnc.ini的明文版本似乎是一个轻量级的Stager。

从文档中找到的Stager的屏幕截图:

使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析

随后,Stager连接位于hxxp://38[.]132[.]99[.]167/crf.txt的威胁行为者控制的C2服务器。crf.txt文件的明文版本非常类似于MuddyWater组织在以土耳其的Krudish政治组织为目标时使用的PowerShell代理。下面的截图中展示了PowerShell木马的前几行。攻击者做了一些微小的改动,例如:修改变量名以避免Yara检测,将命令结果发送到URL中的C2而不是直接将它们写入文件。但是,尽管有上述这些改动,但恶意软件的基本功能仍然是几乎没有变化。值得注意的是,用于枚举主机的许多PowerShell命令似乎是从名为FruityC2的GitHub项目中派生出来的。

针对Krudish政治组织发起攻击的恶意文档中嵌入的PowerShell脚本:二四六

使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析

来自威胁行为者所控制服务器的PowerShell脚本:

使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析

这一系列命令,首先会向C2服务器发送hello消息,然后每隔300秒发送一次后续的hello消息。该信标的一个示例是“hxxp://82[.]102[.]8[.]101:80/bcerrxy.php?rCecms=BlackWater”。值得注意的是,木马化恶意文档的宏也被称为“BlackWater”,并且该值“BlackWater”也被以硬编码的格式写入到PowerShell脚本中。

接下来,该脚本将枚举受害者的主机。大多数PowerShell命令都会调用Windows Management Instrumentation(WMI),然后查询如下信息:

1. 操作系统的名称(即主机名称);

2. 操作系统的OS架构;

3. 操作系统的版本;

4. 计算机系统的域名;

5. 计算机系统的用户名;

6. 计算机的公网IP地址。

在这里,唯一一个没有调用WMI的命令是“System.Security.Cryptography.MD5CryptoServiceProvider.ComputerHash”,这是获取安全系统的MD5哈希值的命令。如果多个工作站在同一网络中被攻陷,那么可能会获取工作站的唯一标识。在获取基于主机的枚举信息之后,它将进行Base64编码,然后将编码后的内容附加到URL POST请求中发送至C2。而在以前的版本中,该信息被写入到文本文件中。编码后命令的示例如下所示:

hxxp://82[.]102[.]8[.]101/bcerrxy.php?riHl=RkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYqMTk5NypFUDEq0D0uTWljcm9zb2Z0IFdpbmRvd3MgNyBQcm9mZXNzaW9uYWwqMzItYml0KlVTRVItUEMqV09SS0dST1VQ0D0uKlVTRVItUENcYWRtaW4qMTkyLjE2OC4wMDAuMDE=

经过解码后,上述命令将变得更加清晰:

hxxp://82[.]102[.]8[.]101/bcerrxy.php?riHi=FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF*1997*EP1*Ð=.Microsoft Windows 7 Professional*32-bit*USER-PC*WORKGROUPÐ=.*USER-PC\admin*192.168.000.01

总结

除了本文中描述的新型反检测方法之外,MuddyWater组织还进行了少量修改,以避免常见的基于主机的特征检测方法,并替换变量名称以逃避Yara特征检测。但这些变化是非常简单的,因为其基础代码库和植入功能仍然基本保持不变。然而,尽管这些修改非常微小,但它们足以避免某些检测机制。在上个月,MuddyWater的一些恶意活动被公开披露,但该组织没有受到这方面的影响,持续开展恶意活动。基于上述观察以及MuddyWater针对土耳其实体的历史恶意活动,我们有理由判断,这一系列恶意活动与MuddyWater恶意组织相关。

IoC

恶意样本哈希值

0f3cabc7f1e69d4a09856cc0135f7945850c1eb6aeecd010f788b3b8b4d91cad

9d998502c3999c4715c880882efa409c39dd6f7e4d8725c2763a30fbb55414b7

0d3e0c26f7f53dff444a37758b414720286f92da55e33ca0e69edc3c7f040ce2

A3bb6b3872dd7f0812231a480881d4d818d2dea7d2c8baed858b20cb318da981

6f882cc0cddd03bc123c8544c4b1c8b9267f4143936964a128aa63762e582aad

Bef9051bb6e85d94c4cfc4e03359b31584be027e87758483e3b1e65d389483e6

B2600ac9b83e5bb5f3d128dbb337ab1efcdc6ce404adb6678b062e95dbf10c93

4dd641df0f47cb7655032113343d53c0e7180d42e3549d08eb7cb83296b22f60

576d1d98d8669df624219d28abcbb2be0080272fa57bf7a637e2a9a669e37acf

062a8728e7fcf2ff453efc56da60631c738d9cd6853d8701818f18a4e77f8717

URL

hxxp://38[.]132[.]99[.]167/crf.txt

hxxp://82[.]102[.]8[.]101:80/bcerrxy.php?rCecms=BlackWater

hxxp://82[.]102[.]8[.]101/bcerrxy.php?

hxxp://94[.]23[.]148[.]194/serverScript/clientFrontLine/helloServer.php

hxxp://94[.]23[.]148[.]194/serverScript/clientFrontLine/getCommand.php

hxxp://94[.]23[.]148[.]194/serverScript/clientFrontLine/

hxxp://136[.]243[.]87[.]112:3000/KLs6yUG5Df

hxxp://136[.]243[.]87[.]112:3000/ll5JH6f4Bh

hxxp://136[.]243[.]87[.]112:3000/Y3zP6ns7kG

检测

Doc.Dropper.Pwshell::malicious.tht.talos

这篇关于使用新型反检测技术:与MuddyWater相关的BlackWater恶意活动分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779206

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3