AsyncRAT攻防技术对抗
字数 1420 2025-08-10 08:28:52

AsyncRAT攻防技术对抗全面解析

概述

AsyncRAT是一款基于C#开发的远程管理工具(RAT),因其功能强大且开源而在黑客论坛广泛传播。本文将从网络检测、终端检测、内存检测、内存马提取和配置信息提取等多个角度,全面剖析AsyncRAT的检测与对抗技术。

网络检测技术

1. TLS通信特征检测

AsyncRAT使用TLS加密通信,可通过以下特征进行检测:

  • 通信协议:固定使用TLS 1.0协议
  • 密钥套件:在Windows 7环境中运行时,使用TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)密钥套件
  • 心跳包特征
    • 心跳间隔稳定在10-15秒(源码指定为10-15秒,实测多为15秒)
    • 心跳数据包长度固定(因载荷固定导致加密后长度固定)

2. 明文字符串特征

C#调用gzip压缩时存在特殊现象:

  • 部分解压后的明文字符串会出现在压缩数据中(如"Packet"、"savePlugin"、"Dll"等)
  • 这种现象可用于识别AsyncRAT流量

终端检测技术

1. YARA规则检测

使用公开的AsyncRAT特征规则进行静态检测:

rule AsyncRAT {
    meta:
        description = "AsyncRAT v0.5.7B - Remote Administration Tool"
        author = "IrishIRL"
        reference = "https://github.com/NYAN-x-CAT/AsyncRAT-C-Sharp"
    strings:
        $s1 = "MZ"
        $s2 = "/c schtasks /create /f /sc onlogon /rl highest /tn \""
        $s3 = "START \"\" \""
        $s4 = "DEL \""
        $s5 = "System.Drawing.Imaging"
        $s6 = "System."
    condition:
        all of them
}

2. Loki工具检测

Loki是一款多功能IOC扫描器,支持:

  • Yara规则匹配文件内容
  • 正则匹配路径和文件名
  • Yara匹配进程内存
  • 文件Hash匹配
  • 进程网络行为C2检测
  • 文件系统检测
  • 进程异常检测

使用命令:

loki.exe -p <扫描路径> --onlyrelevant --noprocscan

内存检测技术

1. 内存YARA规则

针对内存中的AsyncRAT特征:

rule AsyncRAT_Memory {
    meta:
        description = "AsyncRAT Memory Detection"
    strings:
        $s1 = "AsyncClient.exe"
        $s2 = "ClientSocket"
        $s3 = "Packet"
        $s4 = "savePlugin"
        $s5 = "Dll"
    condition:
        3 of them
}

2. 内存检测方法

  • 使用Loki工具加载上述规则扫描进程内存
  • 重点关注以下进程:
    • aspnet_compiler.exe(常见注入目标)
    • 其他.NET运行时进程

内存马提取技术

1. MegaDumper工具使用

MegaDumper可直接从内存中转储.NET可执行文件:

  1. 定位可疑进程(如aspnet_compiler.exe)
  2. 使用MegaDumper提取.NET模块
  3. 分析提取的DLL/EXE文件

2. 提取后分析

使用dnSpy等工具对提取的.NET模块进行反编译:

  • 查找核心功能类
  • 分析通信逻辑
  • 提取配置信息

内存配置信息提取

1. 内存中配置信息特征

  • 位置特征
    • 配置信息字符串前4字节为长度信息
    • 前12字节处有固定标记0x00 0x00 0x00 0x80
  • Key字符串
    • 固定长度0x2C字节
    • 通常为Base64编码

2. 自动化提取脚本

使用Go语言编写的提取脚本示例:

package main

import (
    "encoding/hex"
    "fmt"
    "io/ioutil"
    "os"
    "regexp"
)

func main() {
    sss, _ := readFile("memory.dmp")
    data := hex.EncodeToString([]byte(sss))

    pattern := regexp.MustCompile("00000080.{8}2c000000")
    matches := pattern.FindAllStringIndex(data, -1)
    if len(matches) > 0 {
        fmt.Println("找到匹配:")
        for _, match := range matches {
            startIndex := match[0] / 2
            endIndex := match[1] / 2
            fmt.Printf("起始索引: 0x%x, 结束索引: 0x%x\n", startIndex, endIndex)
            data_match := data[endIndex*2 : endIndex*2+0x2c*2*2]
            fmt.Println(data_match)
            aa, _ := hex.DecodeString(data_match)
            fmt.Println(string(aa))
        }
    } else {
        fmt.Println("未找到匹配")
    }
}

func readFile(filename string) (string, error) {
    f, err := os.Open(filename)
    if err != nil {
        return "", err
    }
    defer f.Close()

    b, err := ioutil.ReadAll(f)
    if err != nil {
        return "", err
    }

    return string(b), nil
}

3. 配置信息解密

提取的配置信息通常为Base64编码,可使用AsyncRAT解密算法进行解密(参考《AsyncRAT加解密技术剖析》中的解密脚本)。

综合检测方案

  1. 网络层面

    • 监控TLS 1.0连接
    • 检测固定心跳间隔
    • 捕获gzip压缩数据中的明文字符串
  2. 终端层面

    • 定期使用Loki进行全盘扫描
    • 重点关注新创建的.NET可执行文件
    • 监控计划任务和自启动项
  3. 内存层面

    • 对可疑进程进行内存扫描
    • 提取并分析内存中的.NET模块
    • 从内存中提取配置信息
  4. 取证分析

    • 固定进程内存证据
    • 提取并解密配置信息
    • 分析C2服务器地址和其他IOC

防御建议

  1. 禁用TLS 1.0协议
  2. 监控异常进程间通信
  3. 限制.NET程序执行权限
  4. 部署EDR解决方案监控内存注入行为
  5. 定期更新YARA规则库

通过以上多层次的检测技术,可以有效发现和分析AsyncRAT的攻击行为,为安全防御提供有力支持。

AsyncRAT攻防技术对抗全面解析 概述 AsyncRAT是一款基于C#开发的远程管理工具(RAT),因其功能强大且开源而在黑客论坛广泛传播。本文将从网络检测、终端检测、内存检测、内存马提取和配置信息提取等多个角度,全面剖析AsyncRAT的检测与对抗技术。 网络检测技术 1. TLS通信特征检测 AsyncRAT使用TLS加密通信,可通过以下特征进行检测: 通信协议 :固定使用TLS 1.0协议 密钥套件 :在Windows 7环境中运行时,使用 TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) 密钥套件 心跳包特征 : 心跳间隔稳定在10-15秒(源码指定为10-15秒,实测多为15秒) 心跳数据包长度固定(因载荷固定导致加密后长度固定) 2. 明文字符串特征 C#调用gzip压缩时存在特殊现象: 部分解压后的明文字符串会出现在压缩数据中(如"Packet"、"savePlugin"、"Dll"等) 这种现象可用于识别AsyncRAT流量 终端检测技术 1. YARA规则检测 使用公开的AsyncRAT特征规则进行静态检测: 2. Loki工具检测 Loki是一款多功能IOC扫描器,支持: Yara规则匹配文件内容 正则匹配路径和文件名 Yara匹配进程内存 文件Hash匹配 进程网络行为C2检测 文件系统检测 进程异常检测 使用命令: 内存检测技术 1. 内存YARA规则 针对内存中的AsyncRAT特征: 2. 内存检测方法 使用Loki工具加载上述规则扫描进程内存 重点关注以下进程: aspnet_ compiler.exe(常见注入目标) 其他.NET运行时进程 内存马提取技术 1. MegaDumper工具使用 MegaDumper可直接从内存中转储.NET可执行文件: 定位可疑进程(如aspnet_ compiler.exe) 使用MegaDumper提取.NET模块 分析提取的DLL/EXE文件 2. 提取后分析 使用dnSpy等工具对提取的.NET模块进行反编译: 查找核心功能类 分析通信逻辑 提取配置信息 内存配置信息提取 1. 内存中配置信息特征 位置特征 : 配置信息字符串前4字节为长度信息 前12字节处有固定标记 0x00 0x00 0x00 0x80 Key字符串 : 固定长度0x2C字节 通常为Base64编码 2. 自动化提取脚本 使用Go语言编写的提取脚本示例: 3. 配置信息解密 提取的配置信息通常为Base64编码,可使用AsyncRAT解密算法进行解密(参考《AsyncRAT加解密技术剖析》中的解密脚本)。 综合检测方案 网络层面 : 监控TLS 1.0连接 检测固定心跳间隔 捕获gzip压缩数据中的明文字符串 终端层面 : 定期使用Loki进行全盘扫描 重点关注新创建的.NET可执行文件 监控计划任务和自启动项 内存层面 : 对可疑进程进行内存扫描 提取并分析内存中的.NET模块 从内存中提取配置信息 取证分析 : 固定进程内存证据 提取并解密配置信息 分析C2服务器地址和其他IOC 防御建议 禁用TLS 1.0协议 监控异常进程间通信 限制.NET程序执行权限 部署EDR解决方案监控内存注入行为 定期更新YARA规则库 通过以上多层次的检测技术,可以有效发现和分析AsyncRAT的攻击行为,为安全防御提供有力支持。