静态分析揭开Joanap木马的神秘面纱
字数 1766 2025-08-25 22:58:56
Joanap木马静态分析技术文档
1. 木马概述
Joanap木马是一个多阶段、模块化的恶意软件家族,具有以下特点:
- 采用分阶段加载机制
- 具备持久化能力
- 包含反分析技术
- 使用复杂的加密通信机制
- 具有数据销毁功能防止取证分析
2. 木马执行流程
2.1 整体执行流程
- Dropper释放并加载wkcli2000002.dll
- Wkcli2000002.dll进行初始通信并解密svc.dll
- Svc.dll作为持久化模块进行后续攻击
2.2 详细流程图
[Dropper] → 解析配置 → 释放.dna和wkcli2000002.dll → 加载wkcli2000002.dll
↓
[wkcli2000002.dll] → 初始化通信 → 解密svc.dll → 注册服务 → 删除自身
↓
[svc.dll] → 反调试检测 → 下载执行后续载荷
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基础设施
- 全面的反分析和反取证技术
- 专业的信息收集能力
- 灵活的下载执行框架
通过深入分析其技术实现,可以提升对此类高级威胁的检测和防御能力。