勒索病毒分析-中文信息勒索软件,利用国内平台收款
字数 1642 2025-08-06 01:00:45
中文勒索病毒分析与防御教学文档
一、病毒概述
该勒索病毒是一个结合C++和C#技术的混合型恶意软件,主要针对中文用户,具有以下特点:
- 使用国内支付平台(支付宝)作为赎金收取方式
- 采用双重编程语言架构(C++加载器 + C#核心模块)
- 对469种文件扩展名进行加密
- 加密后添加".locked"后缀
- 勒索金额为2000元人民币
二、技术架构分析
2.1 加载器模块(C++编写)
-
初始化阶段:
- 调用
OleInitialize()初始化COM组件对象模型 - 异或解密字符串"Cor_Enable_Profiling"
- 检查.NET环境变量状态
- 调用
-
反检测机制:
- 创建进程快照检查安全软件进程
- 检查是否存在
.NET相关DLL(mscorjit.dll、clrjit.dll)
-
核心模块解密:
- 使用
FindResourceA()定位加密的勒索模块 - 通过连续异或操作解密shellcode
- 内存中加载完整的PE格式模块
- 使用
2.2 核心勒索模块(C#编写,Reactore 6.7加壳)
-
前期准备:
- 终止安全软件进程(特别是360相关进程)
- 生成加密所需的随机数
- 获取硬盘序列号作为加密标识
- 使用内置RSA公钥加密关键数据
-
文件加密机制:
- 加密路径:桌面、下载、文档、图片等用户目录
- 根据文件大小采用不同加密模式:
-
50MB文件:AES256 CFB模式,随机盐值迭代50000次
- ≤50MB文件:AES256 CBC模式,固定盐值"11223344"迭代1000次
-
- 加密后添加".locked"后缀并删除原始文件
-
勒索信息投放:
- 桌面创建"重要資訊.txt"(繁体中文)
- 生成"收款碼.jpg"支付二维码
- 修改文件时间为感染时间
三、关键技术点详解
3.1 加密算法实现
-
密钥生成流程:
随机字符串(255字符) + "Lock" + 硬盘序列号 → RSA公钥加密 → Base64编码 → 存储为libadvpack.dll -
AES加密参数:
- 密钥长度:256位
- 加密模式:CFB/CBC
- 迭代次数:50000次(大文件)/1000次(小文件)
- 盐值:随机生成(大文件)/固定"11223344"(小文件)
3.2 反分析技术
-
环境检测:
- 检查
Cor_Enable_Profiling环境变量 - 验证.NET运行环境完整性
- 检查
-
进程对抗:
- 针对性终止360安全卫士相关进程
- 使用进程快照API隐藏行为
-
模块加载:
- 资源段存储加密payload
- 内存解密执行避免文件落地
四、防御与检测方案
4.1 预防措施
-
系统加固:
- 禁用不必要的COM组件
- 监控
Cor_Enable_Profiling环境变量变更 - 限制powershell/wscript执行权限
-
文件保护:
- 设置关键目录的写保护
- 监控批量文件修改行为
- 备份重要数据(3-2-1原则)
4.2 检测指标
-
行为特征:
- 短时间内大量文件被修改
- 出现".locked"后缀文件
- 异常进程访问文件系统
-
网络特征:
- 向可疑邮箱发送加密信息
- 包含硬盘序列号等设备标识
-
内存特征:
- Reactor 6.7加壳特征
- 异或解密例程内存特征
4.3 应急响应
-
隔离处理:
- 立即断开网络
- 保存内存转储
- 记录加密时间线
-
取证分析:
- 检查
libadvpack.dll内容 - 提取内存中的RSA公钥
- 分析加密样本确定密钥生成方式
- 检查
-
恢复建议:
- 从备份恢复(优先方案)
- 尝试通过内存分析恢复密钥
- 专业解密工具评估
五、技术对抗演进
-
变种预测:
- 更换支付方式(微信/数字货币)
- 采用更强加密算法
- 增加横向移动能力
-
防御演进:
- 增强行为沙箱检测
- 机器学习模型检测异常加密
- 关键文件访问控制
附录:技术细节补充
-
完整文件扩展名列表:
[参见原文中469种文件扩展名清单] -
解密工具示例:
func Base64ToImage(base64String string, userName string) error { // Base64解码实现 // 图片还原示例代码 } -
关键API调用清单:
- OleInitialize
- FindResourceA
- CreateToolhelp32Snapshot
- Process32First/Next
本教学文档可作为企业安全培训、应急响应演练和技术研究的参考材料,建议结合实际样本分析加深理解。