最近一个银狐样本的分析
字数 1436 2025-08-29 08:29:59
银狐样本分析技术文档
样本基本信息
- SHA256: 70826f24a6f857dd220e637884465b961b252c1374ccaa757a97f587ccf36144
- 样本类型: 银狐恶意软件
- 分析日期: 2025年3月24日
行为分析
进程行为
- 样本调用自身后创建PowerShell进程
- 执行绕过Windows Defender的操作:
Add-MpPreference -ExclusionPath 'C:\','C:\ProgramData','C:\Users','C:\Program Files (x86)' -Force
文件行为
- 释放多个可执行文件到文档目录
- 采用白加黑技术(合法程序加载恶意DLL)
- 核心恶意模块使用VMP(Virtual Machine Protect)保护
注册表行为
创建三个计划任务,对应不同的恶意文件
网络行为
- 连接多个国内IP地址(可能为CDN节点,非真实C2)
- 使用WSASocket套接字进行网络连接
详细技术分析
主程序分析
反分析技术
- 严重代码混淆
- 多层自解密机制
- 使用VMP保护核心模块
执行流程
- 提权操作:提升自身权限
- 反沙箱技术:
- 使用两个不同的睡眠函数
- 数据填充操作
- 反杀软技术:
// 遍历进程查找并关闭360安全软件 if (Find360Process()) { Terminate360Process(); } - 网络通信:
- 使用ROT加密拼接C2地址
- 从特定文件中提取加密字符串(查找*/&字符后取70位)
- 解密后还原真实C2地址
- 持久化:
- 创建计划任务
- 设置Windows Defender排除项
Shellcode分析
- 创建互斥体确保单实例运行
- 带参数重新执行自身程序
- 关闭360安全软件的远程连接功能
- 解密并执行下载的payload
子程序分析
特征
- 伪装成UPX加壳(实际为自解密程序)
- 需要特定参数才能执行完整功能
- 使用互斥体控制执行
网络连接逻辑
- 检查系统启动模式(故障安全模式不连接)
- 优先使用ws2_32.dll,失败后使用mswsock.dll
- 连接IOC中指定的C2服务器
技术总结
攻击技术
-
防御规避:
- 多层加密和混淆
- VMP保护核心模块
- 动态解密执行
- 禁用安全软件防护
-
持久化:
- 创建计划任务
- 设置Windows Defender排除项
-
命令与控制:
- 动态生成C2地址
- 使用CDN节点作为跳板
- 多备用通信模块
检测指标(IOC)
-
文件特征:
- 释放路径:用户文档目录
- 文件哈希(参见原始报告)
-
网络特征:
- 特定IP连接模式
- ROT加密的C2地址生成算法
-
行为特征:
- 修改Windows Defender排除项
- 创建特定名称的互斥体
- 针对360安全软件的对抗行为
分析工具与方法
推荐工具
-
行为分析:
- 微步云沙箱
- Cuckoo Sandbox
-
逆向分析:
- IDA Pro(带调试功能)
- x64dbg
- PEiD(检测加壳)
-
网络分析:
- Wireshark
- Fiddler
分析方法
-
动态分析:
- 使用条件断点跟踪解密过程
- 内存dump提取解密后的代码
-
静态分析:
- 识别关键字符串(如互斥体名称)
- 跟踪API调用链
-
网络流量分析:
- 解密C2通信协议
- 识别CDN跳转模式
防御建议
-
终端防护:
- 监控PowerShell执行Add-MpPreference命令
- 阻止对安全软件进程的终止操作
- 检测VMP保护的可执行文件
-
网络防护:
- 拦截可疑的国内CDN节点连接
- 监测ROT加密的URL请求
-
企业防护:
- 限制计划任务创建权限
- 监控文档目录下的可执行文件
- 实施应用程序白名单
-
应急响应:
- 检查Windows Defender排除项
- 查找特定互斥体存在
- 分析可疑的计划任务
附录:关键代码片段
PowerShell防御绕过
Add-MpPreference -ExclusionPath 'C:\','C:\ProgramData','C:\Users','C:\Program Files (x86)' -Force
C2地址生成算法(伪代码)
char* GenerateC2() {
char* encrypted = FindPatternInFile("*/&", 70); // 从文件中查找模式
char* decoded = ROTDecrypt(encrypted);
char* url = Concatenate("https://", decoded, "/malware");
return url;
}
反杀软逻辑
void AntiAV() {
while(1) {
if(Is360Running()) {
Kill360Process();
Block360Connections();
}
Sleep(5000);
}
}