远程访问木马Cybergate RAT的样本分析
字数 1753 2025-08-20 18:18:40
Cybergate RAT 样本分析技术文档
1. 样本基础信息
1.1 样本标识
- SHA1: 83ebbf632e25dbe69b060d190a42a5125ffe3902
- MD5: 0ee2f7d6a851faf44bf235186be91a19
- SHA256: b64c40843b011d715c431b761680e8565383ac702f5ed80492fb30bd6aa33929
- Unpacme分析链接: https://www.unpac.me/results/7ec3268f-b1ed-49af-a8ff-218513c127db/
1.2 静态分析特征
- 文件类型: 32位PE文件
- 编译器: Delphi编写
- 加壳情况: 使用UPX加壳(未魔改,可直接脱壳)
- 节区特征: .rsrc节被加壳混淆,具有高熵值区域
2. 初始样本分析
2.1 脱壳处理
- 使用UPX -d命令可直接脱壳
- 脱壳后文件会覆盖原文件
2.2 关键函数分析
2.2.1 互斥锁创建
CreateMutexA("_x_X_UPDATE_X_x_")
CreateMutexA("_x_X_PASSWORDLIST_X_x_")
- 检查互斥锁是否存在(GetLastError与0xB7比较)
- 如果存在则关闭句柄并休眠12秒
- 不存在则直接关闭句柄
2.2.2 文件创建
CreateFileA("XX--XX--XX.txt")
- 创建并写入数据到临时文件
- 与沙箱观察到的释放文件行为一致
2.2.3 进程注入技术
- 查找Shell_TrayWnd窗口获取进程ID
- 未找到则创建explorer.exe进程
- 关键注入流程:
VirtualAlloc分配内存WriteProcessMemory写入恶意代码CreateRemoteThread创建远程线程执行
3. 第二阶段样本分析
3.1 样本1:DLL文件
3.1.1 防火墙绕过技术
注册表路径: SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List
- 添加"Windows Firewall Update"到授权应用列表
- 设置":*:Enabled:"允许所有端口和协议通过
3.1.2 HTTP代理功能
- 初始化
TIdTCPServer对象建立TCP服务器 - 实现远程控制通信能力
3.1.3 凭证窃取功能
Chrome密码窃取:
- 定位Chrome数据路径:
%Local AppData%\Google\Chrome\User Data\Default\Web Data - 操作SQLite数据库"\x0FTSQLiteDatabase"
- 解密流程:
- 检索password_value, username_value, origin_url
- 使用
CryptUnprotectData解密数据
Firefox密码窃取:
- 通过"Mozilla3_5Password"函数获取凭证
- 同样使用加密API进行解密
3.2 样本2
- 与初始样本功能相似
3.3 样本3:持久化DLL
3.3.1 持久化技术
注册表路径:
- Software\Microsoft\Windows\CurrentVersion\Run
- Policies\Explorer\Run
- 实现用户登录时自启动
- 通过系统策略强制启动
3.3.2 进程注入增强
- 获取
SeDebugPrivilege权限 - 调整任意进程内存的能力
- 版本检测逻辑:
- 检查
dwMinorVersion判断Windows版本 - 支持Windows NT 3.1/XP/7/Server 2008 R2
- 检查
4. 网络行为特征
- 建立大量网络连接
- TCP服务器监听
- 使用HTTP代理进行通信
- 远程控制指令传输
5. 检测与防御建议
5.1 检测指标
- 互斥锁名称特征:
- "x_X_UPDATE_X_x"
- "x_X_PASSWORDLIST_X_x"
- 文件特征:
- XX--XX--XX.txt模式
- 临时目录中的异常文件创建
- 注册表修改:
- 防火墙授权应用列表异常条目
- 自启动项异常修改
5.2 防御措施
- 监控关键API调用:
- VirtualAlloc + WriteProcessMemory + CreateRemoteThread组合
- CryptUnprotectData异常调用
- 限制调试权限分配
- 监控浏览器凭证访问行为
- 网络层检测异常TCP连接
6. 分析技巧总结
-
Delphi程序分析:
- 禁用IDA的自动分析
- 关注VCL库函数调用模式
-
内存提取技巧:
- 在VirtualAlloc设置断点
- 使用硬件断点跟踪内存写入
- 注意多次分配内存的情况
-
行为分析组合:
- 静态分析 + 沙箱动态分析
- 注册表操作与网络行为关联分析
-
对抗反分析:
- 处理反调试call
- 绕过互斥锁检查
- 修复dump文件的PE结构