Quasar RAT客户端木马执行流程逆向分析
字数 1925 2025-08-05 11:39:43

Quasar RAT客户端木马执行流程逆向分析教学文档

1. 概述

Quasar RAT是一款基于C#开发的开源远程控制工具,被广泛用于APT攻击活动中。本文档将详细分析其客户端执行流程,包括初始化、通信机制和指令执行等关键环节。

2. 背景信息

  • 版本: 当前最新版本为1.4.1
  • 特点:
    • 开源且维护频繁
    • 被多个APT组织使用
    • 采用TLS 1.2加密通信
    • 提供丰富的远程控制功能

3. 基本使用示例

3.1 证书创建

首次运行时需要创建服务器证书:

  1. 生成quasar.p12证书文件
  2. 证书信息示例:
    [Subject] CN=Quasar Server CA
    [Issuer] CN=Quasar Server CA
    [Serial Number] 008E92AF0296D813D6804DB771DA8881
    [Thumbprint] 2DFA8B63C594E51820CA27FFD133454ED8ED4558
    

3.2 服务端配置

  • 设置监听端口
  • 客户端生成配置项:
    • 基本设置(标签、互斥体、无人值守模式)
    • 连接设置(目标IP:PORT、重连延迟)
    • 安装设置(安装位置、自启动)
    • 监控设置(键盘记录)

4. 逆向分析流程

4.1 去混淆处理

使用工具:NETReactorSlayer

4.2 执行流程分析

4.2.1 程序入口点

  • 设置安全协议:TLS 1.2
  • 定义异常处理方式
  • 设置窗体样式
  • 启动主窗体应用程序(GForm0)

4.2.2 部署初始化

1. 密钥派生

  • 基于服务端初始指纹
  • 使用PBKDF2算法
  • 固定盐值:BFEB1E56FBCD973BB219022430A57843003D5644D21E62B9D4F180E7E6C33941
  • 生成两个密钥:32字节和64字节

2. 字符解码

  • 使用AES解密Base64编码的字符串
  • 解密内容包括:
    • 客户端标识(如"Office01")
    • RAT版本信息("1.4.1")
    • 外连IP:PORT
    • 文件路径和名称
    • 客户端唯一标识
    • 启动项名称
    • 日志文件路径
    • 公钥证书文件

3. 路径初始化

  • 设置下载文件存储路径
  • 设置日志路径(如C:\Users\qianlan\AppData\Roaming\Logs)

4. 公钥HASH校验

  • 对证书指纹进行SHA256运算
  • 与已知HASH比对(失败则退出)
  • 使用OID: 2.16.840.1.101.3.4.2.1

5. 互斥体创建

  • 检查是否有相同互斥体的进程运行
  • 确保单实例运行
  • 基于客户端生成时定义的唯一标识

6. 文件区域标识处理

  • 清除"Zone.Identifier"数据流
  • 避免安全策略导致的运行问题

7. 启动项和文件属性设置

  • 根据生成配置设置:
    • 开机启动项
    • 文件隐藏属性等

8. 任务栏图标初始化

  • 配置系统托盘图标

4.2.3 通信初始化

1. 连接状态管理

  • 使用变量标识客户端认证状态
  • 监控连接/断开状态变化

2. 心跳线程初始化

  • 定义心跳包参数:
    • BUFFER_SIZE: 0x4000
    • HEADER_SIZE: 0x4
    • KEEP_ALIVE_INTERVAL: 0x61A8
    • MAX_MESSAGE_SIZE: 0x500000

3. 服务端连接流程

首次TCP连接:

  1. 解析解密得到的外连地址
  2. 创建Socket实例
  3. 建立TCP三次握手
  4. 成功连接后:
    • 创建SslStream实例
    • 客户端模式TLS 1.2认证(不验证服务器证书)
    • 异步读取数据
    • 修改连接状态

二次TCP连接:

  1. 重新建立连接
  2. 收集系统信息(GClass31_ClientState):
    • 操作系统版本
    • 用户名
    • 地理位置等
  3. 作为上线信息发送

4. 指令接收与执行

  1. 异步接收服务端指令
  2. 调用消息处理器(Message Processor)处理
  3. 示例:dir指令执行流程:
    • 接收指令数据
    • 调用Shell功能函数
    • 获取文件信息
    • 逐行发送结果
  4. 循环等待下一条指令

5. 网络通信分析

5.1 TLS交互

  • 使用TLS 1.2加密通信
  • 客户端不验证服务器证书

5.2 数据包结构

  • 包含头部信息(HEADER_SIZE: 4字节)
  • 最大消息大小限制(MAX_MESSAGE_SIZE: 5MB)

6. 关键特征总结

  1. 初始化特征:

    • 固定盐值的PBKDF2密钥派生
    • AES解密配置信息
    • 特定路径创建(Logs/SubDir)
  2. 通信特征:

    • 双重TCP连接流程
    • TLS 1.2加密
    • 心跳机制(约25秒间隔)
  3. 持久化特征:

    • 启动项设置
    • 互斥体检查
    • 文件隐藏属性
  4. 行为特征:

    • 系统信息收集
    • Shell命令执行
    • 文件操作能力

7. 检测建议

  1. 主机检测:

    • 监控特定路径创建行为
    • 检查可疑的互斥体
    • 分析TLS 1.2通信进程
  2. 网络检测:

    • 识别双重TCP连接模式
    • 分析心跳包间隔
    • 检测不验证证书的TLS通信
  3. 行为检测:

    • 监控系统信息收集行为
    • 检测可疑的Shell命令执行

8. 后续研究方向

  1. 内存中的加解密行为分析
  2. 通信流量解密技术
  3. 各功能模块的详细分析
  4. 与常见APT攻击活动的关联分析
Quasar RAT客户端木马执行流程逆向分析教学文档 1. 概述 Quasar RAT是一款基于C#开发的开源远程控制工具,被广泛用于APT攻击活动中。本文档将详细分析其客户端执行流程,包括初始化、通信机制和指令执行等关键环节。 2. 背景信息 版本 : 当前最新版本为1.4.1 特点 : 开源且维护频繁 被多个APT组织使用 采用TLS 1.2加密通信 提供丰富的远程控制功能 3. 基本使用示例 3.1 证书创建 首次运行时需要创建服务器证书: 生成quasar.p12证书文件 证书信息示例: 3.2 服务端配置 设置监听端口 客户端生成配置项: 基本设置(标签、互斥体、无人值守模式) 连接设置(目标IP:PORT、重连延迟) 安装设置(安装位置、自启动) 监控设置(键盘记录) 4. 逆向分析流程 4.1 去混淆处理 使用工具:NETReactorSlayer 4.2 执行流程分析 4.2.1 程序入口点 设置安全协议:TLS 1.2 定义异常处理方式 设置窗体样式 启动主窗体应用程序(GForm0) 4.2.2 部署初始化 1. 密钥派生 基于服务端初始指纹 使用PBKDF2算法 固定盐值: BFEB1E56FBCD973BB219022430A57843003D5644D21E62B9D4F180E7E6C33941 生成两个密钥:32字节和64字节 2. 字符解码 使用AES解密Base64编码的字符串 解密内容包括: 客户端标识(如"Office01") RAT版本信息("1.4.1") 外连IP:PORT 文件路径和名称 客户端唯一标识 启动项名称 日志文件路径 公钥证书文件 3. 路径初始化 设置下载文件存储路径 设置日志路径(如 C:\Users\qianlan\AppData\Roaming\Logs ) 4. 公钥HASH校验 对证书指纹进行SHA256运算 与已知HASH比对(失败则退出) 使用OID: 2.16.840.1.101.3.4.2.1 5. 互斥体创建 检查是否有相同互斥体的进程运行 确保单实例运行 基于客户端生成时定义的唯一标识 6. 文件区域标识处理 清除"Zone.Identifier"数据流 避免安全策略导致的运行问题 7. 启动项和文件属性设置 根据生成配置设置: 开机启动项 文件隐藏属性等 8. 任务栏图标初始化 配置系统托盘图标 4.2.3 通信初始化 1. 连接状态管理 使用变量标识客户端认证状态 监控连接/断开状态变化 2. 心跳线程初始化 定义心跳包参数: BUFFER_SIZE : 0x4000 HEADER_SIZE : 0x4 KEEP_ALIVE_INTERVAL : 0x61A8 MAX_MESSAGE_SIZE : 0x500000 3. 服务端连接流程 首次TCP连接: 解析解密得到的外连地址 创建Socket实例 建立TCP三次握手 成功连接后: 创建SslStream实例 客户端模式TLS 1.2认证(不验证服务器证书) 异步读取数据 修改连接状态 二次TCP连接: 重新建立连接 收集系统信息(GClass31_ ClientState): 操作系统版本 用户名 地理位置等 作为上线信息发送 4. 指令接收与执行 异步接收服务端指令 调用消息处理器(Message Processor)处理 示例:dir指令执行流程: 接收指令数据 调用Shell功能函数 获取文件信息 逐行发送结果 循环等待下一条指令 5. 网络通信分析 5.1 TLS交互 使用TLS 1.2加密通信 客户端不验证服务器证书 5.2 数据包结构 包含头部信息(HEADER_ SIZE: 4字节) 最大消息大小限制(MAX_ MESSAGE_ SIZE: 5MB) 6. 关键特征总结 初始化特征 : 固定盐值的PBKDF2密钥派生 AES解密配置信息 特定路径创建(Logs/SubDir) 通信特征 : 双重TCP连接流程 TLS 1.2加密 心跳机制(约25秒间隔) 持久化特征 : 启动项设置 互斥体检查 文件隐藏属性 行为特征 : 系统信息收集 Shell命令执行 文件操作能力 7. 检测建议 主机检测 : 监控特定路径创建行为 检查可疑的互斥体 分析TLS 1.2通信进程 网络检测 : 识别双重TCP连接模式 分析心跳包间隔 检测不验证证书的TLS通信 行为检测 : 监控系统信息收集行为 检测可疑的Shell命令执行 8. 后续研究方向 内存中的加解密行为分析 通信流量解密技术 各功能模块的详细分析 与常见APT攻击活动的关联分析