静态分析揭开Joanap木马的神秘面纱
字数 1766 2025-08-25 22:58:56

Joanap木马静态分析技术文档

1. 木马概述

Joanap木马是一个多阶段、模块化的恶意软件家族,具有以下特点:

  • 采用分阶段加载机制
  • 具备持久化能力
  • 包含反分析技术
  • 使用复杂的加密通信机制
  • 具有数据销毁功能防止取证分析

2. 木马执行流程

2.1 整体执行流程

  1. Dropper释放并加载wkcli2000002.dll
  2. Wkcli2000002.dll进行初始通信并解密svc.dll
  3. Svc.dll作为持久化模块进行后续攻击

2.2 详细流程图

[Dropper] → 解析配置 → 释放.dna和wkcli2000002.dll → 加载wkcli2000002.dll
↓
[wkcli2000002.dll] → 初始化通信 → 解密svc.dll → 注册服务 → 删除自身
↓
[svc.dll] → 反调试检测 → 下载执行后续载荷

3. Dropper模块分析

3.1 配置文件结构

配置文件位于文件尾部,结构如下:

  1. 读取最后一个DWORD表示配置项个数
  2. 每个配置项结构:
    • 文件偏移(4字节)
    • 文件大小(4字节)
    • 文件名(变长)
    • 文件名长度(1字节)

3.2 文件释放逻辑

  1. 根据配置项定位文件内容
  2. 对DLL文件进行zlib解压
  3. 将PE文件释放到临时目录
  4. 使用LoadLibrary加载DLL

4. Wkcli2000002.dll模块分析

4.1 API动态获取机制

使用自定义key轮换算法:

  1. 初始key为32字节(0x20)
  2. 每次轮换进行0x80次计算
  3. 计算过程:
    • 索引0的值通过公式一计算
    • 索引e的值通过公式二计算
    • 索引1-F和F-1F用上次轮换的key的0-C和E-1E替换

4.2 字符串解密算法

  1. 对每个加密字符执行:字符^(公式一^公式二)
  2. 每次解密一个字符后轮换key
  3. 循环直到所有字符解密完成

4.3 文件操作特征

  1. 随机文件名生成

    • 使用硬盘SerialNum作为种子
    • 生成6字符文件名+3字符扩展名
    • 用于保存加密CC地址
    • 篡改文件时间信息
  2. 安全删除文件

    • 先用随机字符覆盖文件内容
    • 再调用DeleteFile删除
    • 防止数据恢复

4.4 信息收集功能

收集以下用户信息:

  • 用户权限
  • 计算机名和用户名
  • 操作系统版本
  • CPU信息
  • 网络连接信息
  • 系统语言和国家信息
  • 网络接口信息
  • 磁盘信息

4.5 C&C通信机制

  1. C&C地址存储

    • 来自.dna文件
    • 包含10个上线地址及端口
    • 以十六进制socket结构存储
  2. 通信初始化

    • 以当前时间作为种子随机选择C&C地址
    • 生成长度>0x10的随机通信密钥
    • 发送顺序:
      1. 密钥长度
      2. 密钥内容
      3. 密钥hash校验值
    • 等待4字节确认值
    • 验证确认值与发送密钥hash是否一致
  3. 信息发送

    • 使用通信密钥处理.dna内容后发送
    • 发送用户进程及窗口信息
    • 用户信息经zlib压缩和自定义算法处理
    • 等待8字节返回数据作为互斥体名称

4.6 svc.dll解密与持久化

  1. 使用与dropper相同的配置定位方法
  2. zlib解压后重命名为svc.dll
  3. 通过注册表注册服务实现持久化
  4. 使用批处理脚本删除自身

5. Svc.dll模块分析

5.1 反分析技术

  1. 反调试检测
  2. 反虚拟机检测

5.2 功能分析

  1. 使用相同机制动态获取API
  2. 从C&C接收数据并解密保存到临时目录
  3. 通过CreateProcess加载执行
  4. 作为下载者从C&C获取后续攻击载荷

6. 关键技术与对抗手段

6.1 加密技术

  1. 自定义key轮换算法
  2. 多层加密(zlib+自定义算法)
  3. 通信密钥交换机制

6.2 持久化技术

  1. 服务注册
  2. 多阶段加载确保连续性

6.3 反取证技术

  1. 安全文件删除(覆盖后删除)
  2. 模块化设计减少单一模块暴露风险
  3. 随机文件名生成

6.4 通信隐蔽性

  1. 多C&C地址随机选择
  2. 加密通信协议
  3. 数据校验机制

7. 检测与防御建议

7.1 检测指标(IOC)

  1. 文件特征:

    • .dna文件
    • wkcli2000002.dll
    • svc.dll
    • 特定注册表服务项
  2. 网络特征:

    • 特定通信模式(密钥长度→密钥→hash→确认)
    • 已知C&C地址

7.2 防御措施

  1. 监控异常服务注册
  2. 检测zlib解压内存操作
  3. 拦截可疑的通信模式
  4. 监控临时目录的可执行文件创建

7.3 分析建议

  1. 重点关注文件尾部配置结构
  2. 跟踪key轮换算法实现
  3. 模拟C&C通信解密后续载荷
  4. 分析反调试/反虚拟机技术细节

8. 总结

Joanap木马展示了高级恶意软件的典型特征:

  1. 模块化设计降低检测风险
  2. 强加密通信保护C&C基础设施
  3. 全面的反分析和反取证技术
  4. 专业的信息收集能力
  5. 灵活的下载执行框架

通过深入分析其技术实现,可以提升对此类高级威胁的检测和防御能力。

Joanap木马静态分析技术文档 1. 木马概述 Joanap木马是一个多阶段、模块化的恶意软件家族,具有以下特点: 采用分阶段加载机制 具备持久化能力 包含反分析技术 使用复杂的加密通信机制 具有数据销毁功能防止取证分析 2. 木马执行流程 2.1 整体执行流程 Dropper释放并加载wkcli2000002.dll Wkcli2000002.dll进行初始通信并解密svc.dll Svc.dll作为持久化模块进行后续攻击 2.2 详细流程图 3. Dropper模块分析 3.1 配置文件结构 配置文件位于文件尾部,结构如下: 读取最后一个DWORD表示配置项个数 每个配置项结构: 文件偏移(4字节) 文件大小(4字节) 文件名(变长) 文件名长度(1字节) 3.2 文件释放逻辑 根据配置项定位文件内容 对DLL文件进行zlib解压 将PE文件释放到临时目录 使用LoadLibrary加载DLL 4. Wkcli2000002.dll模块分析 4.1 API动态获取机制 使用自定义key轮换算法: 初始key为32字节(0x20) 每次轮换进行0x80次计算 计算过程: 索引0的值通过公式一计算 索引e的值通过公式二计算 索引1-F和F-1F用上次轮换的key的0-C和E-1E替换 4.2 字符串解密算法 对每个加密字符执行:字符^(公式一^公式二) 每次解密一个字符后轮换key 循环直到所有字符解密完成 4.3 文件操作特征 随机文件名生成 : 使用硬盘SerialNum作为种子 生成6字符文件名+3字符扩展名 用于保存加密CC地址 篡改文件时间信息 安全删除文件 : 先用随机字符覆盖文件内容 再调用DeleteFile删除 防止数据恢复 4.4 信息收集功能 收集以下用户信息: 用户权限 计算机名和用户名 操作系统版本 CPU信息 网络连接信息 系统语言和国家信息 网络接口信息 磁盘信息 4.5 C&C通信机制 C&C地址存储 : 来自.dna文件 包含10个上线地址及端口 以十六进制socket结构存储 通信初始化 : 以当前时间作为种子随机选择C&C地址 生成长度>0x10的随机通信密钥 发送顺序: 密钥长度 密钥内容 密钥hash校验值 等待4字节确认值 验证确认值与发送密钥hash是否一致 信息发送 : 使用通信密钥处理.dna内容后发送 发送用户进程及窗口信息 用户信息经zlib压缩和自定义算法处理 等待8字节返回数据作为互斥体名称 4.6 svc.dll解密与持久化 使用与dropper相同的配置定位方法 zlib解压后重命名为svc.dll 通过注册表注册服务实现持久化 使用批处理脚本删除自身 5. Svc.dll模块分析 5.1 反分析技术 反调试检测 反虚拟机检测 5.2 功能分析 使用相同机制动态获取API 从C&C接收数据并解密保存到临时目录 通过CreateProcess加载执行 作为下载者从C&C获取后续攻击载荷 6. 关键技术与对抗手段 6.1 加密技术 自定义key轮换算法 多层加密(zlib+自定义算法) 通信密钥交换机制 6.2 持久化技术 服务注册 多阶段加载确保连续性 6.3 反取证技术 安全文件删除(覆盖后删除) 模块化设计减少单一模块暴露风险 随机文件名生成 6.4 通信隐蔽性 多C&C地址随机选择 加密通信协议 数据校验机制 7. 检测与防御建议 7.1 检测指标(IOC) 文件特征: .dna文件 wkcli2000002.dll svc.dll 特定注册表服务项 网络特征: 特定通信模式(密钥长度→密钥→hash→确认) 已知C&C地址 7.2 防御措施 监控异常服务注册 检测zlib解压内存操作 拦截可疑的通信模式 监控临时目录的可执行文件创建 7.3 分析建议 重点关注文件尾部配置结构 跟踪key轮换算法实现 模拟C&C通信解密后续载荷 分析反调试/反虚拟机技术细节 8. 总结 Joanap木马展示了高级恶意软件的典型特征: 模块化设计降低检测风险 强加密通信保护C&C基础设施 全面的反分析和反取证技术 专业的信息收集能力 灵活的下载执行框架 通过深入分析其技术实现,可以提升对此类高级威胁的检测和防御能力。