针对某免杀CS样本的详细分析
字数 1574 2025-08-06 08:35:30

免杀CS样本分析与技术解析

样本概述

该样本是一个具有多层加密和免杀特性的Cobalt Strike (CS)木马,具有以下特点:

  • VT检出率低(初始发现时)
  • 采用多阶段ShellCode加载机制
  • 使用XML文件作为触发条件
  • 编译时间为2023年9月11日(可能与攻防演练相关)

样本结构

解压后包含:

  1. 主程序EXE文件
  2. XML配置文件

执行流程分析

第一阶段:初始检查

  1. 程序首先检查同目录下是否存在XML文件
  2. 如果检测到XML文件,则跳转到恶意代码执行
  3. 如果没有检测到,则可能报错或退出(关联样本中可见此行为)

第二阶段:核心函数获取与解密

  1. 执行数据解密操作,获取核心函数地址
  2. 解密Payload的核心代码:
    • 使用内存分配函数(如VirtualAlloc)分配内存空间
    • 解密第一段ShellCode数据
    • 将解密后的ShellCode移动到分配的内存空间
    • 通过CreateThreadpoolWait执行解密的ShellCode

第三阶段:ShellCode执行

  1. 第一段ShellCode执行后,解密出第二段ShellCode
  2. 第二段ShellCode加载执行Payload代码:
    • 再次分配内存空间
    • 解密第三阶段ShellCode
    • 从远程服务器读取第四阶段ShellCode

第四阶段:远程加载

  1. 通过异或算法解密第五阶段ShellCode
  2. 最终加载执行CS木马

技术细节

加密与解密机制

  1. 使用多层加密:
    • 至少观察到5层ShellCode解密过程
    • 采用异或算法进行部分解密
  2. 内存操作:
    • 频繁使用VirtualAlloc分配内存
    • 使用内存移动操作部署ShellCode

执行技术

  1. 使用非常规线程创建方法:
    • CreateThreadpoolWait而非常见的CreateThread
  2. 分阶段加载:
    • 每个阶段只解密下一阶段所需的最小功能集
    • 最终阶段才从远程获取完整Payload

配置文件使用

  1. XML文件作为触发条件:
    • 样本必须检测到特定XML文件才会继续执行
    • 可能是为了规避自动化分析
  2. XML内容可能影响后续行为(样本中未展示具体内容)

关联分析

  1. 通过域名关联到其他样本:
    • 123.exe(编译时间2023年8月14日)
    • ProgramData压缩包样本(编译时间2023年8月7日)
  2. 样本演化:
    • 早期版本严格依赖XML文件
    • 后期版本可能改进了触发机制

威胁情报

  1. C2服务器信息:
    • 样本从远程服务器获取最终Payload
    • 具体域名未在文中披露
  2. 攻击时间线:
    • 样本编译时间集中在2023年8-9月
    • 可能与同期攻防演练相关

防御建议

  1. 检测层面:
    • 监控非常规线程创建(CreateThreadpoolWait)
    • 检测多层内存分配与解密操作
    • 关注XML文件与EXE的异常组合
  2. 防护层面:
    • 限制未知程序的内存操作行为
    • 阻断非常规的网络连接行为
  3. 分析层面:
    • 动态分析时需准备触发条件(如配套XML文件)
    • 关注多阶段解密过程

免杀技术总结

该样本展示了高级免杀技术:

  1. 环境感知:通过检查XML文件决定是否执行恶意代码
  2. 代码分散:核心功能分多阶段加载
  3. 非常规API使用:避免常见恶意代码特征
  4. 延迟加载:最终Payload从远程获取,降低静态检测率

分析工具与方法

  1. 必备工具:
    • 反汇编工具(IDA Pro等)
    • 动态分析工具(x64dbg等)
    • 内存分析工具
  2. 分析方法:
    • 条件触发分析(准备XML文件)
    • 多阶段内存转储
    • API调用监控
    • 网络行为分析

IOC(文中提及的 Indicators of Compromise)

  1. 文件特征:
    • EXE与XML文件组合
    • 特定编译时间戳(2023年8-9月)
  2. 行为特征:
    • 多层ShellCode解密
    • CreateThreadpoolWait使用
    • 分阶段远程加载

注意:文中未披露具体C2域名等敏感IOC,实际分析中需提取样本完整网络特征。

免杀CS样本分析与技术解析 样本概述 该样本是一个具有多层加密和免杀特性的Cobalt Strike (CS)木马,具有以下特点: VT检出率低(初始发现时) 采用多阶段ShellCode加载机制 使用XML文件作为触发条件 编译时间为2023年9月11日(可能与攻防演练相关) 样本结构 解压后包含: 主程序EXE文件 XML配置文件 执行流程分析 第一阶段:初始检查 程序首先检查同目录下是否存在XML文件 如果检测到XML文件,则跳转到恶意代码执行 如果没有检测到,则可能报错或退出(关联样本中可见此行为) 第二阶段:核心函数获取与解密 执行数据解密操作,获取核心函数地址 解密Payload的核心代码: 使用内存分配函数(如VirtualAlloc)分配内存空间 解密第一段ShellCode数据 将解密后的ShellCode移动到分配的内存空间 通过CreateThreadpoolWait执行解密的ShellCode 第三阶段:ShellCode执行 第一段ShellCode执行后,解密出第二段ShellCode 第二段ShellCode加载执行Payload代码: 再次分配内存空间 解密第三阶段ShellCode 从远程服务器读取第四阶段ShellCode 第四阶段:远程加载 通过异或算法解密第五阶段ShellCode 最终加载执行CS木马 技术细节 加密与解密机制 使用多层加密: 至少观察到5层ShellCode解密过程 采用异或算法进行部分解密 内存操作: 频繁使用VirtualAlloc分配内存 使用内存移动操作部署ShellCode 执行技术 使用非常规线程创建方法: CreateThreadpoolWait而非常见的CreateThread 分阶段加载: 每个阶段只解密下一阶段所需的最小功能集 最终阶段才从远程获取完整Payload 配置文件使用 XML文件作为触发条件: 样本必须检测到特定XML文件才会继续执行 可能是为了规避自动化分析 XML内容可能影响后续行为(样本中未展示具体内容) 关联分析 通过域名关联到其他样本: 123.exe(编译时间2023年8月14日) ProgramData压缩包样本(编译时间2023年8月7日) 样本演化: 早期版本严格依赖XML文件 后期版本可能改进了触发机制 威胁情报 C2服务器信息: 样本从远程服务器获取最终Payload 具体域名未在文中披露 攻击时间线: 样本编译时间集中在2023年8-9月 可能与同期攻防演练相关 防御建议 检测层面: 监控非常规线程创建(CreateThreadpoolWait) 检测多层内存分配与解密操作 关注XML文件与EXE的异常组合 防护层面: 限制未知程序的内存操作行为 阻断非常规的网络连接行为 分析层面: 动态分析时需准备触发条件(如配套XML文件) 关注多阶段解密过程 免杀技术总结 该样本展示了高级免杀技术: 环境感知:通过检查XML文件决定是否执行恶意代码 代码分散:核心功能分多阶段加载 非常规API使用:避免常见恶意代码特征 延迟加载:最终Payload从远程获取,降低静态检测率 分析工具与方法 必备工具: 反汇编工具(IDA Pro等) 动态分析工具(x64dbg等) 内存分析工具 分析方法: 条件触发分析(准备XML文件) 多阶段内存转储 API调用监控 网络行为分析 IOC(文中提及的 Indicators of Compromise) 文件特征: EXE与XML文件组合 特定编译时间戳(2023年8-9月) 行为特征: 多层ShellCode解密 CreateThreadpoolWait使用 分阶段远程加载 注意:文中未披露具体C2域名等敏感IOC,实际分析中需提取样本完整网络特征。