AsyncRAT加解密技术剖析
字数 1945 2025-08-10 08:28:52

AsyncRAT加解密技术剖析

概述

AsyncRAT是一款2019年发布的开源远程控制工具,目前仍可在GitHub下载使用。美国Alien Labs实验室报告显示,2023年美国关键基础设施遭受了大量AsyncRAT木马攻击。由于是开源工具,攻击者可自行修改代码,定制化生成专属远控工具,因此未来可能以各种形态出现在各类网络攻击中。

开源AsyncRAT利用分析

基本特性

  • 首次发布于2019年9月15日,最新版本为2023年10月17日发布的v0.5.8
  • 由三人维护,2000+标星,756个账号fork
  • 所有模块均为C#编写,核心模块包括Client端、Server端和Plugin插件模块
  • 远控功能全面,支持常见远控功能

生成AsyncRAT Client端木马

  1. 下载release版本程序并运行,打开AsyncRAT控制端GUI界面
  2. 运行后生成ServerCertificate.p12文件,包含安全加密通信的密钥和证书
  3. 在GUI界面选择【BUILDER】菜单自定义配置AsyncRAT Client端木马

木马上线

在受控主机运行AsyncRAT Client端程序即可上线,实现对受控主机的远控管理。

配置信息解密

加密机制分析

  1. 配置信息存储在Client命名空间的Settings类中
  2. 加密流程:
    • 最外层使用base64编码
    • 最终载荷使用AES加密
    • Key数据用于PBKDF2算法输入,生成两个密钥:
      • AES密钥:32字节
      • HMACSHA256密钥:64字节
  3. base64解码后字符串分为三段:
    • 前32字节:HMACSHA256校验值
    • 中间16字节:AES IV值
    • 最后字节数据:实际加密载荷

解密示例

以Ports配置为例:

public static string Ports = "cOErtB+zERnjbUteYOnvETnEOYqfBvJapeKqKq9EuRCgBS8Ra/wmUUaV71BIyFAtxgc1rYoQ/SLMQOZ+0be38g==";

解密步骤:

  1. Key处理,生成AES key和HMACSHA256 key:

    • AES key: 09f892078304d5723d9a841fac16c59674f84cc830fc4f98e892efc0c5d29f3d
    • HMACSHA256 key: 371e838b11793bc4c8ad13eae04adc61da8e8e553827388ef2ab1dc9d5daaf63ac6808abfecb80b84746c9091176a57bac3ead5756688ace0bd048447e74ea1f
  2. base64解码:
    70e12bb41fb31119e36d4b5e60e9ef1139c4398a9f06f25aa5e2aa2aaf44b910a0052f116bfc26514695ef5048c8502dc60735ad8a10fd22cc40e67ed1b7b7f2

  3. 拆分:

    • HMACSHA256校验值: 70e12bb41fb31119e36d4b5e60e9ef1139c4398a9f06f25aa5e2aa2aaf44b910
    • AES IV值: a0052f116bfc26514695ef5048c8502d
    • 最终加密载荷: c60735ad8a10fd22cc40e67ed1b7b7f2
  4. AES解密结果:6606,7707,8808

自动化解密脚本

使用Go语言编写的自动化解密脚本,输入文件格式为dnspy工具反编译后的配置信息代码片段。

代码结构:

main.go
common/
  common.go

关键函数:

  • Base64_Decode: base64解码
  • Pbkdf2_Rfc2898DeriveBytes: 使用PBKDF2算法生成密钥
  • HMACSHA256: HMAC-SHA256校验
  • Aes_decrypt_cbc: AES-CBC解密

通信数据解密

加密层次

  1. 第一层加密:TLS 1.0
  2. 第二层加密:gzip压缩

TLS解密

AsyncRAT使用TLS_RSA_WITH_AES_128_CBC_SHA密钥套件。

私钥提取

  1. ServerCertificate.p12文件包含通信密钥和证书

  2. AsyncRAT未对p12文件设置保护密码,可直接提取:

    openssl pkcs12 -in ServerCertificate.p12 -out certificate.pem -nodes
    
  3. 提取的PEM文件包含私钥和证书:

    -----BEGIN PRIVATE KEY-----
    ...
    -----END PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    

通信解密

将certificate.pem或私钥配置于Wireshark中,可解密TLS通信数据。

通信载荷解密

  1. TLS解密后的数据包含gzip头(1f8b08)
  2. 提取gzip压缩数据并解压,可获得实际通信数据

总结

AsyncRAT作为开源远控工具,其加解密技术具有以下特点:

  1. 配置信息采用多层加密:base64 + AES + HMAC-SHA256
  2. 通信采用双重加密:TLS + gzip
  3. 密钥生成使用PBKDF2算法
  4. 可通过分析源码实现自动化解密

理解这些技术细节有助于安全研究人员检测和分析AsyncRAT变种,提升对抗能力。

AsyncRAT加解密技术剖析 概述 AsyncRAT是一款2019年发布的开源远程控制工具,目前仍可在GitHub下载使用。美国Alien Labs实验室报告显示,2023年美国关键基础设施遭受了大量AsyncRAT木马攻击。由于是开源工具,攻击者可自行修改代码,定制化生成专属远控工具,因此未来可能以各种形态出现在各类网络攻击中。 开源AsyncRAT利用分析 基本特性 首次发布于2019年9月15日,最新版本为2023年10月17日发布的v0.5.8 由三人维护,2000+标星,756个账号fork 所有模块均为C#编写,核心模块包括Client端、Server端和Plugin插件模块 远控功能全面,支持常见远控功能 生成AsyncRAT Client端木马 下载release版本程序并运行,打开AsyncRAT控制端GUI界面 运行后生成ServerCertificate.p12文件,包含安全加密通信的密钥和证书 在GUI界面选择【BUILDER】菜单自定义配置AsyncRAT Client端木马 木马上线 在受控主机运行AsyncRAT Client端程序即可上线,实现对受控主机的远控管理。 配置信息解密 加密机制分析 配置信息存储在Client命名空间的Settings类中 加密流程: 最外层使用base64编码 最终载荷使用AES加密 Key数据用于PBKDF2算法输入,生成两个密钥: AES密钥:32字节 HMACSHA256密钥:64字节 base64解码后字符串分为三段: 前32字节:HMACSHA256校验值 中间16字节:AES IV值 最后字节数据:实际加密载荷 解密示例 以Ports配置为例: 解密步骤: Key处理,生成AES key和HMACSHA256 key: AES key: 09f892078304d5723d9a841fac16c59674f84cc830fc4f98e892efc0c5d29f3d HMACSHA256 key: 371e838b11793bc4c8ad13eae04adc61da8e8e553827388ef2ab1dc9d5daaf63ac6808abfecb80b84746c9091176a57bac3ead5756688ace0bd048447e74ea1f base64解码: 70e12bb41fb31119e36d4b5e60e9ef1139c4398a9f06f25aa5e2aa2aaf44b910a0052f116bfc26514695ef5048c8502dc60735ad8a10fd22cc40e67ed1b7b7f2 拆分: HMACSHA256校验值: 70e12bb41fb31119e36d4b5e60e9ef1139c4398a9f06f25aa5e2aa2aaf44b910 AES IV值: a0052f116bfc26514695ef5048c8502d 最终加密载荷: c60735ad8a10fd22cc40e67ed1b7b7f2 AES解密结果:6606,7707,8808 自动化解密脚本 使用Go语言编写的自动化解密脚本,输入文件格式为dnspy工具反编译后的配置信息代码片段。 代码结构: 关键函数: Base64_Decode : base64解码 Pbkdf2_Rfc2898DeriveBytes : 使用PBKDF2算法生成密钥 HMACSHA256 : HMAC-SHA256校验 Aes_decrypt_cbc : AES-CBC解密 通信数据解密 加密层次 第一层加密:TLS 1.0 第二层加密:gzip压缩 TLS解密 AsyncRAT使用TLS_ RSA_ WITH_ AES_ 128_ CBC_ SHA密钥套件。 私钥提取 ServerCertificate.p12文件包含通信密钥和证书 AsyncRAT未对p12文件设置保护密码,可直接提取: 提取的PEM文件包含私钥和证书: 通信解密 将certificate.pem或私钥配置于Wireshark中,可解密TLS通信数据。 通信载荷解密 TLS解密后的数据包含gzip头(1f8b08) 提取gzip压缩数据并解压,可获得实际通信数据 总结 AsyncRAT作为开源远控工具,其加解密技术具有以下特点: 配置信息采用多层加密:base64 + AES + HMAC-SHA256 通信采用双重加密:TLS + gzip 密钥生成使用PBKDF2算法 可通过分析源码实现自动化解密 理解这些技术细节有助于安全研究人员检测和分析AsyncRAT变种,提升对抗能力。