QuasarRAT与AsyncRAT同源对比及分析
字数 1816 2025-08-10 08:28:55

QuasarRAT与AsyncRAT同源对比及分析技术文档

1. 概述

QuasarRAT与AsyncRAT是两款开源的远程控制工具,在配置信息加密技术和通信模型上存在相似性和差异性。本文将从以下几个方面进行详细分析:

  1. 两款RAT工具的起源与发展
  2. 配置信息加密技术的同源性分析
  3. 通信模型对比分析
  4. 实际应用中的攻防技术

2. 工具背景

2.1 QuasarRAT

  • 开源地址: https://github.com/quasar/Quasar
  • 历史演变:
    • 早期名称为xRAT
    • 2014年7月8日发布xRAT v2.0.0.0 RELEASE1
    • 2015年8月23日发布Quasar v1.0.0.0
  • 当前版本: 2023年3月13日发布的Quasar v1.4.1
  • 项目规模:
    • 15名维护人员
    • 7900+标星
    • 2400+账号fork项目
  • 技术特点:
    • 所有模块均为C#编写
    • 核心模块: Client端、Server端、Common模块
    • 支持环境: 建议Win10(官方称支持Win7但可能存在兼容性问题)

2.2 AsyncRAT

  • 开发时间晚于QuasarRAT
  • 在配置信息加密技术上可能借鉴了QuasarRAT
  • 同样使用C#编写

3. 配置信息加密技术对比

3.1 加密算法同源性

QuasarRAT与AsyncRAT使用相同的配置信息解密算法,仅在密钥生成阶段有细微差异:

对比项 QuasarRAT AsyncRAT
密钥初始化输入 直接使用配置信息中的密钥字符串 将配置信息中密钥字符串base64解码后的字符串作为输入
其他解密代码 完全相同 完全相同

3.2 加密配置信息示例

QuasarRAT木马配置信息:

public static string string_7 = "密钥字符串";
public static string string_0 = "加密的版本信息";
...

AsyncRAT木马配置信息:

public static string string_7 = "密钥字符串";
public static string string_0 = "加密的版本信息";
...

3.3 解密算法实现

解密流程:

  1. 从混淆后的代码中提取加密配置信息和密钥
  2. Base64解码加密配置信息
  3. 分离HMAC-SHA256校验值、AES IV和实际加密数据
  4. 使用PBKDF2算法派生密钥
  5. 验证HMAC-SHA256校验值
  6. 使用AES-CBC解密数据

Go语言解密示例:

func decrypt_QuasarRAT_str(key string, input_str string) {
    input := common.Base64_Decode(input_str)
    hmacsha := input[:32]
    aes_iv := input[32:48]
    encode_data := input[48:]
    
    rfc2898DeriveBytes := common.Pbkdf2_Rfc2898DeriveBytes([]byte(key))
    aeskey := rfc2898DeriveBytes[:32]
    _authKey := rfc2898DeriveBytes[32:]
    
    if hex.EncodeToString(common.HMACSHA256(_authKey, input[32:])) != hex.EncodeToString(hmacsha) {
        fmt.Println("Error")
        return
    }
    
    output, _ := common.Aes_decrypt_cbc(encode_data, aeskey, aes_iv)
    fmt.Println(string(output))
}

4. 通信模型分析

4.1 QuasarRAT通信模型

采用双层加密:

  1. 外层加密: TLS 1.2 (密钥套件带DH算法)
  2. 内层加密: protobuf序列化数据

TLS解密技术:

  • 需要提取quasar.p12文件中的私钥
  • 使用自定义密钥套件方法从系统底层修改配置密钥套件
  • 然后使用私钥解密TLS通信数据

protobuf反序列化:

  1. 使用CyberChef等工具进行反序列化
  2. 示例解密结果:
{
  "37": {
    "1": [
      {
        "1": "svchost",
        "2": "0.0.0.0",
        "3": 135,
        "4": "0.0.0.0",
        "6": 2
      },
      ...
    ]
  }
}

4.2 AsyncRAT通信模型

(文中未详细描述,但与QuasarRAT不同)

5. 实际应用分析

5.1 木马生成与配置

QuasarRAT控制端:

  1. 首次运行时生成quasar.p12文件(包含安全加密通信的密钥和证书)
  2. Builder菜单用于配置Client端木马
  3. Settings菜单用于开启监听

配置项包括:

  • 版本信息
  • 主机地址和端口
  • 安装目录和文件名
  • Mutex值
  • 启动项名称
  • 客户端标签
  • 日志目录
  • 服务器签名
  • 证书

5.2 反混淆技术

QuasarRAT默认生成的Client端木马被混淆处理:

  • 使用de4dot工具可有效去混淆
  • 去混淆后才能看到反编译代码

6. 防御建议

  1. 检测方面:

    • 监控异常TLS连接(特别是带DH算法的密钥套件)
    • 检测protobuf序列化数据的异常通信
    • 关注quasar.p12或ServerCertificate.p12文件的生成
  2. 防护方面:

    • 限制.NET程序的网络行为
    • 监控可疑的进程创建和持久化行为
    • 关注已知的QuasarRAT/AsyncRAT IOC
  3. 分析方面:

    • 掌握配置信息解密技术
    • 熟悉protobuf反序列化分析方法
    • 了解TLS解密技术

7. 附录

7.1 相关工具

  1. 去混淆工具: de4dot
  2. 协议分析工具: Wireshark
  3. 反序列化工具: CyberChef (https://gchq.github.io/CyberChef)
  4. 解密脚本: 基于Go语言的自动化解密脚本

7.2 参考资源

  1. QuasarRAT GitHub仓库
  2. AsyncRAT相关分析文章
  3. 《AsyncRAT加解密技术剖析》
QuasarRAT与AsyncRAT同源对比及分析技术文档 1. 概述 QuasarRAT与AsyncRAT是两款开源的远程控制工具,在配置信息加密技术和通信模型上存在相似性和差异性。本文将从以下几个方面进行详细分析: 两款RAT工具的起源与发展 配置信息加密技术的同源性分析 通信模型对比分析 实际应用中的攻防技术 2. 工具背景 2.1 QuasarRAT 开源地址 : https://github.com/quasar/Quasar 历史演变 : 早期名称为xRAT 2014年7月8日发布xRAT v2.0.0.0 RELEASE1 2015年8月23日发布Quasar v1.0.0.0 当前版本 : 2023年3月13日发布的Quasar v1.4.1 项目规模 : 15名维护人员 7900+标星 2400+账号fork项目 技术特点 : 所有模块均为C#编写 核心模块: Client端、Server端、Common模块 支持环境: 建议Win10(官方称支持Win7但可能存在兼容性问题) 2.2 AsyncRAT 开发时间晚于QuasarRAT 在配置信息加密技术上可能借鉴了QuasarRAT 同样使用C#编写 3. 配置信息加密技术对比 3.1 加密算法同源性 QuasarRAT与AsyncRAT使用相同的配置信息解密算法,仅在密钥生成阶段有细微差异: | 对比项 | QuasarRAT | AsyncRAT | |--------|-----------|----------| | 密钥初始化输入 | 直接使用配置信息中的密钥字符串 | 将配置信息中密钥字符串base64解码后的字符串作为输入 | | 其他解密代码 | 完全相同 | 完全相同 | 3.2 加密配置信息示例 QuasarRAT木马配置信息 : AsyncRAT木马配置信息 : 3.3 解密算法实现 解密流程: 从混淆后的代码中提取加密配置信息和密钥 Base64解码加密配置信息 分离HMAC-SHA256校验值、AES IV和实际加密数据 使用PBKDF2算法派生密钥 验证HMAC-SHA256校验值 使用AES-CBC解密数据 Go语言解密示例: 4. 通信模型分析 4.1 QuasarRAT通信模型 采用双层加密: 外层加密 : TLS 1.2 (密钥套件带DH算法) 内层加密 : protobuf序列化数据 TLS解密技术 : 需要提取quasar.p12文件中的私钥 使用自定义密钥套件方法从系统底层修改配置密钥套件 然后使用私钥解密TLS通信数据 protobuf反序列化 : 使用CyberChef等工具进行反序列化 示例解密结果: 4.2 AsyncRAT通信模型 (文中未详细描述,但与QuasarRAT不同) 5. 实际应用分析 5.1 木马生成与配置 QuasarRAT控制端 : 首次运行时生成quasar.p12文件(包含安全加密通信的密钥和证书) Builder菜单用于配置Client端木马 Settings菜单用于开启监听 配置项包括 : 版本信息 主机地址和端口 安装目录和文件名 Mutex值 启动项名称 客户端标签 日志目录 服务器签名 证书 5.2 反混淆技术 QuasarRAT默认生成的Client端木马被混淆处理: 使用de4dot工具可有效去混淆 去混淆后才能看到反编译代码 6. 防御建议 检测方面 : 监控异常TLS连接(特别是带DH算法的密钥套件) 检测protobuf序列化数据的异常通信 关注quasar.p12或ServerCertificate.p12文件的生成 防护方面 : 限制.NET程序的网络行为 监控可疑的进程创建和持久化行为 关注已知的QuasarRAT/AsyncRAT IOC 分析方面 : 掌握配置信息解密技术 熟悉protobuf反序列化分析方法 了解TLS解密技术 7. 附录 7.1 相关工具 去混淆工具 : de4dot 协议分析工具 : Wireshark 反序列化工具 : CyberChef (https://gchq.github.io/CyberChef) 解密脚本 : 基于Go语言的自动化解密脚本 7.2 参考资源 QuasarRAT GitHub仓库 AsyncRAT相关分析文章 《AsyncRAT加解密技术剖析》