生成式AI助力逆向工程:快速破解XLoader恶意软件

本文详细介绍了如何利用生成式AI技术加速对XLoader恶意软件家族的逆向工程分析。通过结合ChatGPT的云端静态分析和MCP实时调试,研究人员能够在几小时内完成传统方法需要数天的手动分析工作,包括解密多层加密、识别算法和提取关键指标。

生成式AI助力逆向工程:快速破解XLoader恶意软件

研究背景

XLoader仍然是目前最具挑战性的恶意软件家族之一。其代码仅在运行时解密,并受到多层加密保护,每层使用隐藏在二进制文件中不同位置的密钥。即使沙箱也无济于事:规避技术会阻止恶意分支执行,真实的C2(命令与控制)域名隐藏在数十个伪造域名中。新版本的发布速度超过了研究人员的研究速度,分析几乎总是与时间赛跑。

生成式AI改变了这一平衡。研究人员不再需要花费数天时间进行细致的手动分析、编写解密例程和逆向工程脚本,而是可以使用AI在几小时内检查复杂函数、识别算法并生成可用的工具,加速获取解密后的代码、字符串和IoC(入侵指标)。

AI辅助分析的两种方法

实时MCP集成

通过模型上下文协议(MCP),我们让LLM直接访问分析工具(IDA Pro、x64dbg和VMware实例)。这使得AI能够实时查询反汇编器、检查内存甚至控制调试器。

优势:

  • 按需获取实时数据
  • 执行"实验和观察"循环
  • 实时协助解包

局限性:

  • 设置和资源要求高
  • 单任务焦点
  • 网络依赖性强
  • ChatGPT UI功能有限

离线IDA导出管道

我们将IDA Pro数据库(反汇编、反编译、字符串等)和恶意软件二进制文件导出到ChatGPT环境中,让ChatGPT对此数据执行静态分析,并在其云沙箱中生成、优化和执行自己的Python脚本。

工作流程:

  1. 导出IDA数据库为结构化格式(JSON和文本)
  2. 将.zip文件上传到ChatGPT项目
  3. 提供初始提示,解释数据组织和输出格式

优势:

  • 无需持久本地会话
  • 易于重复和共享
  • 更好地利用ChatGPT功能
  • 协作友好
  • 安全的脚本执行
  • 快速入门
  • 广泛适用性

实践应用:分析XLoader 8.0

内置加壳器分析

我们使用SHA256为77db3fdccda60b00dd6610656f7fc001948cdcf410efe8d571df91dd84ae53e1的XLoader样本进行演示。

分析步骤:

  1. 初始分析:识别RC4实现,确认样本被加壳
  2. API调用混淆:检测到混淆的API调用
  3. 有效载荷解密:发现主要有效载荷块经过两轮RC4解密
  4. 实时密钥获取:通过MCP获取阶段1和阶段2的RC4密钥
  5. 密钥生成分析:定位密钥生成算法和源密钥材料

整个分析耗时约40分钟,需要39次MCP调用。

解包样本分析

解密后的样本显示IDA无法识别大部分代码,表明代码存在混淆或函数加密。我们发现了三种不同的函数解密方案:

方案1 - 最常见方案:

  • 加密函数已有有效的prologue
  • 全局20字节基础密钥在所有函数中重用
  • 每个函数有唯一的4字节XOR修改器
  • 使用修改后的RC4例程解密6字节标记和函数体

方案2

  • 使用4字节标记和两层加密
  • 第一层使用专用密钥构建函数生成的20字节密钥
  • 第二层密钥由4字节头部标记与16个零字节连接构成

方案3

  • 类似方案2,但第二层密钥不从头部标记派生
  • 每个包装器嵌入自己的20字节常量

通过连续应用三个解密器,我们最终成功解密了101个函数。

API调用反混淆

样本的导入表为空,没有包含库或函数名称的明文字符串。AI助手成功识别了API调用混淆机制,并生成了功能完整的IDAPython反混淆脚本。

API解析机制:

  1. 通过ai_apiid_decrypt函数解密API哈希
  2. 通过ai_apiid_decrypt_salt函数的替代路径
  3. 使用相同的哈希解密机制查找沙箱工件和虚拟机

关键API调用的额外保护

我们发现某些函数通过安全调用蹦床调用:在调用函数指针之前临时加密几乎整个镜像,调用返回后解密相同区域。只有微小的"岛屿"(调用站点返回地址和标记之间的空间)保持未加密状态。

字符串解密

样本中没有可读字符串,但包含一系列共享相同骨架的短例程。AI助手成功分析了字符串解密算法,并生成了解密175个字符串的脚本。

域名解密

提取IoC是恶意软件分析的关键任务。在恢复的字符串中,我们看到64个Base64编码的条目,代表需要解密的域名。

解密流程:

  1. ai_dec_domain_NN函数获取Base64编码的加密域名
  2. Base64解码
  3. 使用存储在ctx+0x23D0的20字节密钥进行第一层RC4解密
  4. 使用ai_dec_func_11生成的密钥进行第二层解密
  5. 最终获得明文字符串

结论

生成式AI改变了恶意软件分析的平衡。结合云端分析和偶尔的MCP辅助运行时检查,我们将大部分机械逆向工程工作委托给LLM。AI的使用并没有消除对专业知识的需要,但大大加速了分类、反混淆和脚本编写的繁重工作。

对于防御者来说,这不仅仅是生产力的提升。更快的周转意味着更新的IoC、更快的检测更新,以及攻击者更短的攻击机会窗口。对于研究人员来说,它降低了分析一些最复杂恶意软件家族的门槛。

我们的研究表明,通过正确的工作流程,生成模型已经可以作为力量倍增器——帮助安全防御者跟上那些曾经被认为过于耗时而无法分析的威胁步伐。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计