深度分析GuLoader和RedLine Stealer采用的反分析技术

admin 2024年1月24日14:39:51评论12 views字数 2642阅读8分48秒阅读模式

更多全球网络安全资讯尽在邑安全

写在前面的话

与很多复杂的软件系统一样,许多恶意软件都采用并依赖“软件配置”这一概念。这种软件配置可以为恶意软件行为建立一个指导方针,并且也成为了安全研究人员检查各种恶意软件家族并分析共同特征的一个主要方面。恶意软件中嵌入的配置数据可以为研究人员了解网络犯罪分子的意图提供宝贵的见解,因此很多恶意行为者也会通过混淆处理或加密等方式来增加配置数据解析的难度。

在这篇文章中,我们将介绍并详细分析GuLoader和RedLine Stealer这两款恶意软件所采用的配置保护技术和反分析技术。

深度分析GuLoader和RedLine Stealer采用的反分析技术

GuLoader技术分析

从研究人员的分析来看,GuLoader的开发人员尽其所能地去对他们的C2配置进行了混淆处理,下图显示的是GuLoader混淆技术演变进化的时间表:

深度分析GuLoader和RedLine Stealer采用的反分析技术

这种技术上的进化和演变导致我们之前提取GuLoader 恶意软件配置的方法已经不再有效了,他们所采用的新技术包括了密文分割和控制流混淆等等。

密文分割

我们在下图的顶部部分,将 GuLoader 之前存储加密配置数据(密文)的方法标记为“旧方法”。在这种旧方法中,密文被存储为连续的字节序列:

深度分析GuLoader和RedLine Stealer采用的反分析技术

在上图的下半部分中,我们将新方法标记为 GuLoader 的“新方法”,其中密文是根据函数计算的。在这个函数中,密文首先被分割成一个4字节的DWORD,而每个DWORD均使用随机数学运算单独进行加密。

比如说,要从GuLoader的新方法中检索密文的第一个DWORD,我们必须执行下图所示的数学运算:

深度分析GuLoader和RedLine Stealer采用的反分析技术

为了从这个新方法中获取完整的密文,我们对每个单独的DWORD执行一系列类似于上图所示方法的操作。之后,我们就可以将这些DWORD值连接在一起并得到完整的密文。

控制流混淆

2023 年初,研究人员曾发现过一个起初VirusTotal (VT) 检测为零的GuLoader样本。使用Hex-Rays IDA Pro对该恶意软件样本进行反汇编和审计分析之后,我们发现了攻击者试图阻止研究人员执行进一步分析的指令,这些反分析指令的主要目的就是触发EXCEPTION_BREAKPOINT、EXCEPTION_ACCESS_VIOLATION和EXCEPTION_SINGLE_STEP异常。

下图显示了GuLoader实现上述反分析指令的技术方法:

深度分析GuLoader和RedLine Stealer采用的反分析技术

上图所示的反分析指令会导致我们之前开发的IDA处理器模块扩展的解决方案失效,考虑到Intel x86 CPU指令长度的可变性,我们无法检测到触发EXCEPTION_ACCESS_VIOLATION和EXCEPTION_SINGLE_STEP异常的庞大指令组合。

由于我们之前的解决方案不再有效,我们不得不手动分析代码来找到这些反分析指令并绕过它们来提取配置,具体方法可以参考【Virus Bulletin白皮书】。

RedLine Stealer技术分析

在我们的分析演示中,使用的RedLine Stealer样本SHA256哈希为“a4cf69f849e9ea0ab4eba1cdc1ef2a973591bc7bb55901fdbceb412fb1147ef9”,在MSIL反编译工具dnSpy的帮助下,我们快速识别了该RedLine Stealer样本的配置数据:

深度分析GuLoader和RedLine Stealer采用的反分析技术

我们使用Python开发了一个解密程序,如下图所示,可以成功地使用样本密文和密钥完成解密:

深度分析GuLoader和RedLine Stealer采用的反分析技术

接下来,我们找到配置数据并在Python脚本中准备好解密函数。但是在解密数据之前,我们必须手动从dnSpy生成的反编译结果中获取密文和密钥。

下图中显示了dnSpy生成的令牌号为0x04000013以及静态IP地址字符串:

深度分析GuLoader和RedLine Stealer采用的反分析技术

在IDA Pro中打开RedLine Stealer样本并导航到相同的函数后,我们可以看到ldstr命令会为所在位置为seg000:29F1、seg000:29FB、seg000:2A05和seg000:2A0F的元数据字符串推送对象引用。

这些元数据字符串分别由位于seg000:29F6、seg000:2A00、seg000:2A0A和seg000:2A14的指令进行设置。其中的stsfld指令负责拿计算堆栈中的值替换静态字段的值,每个字段的计算堆栈值如下图中的红色框框所示:

深度分析GuLoader和RedLine Stealer采用的反分析技术

前文给出的静态IP地址字符串还不足以帮助我们静态提取配置数据,而且也无法确定被压入栈中的IP字段字符串来源。根据微软的说法,上图所示的指令ldstr操作数类型是字符串令牌,而字符串令牌存储在#US(User-Stream)表中。

为了查找字符串令牌,我们使用了一个名为dnfile的开源库,它类似于.NET版本的PEfile。dnfile允许我们通过提供.NET运行时标识符(RID)轻松访问#US令牌。除此之外,dnfile还提供了用于访问用户流等内容的接口。

下图所示的Python实现显示了研究人员如何通过偏移量来访问用户流数据,一旦我们通过令牌获得了用户流数据,我们就将用户字符串传递到解密程序中,并拿到返回的解密配置信息:

深度分析GuLoader和RedLine Stealer采用的反分析技术

总结

通过深入研究GuLoader和RedLine Stealer所使用的反分析方法,我们阐明了从各种恶意软件家族中定位和提取C2配置的过程。通过分析这些恶意软件配置,我们可以更好地检测、分析和开发针对恶意软件的有效解决方案,并有效保护数字资产的安全。

入侵威胁指标IoC

本文分析的GuLoader样本SHA256哈希

32ea41ff050f09d0b92967588a131e0a170cb46baf7ee58d03277d09336f89d9

本文分析的RedLine Stealer样本SHA256哈希

a4cf69f849e9ea0ab4eba1cdc1ef2a973591bc7bb55901fdbceb412fb1147ef9

原文来自: freebuf.com

原文链接: https://unit42.paloaltonetworks.com/malware-configuration-extraction-techniques-guloader-redline-stealer/

欢迎收藏并分享朋友圈,让五邑人网络更安全

深度分析GuLoader和RedLine Stealer采用的反分析技术

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!

推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 

原文始发于微信公众号(邑安全):深度分析GuLoader和RedLine Stealer采用的反分析技术

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月24日14:39:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   深度分析GuLoader和RedLine Stealer采用的反分析技术https://cn-sec.com/archives/2425588.html

发表评论

匿名网友 填写信息