勒索病毒分析-中文信息勒索软件,利用国内平台收款
字数 1642 2025-08-06 01:00:45

中文勒索病毒分析与防御教学文档

一、病毒概述

该勒索病毒是一个结合C++和C#技术的混合型恶意软件,主要针对中文用户,具有以下特点:

  • 使用国内支付平台(支付宝)作为赎金收取方式
  • 采用双重编程语言架构(C++加载器 + C#核心模块)
  • 对469种文件扩展名进行加密
  • 加密后添加".locked"后缀
  • 勒索金额为2000元人民币

二、技术架构分析

2.1 加载器模块(C++编写)

  1. 初始化阶段

    • 调用OleInitialize()初始化COM组件对象模型
    • 异或解密字符串"Cor_Enable_Profiling"
    • 检查.NET环境变量状态
  2. 反检测机制

    • 创建进程快照检查安全软件进程
    • 检查是否存在.NET相关DLL(mscorjit.dll、clrjit.dll)
  3. 核心模块解密

    • 使用FindResourceA()定位加密的勒索模块
    • 通过连续异或操作解密shellcode
    • 内存中加载完整的PE格式模块

2.2 核心勒索模块(C#编写,Reactore 6.7加壳)

  1. 前期准备

    • 终止安全软件进程(特别是360相关进程)
    • 生成加密所需的随机数
    • 获取硬盘序列号作为加密标识
    • 使用内置RSA公钥加密关键数据
  2. 文件加密机制

    • 加密路径:桌面、下载、文档、图片等用户目录
    • 根据文件大小采用不同加密模式:
      • 50MB文件:AES256 CFB模式,随机盐值迭代50000次

      • ≤50MB文件:AES256 CBC模式,固定盐值"11223344"迭代1000次
    • 加密后添加".locked"后缀并删除原始文件
  3. 勒索信息投放

    • 桌面创建"重要資訊.txt"(繁体中文)
    • 生成"收款碼.jpg"支付二维码
    • 修改文件时间为感染时间

三、关键技术点详解

3.1 加密算法实现

  1. 密钥生成流程

    随机字符串(255字符) + "Lock" + 硬盘序列号 → RSA公钥加密 → Base64编码 → 存储为libadvpack.dll
    
  2. AES加密参数

    • 密钥长度:256位
    • 加密模式:CFB/CBC
    • 迭代次数:50000次(大文件)/1000次(小文件)
    • 盐值:随机生成(大文件)/固定"11223344"(小文件)

3.2 反分析技术

  1. 环境检测

    • 检查Cor_Enable_Profiling环境变量
    • 验证.NET运行环境完整性
  2. 进程对抗

    • 针对性终止360安全卫士相关进程
    • 使用进程快照API隐藏行为
  3. 模块加载

    • 资源段存储加密payload
    • 内存解密执行避免文件落地

四、防御与检测方案

4.1 预防措施

  1. 系统加固

    • 禁用不必要的COM组件
    • 监控Cor_Enable_Profiling环境变量变更
    • 限制powershell/wscript执行权限
  2. 文件保护

    • 设置关键目录的写保护
    • 监控批量文件修改行为
    • 备份重要数据(3-2-1原则)

4.2 检测指标

  1. 行为特征

    • 短时间内大量文件被修改
    • 出现".locked"后缀文件
    • 异常进程访问文件系统
  2. 网络特征

    • 向可疑邮箱发送加密信息
    • 包含硬盘序列号等设备标识
  3. 内存特征

    • Reactor 6.7加壳特征
    • 异或解密例程内存特征

4.3 应急响应

  1. 隔离处理

    • 立即断开网络
    • 保存内存转储
    • 记录加密时间线
  2. 取证分析

    • 检查libadvpack.dll内容
    • 提取内存中的RSA公钥
    • 分析加密样本确定密钥生成方式
  3. 恢复建议

    • 从备份恢复(优先方案)
    • 尝试通过内存分析恢复密钥
    • 专业解密工具评估

五、技术对抗演进

  1. 变种预测

    • 更换支付方式(微信/数字货币)
    • 采用更强加密算法
    • 增加横向移动能力
  2. 防御演进

    • 增强行为沙箱检测
    • 机器学习模型检测异常加密
    • 关键文件访问控制

附录:技术细节补充

  1. 完整文件扩展名列表
    [参见原文中469种文件扩展名清单]

  2. 解密工具示例

    func Base64ToImage(base64String string, userName string) error {
        // Base64解码实现
        // 图片还原示例代码
    }
    
  3. 关键API调用清单

    • OleInitialize
    • FindResourceA
    • CreateToolhelp32Snapshot
    • Process32First/Next

本教学文档可作为企业安全培训、应急响应演练和技术研究的参考材料,建议结合实际样本分析加深理解。

中文勒索病毒分析与防御教学文档 一、病毒概述 该勒索病毒是一个结合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 加密算法实现 密钥生成流程 : 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种文件扩展名清单 ] 解密工具示例 : 关键API调用清单 : OleInitialize FindResourceA CreateToolhelp32Snapshot Process32First/Next 本教学文档可作为企业安全培训、应急响应演练和技术研究的参考材料,建议结合实际样本分析加深理解。