古董级木马?Delphi木马之CyberGate RAT加解密技术剖析
字数 1714 2025-08-05 08:18:25
CyberGate RAT木马深度分析与解密技术详解
一、CyberGate RAT概述
CyberGate RAT是一款使用Delphi编写的远程访问工具(RAT),最早活跃于2010-2012年期间。尽管年代较久,但其核心功能仍在现代变种中保留,近期仍被攻击者用于针对安全研究人员和渗透测试人员的攻击活动中。
主要特点:
- 采用Delphi语言编写,分析难度高于常见RAT
- 支持高度自定义配置(安装目录、进程注入、自启动等)
- 具备反调试和反病毒功能
- 采用多层结构设计(外层木马实体+实际功能木马)
二、CyberGate木马生成与配置
1. 木马生成流程
- 通过GUI界面选择【Tools】-【New Server】进行配置
- 可配置项包括:
- 基本连接信息(服务器地址、端口等)
- 安装选项(目录、文件名)
- 持久化方式(注册表、ActiveX等)
- 进程注入选项
- 反分析功能(反调试、反病毒)
- 键盘记录功能及FTP上传配置
2. 配置信息存储
配置信息以加密形式存储在木马程序中,资源名称为"CG-CG-CG-CG"。
三、木马功能分析
1. 执行流程
- 外层木马实体:
- 解密并提取配置信息
- 根据配置执行进程注入操作
- 实际功能木马:
- 使用UPX加壳
- 根据配置发起外联通信
2. 关键技术点
- 使用FindResource、LoadResource等API提取加密资源
- 采用异或算法解密配置信息(密钥:0xBC)
- 远程线程注入技术实现功能模块加载
四、配置信息解密技术
1. 解密流程
- 从PE资源中提取"CG-CG-CG-CG"资源数据
- 使用异或算法解密(密钥0xBC)
- 配置信息以"#"分隔存储
2. 自动化解密脚本
import pefile
from malduck import xor
def decrypt_cybergate_config(data):
return xor.hex(data, 0xBC)
def extract_config(file_path):
pe = pefile.PE(file_path)
for resource in pe.DIRECTORY_ENTRY_RESOURCE.entries:
for entry in resource.directory.entries:
if entry.name and entry.name.__str__() == 'CG-CG-CG-CG':
offset = entry.directory.entries[0].data.struct.OffsetToData
size = entry.directory.entries[0].data.struct.Size
config_data = pe.get_memory_mapped_image()[offset:offset+size]
return decrypt_cybergate_config(config_data).split('#')
五、通信模型分析
1. 通信协议特征
Server → Client通信:
- 标志:0x7c0a("|\n")
- 结构:
[长度]|\\n[加密数据] - 加密算法:RC4 + Zlib压缩
- RC4密钥:
"njgnjvejvorenwtrnionrionvironvrnvcg230" - 成功标志:解密数据包含
"@@XXXXXXXXXX@@"
- RC4密钥:
Client → Server通信:
- 标志:0x0d0a("\r\n")
- 加密算法:修改字符集的Base64
- 自定义字符集:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"
- 自定义字符集:
2. 通信解密示例
Server → Client解密流程:
- 提取
7c0a后的加密数据 - RC4解密(需验证
@@XXXXXXXXXX@@标志) - Zlib解压
Client → Server解密流程:
- 提取
0d0a前的数据 - 使用自定义Base64字符集解码
六、自动化分析工具实现
1. 配置信息提取工具
完整Go实现见原文,核心函数:
func xorBytes(data []byte, key byte) []byte {
output := make([]byte, len(data))
for i := 0; i < len(data); i++ {
output[i] = data[i] ^ key
}
return output
}
2. 通信解密工具
支持批量解密wireshark捕获的数据,核心功能:
- 自动识别Server/Client通信
- RC4解密与Zlib解压
- 自定义Base64解码
七、防御建议
-
检测方面:
- 监控查找"CG-CG-CG-CG"资源的进程
- 检测RC4密钥的使用
- 注意异常的网络通信模式(特定分隔符)
-
防护方面:
- 限制Delphi程序的执行
- 加强进程注入防护
- 监控异常持久化行为
-
分析建议:
- 使用IDR辅助分析Delphi程序
- 重点关注资源段和加密算法
- 注意多层注入技术
附录:关键数据结构
配置信息索引表
| 索引 | 配置项 |
|---|---|
| 20 | ServerID |
| 21 | Password |
| 25 | Install Directory |
| 57-58 | Process Injection |
| 59 | Persistence |
| 67 | CyberGate Version |
通信协议结构
Server → Client: [长度(明文)]|\\n[RC4加密(Zlib压缩(数据))]
Client → Server: [自定义Base64加密(数据)]\\r\\n
本技术文档详细阐述了CyberGate RAT的工作原理、配置信息解密方法和通信协议分析技术,提供了完整的分析工具实现方案,可供安全研究人员进行恶意软件分析和检测规则开发参考。