一款针对国内用户的多阶段Rust加载器分析
字数 2549 2025-12-16 12:09:35

多阶段Rust加载器技术分析与防御指南

概述

本文分析一款针对国内用户的多阶段Rust加载器,该样本携带国内数字签名,运行后释放多阶段木马,最终在内存中加载AsyncRAT远控木马。该样本具有高度隐蔽性和反检测能力,通过多种技术手段实现持久化驻留。

样本基本信息

初始加载器 (hgreiwwm7.exe)

  • 文件大小: 13094664字节
  • 文件版本: 52.17.70.40
  • MD5: 537aa066a497005e6a0b116a58b91097
  • SHA-256: 5834d20cfc80f6fe20514b7a1e3e9764765aa3f548e2874504e9d26345f80560
  • 数字签名: Wenzhou Feixun Internet Technology Co., Ltd.

数字签名异常行为

分析过程中发现数字签名状态变化:

  • 初始状态:Signed file, valid signature(文件已签名,签名有效)
  • 后续状态:A certificate was explicitly revoked by its issuer(证书已被颁发机构明确撤销)

技术分析细节

第一阶段:文件释放与执行

释放路径

C:\Users\admin\AppData\Roaming\Microsoft\SystemCertificates\239c4b63_19bc_445e_8761_bfbe3626e0bc.dll

执行方式

使用regsvr32.exe加载DLL:

regsvr32.exe /s /u "239c4b63_19bc_445e_8761_bfbe3626e0bc.dll"

参数说明:

  • /s: 静默模式
  • /u: 卸载,调用DllUnregisterServer函数

第二阶段:DLL模块分析

文件信息

  • 文件名称: 239c4b63_19bc_445e_8761_bfbe3626e0bc.dll
  • 文件大小: 4657008字节
  • SHA-256: 81e73894d42a66f9d280d4b972d01a3c1ac183d30fd7b045f399abbc924ad916

Rust语言特性与字符串加密

加密算法

样本采用ChaCha20Poly1305算法加密所有字符串:

密钥:

9F80A116F20535761EC9BB91CC406987B981A2AC7E3A709BAE83C8A512F8FAE4

IDA Python解密脚本

# -*- coding: utf-8 -*-
import idautils
import idaapi
import idc
import struct
import binascii
from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305

# 内置密钥(32字节)
KEY = bytes.fromhex("9F80A116F20535761EC9BB91CC406987B981A2AC7E3A709BAE83C8A512F8FAE4")

def chacha20_decrypt(ciphertext, key, nonce, initial_counter=0):
    if len(key) != 32:
        raise ValueError("Key must be 32 bytes")
    if len(nonce) != 12:
        raise ValueError("Nonce must be 12 bytes")
    
    result = bytearray()
    pos = 0
    counter = initial_counter
    
    while pos < len(ciphertext):
        block = chacha20_block(key, counter, nonce)
        counter += 1
        remaining = len(ciphertext) - pos
        # 解密逻辑实现...

解密字符串列表

样本中解密出的关键字符串包括系统API、文件路径、进程名等:

ntdll, RtlCaptureContext, NtContinue, Advapi32, SystemFunction032,
kernel32.dll, VirtualProtect, WaitForSingleObject, SetEvent,
BgTaskRegistrationMaintenanceTask, regsvr32, SystemCertificates,
360tray.exe, zhudongfangyu.exe

持久化机制

计划任务创建

样本创建两个计划任务实现持久化:

  1. BgTaskRegistrationMaintenanceTask:

    regsvr32.exe /s /u "%APPDATA%\Microsoft\SystemCertificates\239c4b63""19bc""445e""8761""bfbe3626e0bc.dll"
    
  2. QihooGetWordSearchFatch:

    C:\ProgramData\sihost.exe /s /u C:\Users\admin\AppData\Roaming\Microsoft\SystemCertificates\239c4b63""19bc""445e""8761""bfbe3626e0bc.dll
    

数据文件操作

创建数据文件:C:\Users\admin\0f12fc8e.dat

  • 用于存储加密的载荷数据
  • 从中提取DLL文件路径信息

进程注入与内存操作

Shellcode注入

  • 使用xor_decrypt函数解密shellcode
  • 注入目标进程:taskhostw.exe、SecurityHealthSystray.exe、sihost.exe
  • 特殊行为:注入sihost.exe时重启资源管理器

提取的PE文件

从shellcode中提取schedJump.exe:

  • 文件大小: 12800字节
  • SHA-256: 3bfb2437d9104775d3c1e47c8021edff51c143c6f4a749b1de8aab2df0c26ff2

内核级Hook技术

LdrLoadDll函数Hook

  • 拦截DLL加载过程
  • 实现代码注入和模块隐藏

反检测机制

安全软件检测

检测360安全软件进程:

  • 360tray.exe
  • zhudongfangyu.exe

进程终止

终止特定进程以消除干扰:

wiawow64.exe, winrshost.exe, wksprt.exe, wuapihost.exe, raserver.exe

第三阶段:.NET程序加载

内存转换技术

  • regsvr32.exe和DLL初始为C++程序
  • 运行后转换为.NET程序内存空间
  • 实现技术:内存加载和反射技术

Kxhxxsutofr.exe分析

  • 文件大小: 573952字节
  • SHA-256: c8dccb63ec5e0ed5343d46bbebcc6f9b85599bb6a99dd962e12f2ea2678a136c

最终载荷:Apoom.dll

文件信息

  • 文件大小: 1291264字节
  • SHA-256: ff66bd39822a1b58e4d9d555f0f90efbff722270999ac1d76327fb9373826d6f
  • 加壳方式: .NET Reactor

配置信息提取

C2服务器:

  • 地址: 118.107.40.167:56001

证书数据:

MIIE5jCCAs6gAwIBAgIQAJpwd6FPpg/xol68eQyHozANBgkqhkiG9w0BAQ0FADAUMRIwEAYDVQQDDAlMb3pyZnlrcmQwIBcNMjUwMjE5MDA1NTE4WhgPOTk5OTEyMzEyMzU5NTlaMBQxEjAQBgNVBAMMCUxvenJmeWtyZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAI6vY/pxOu2TZ2F6DAyNe3gIACi1UUp4oxGHj+ivr6Be36itKh1yor/oIHbkAre7pc/E4PgOQMR9Ode6jgHeVmfa9QdWMEW978JF+GFP8xWGo+9j2Zq1gOsMW6Q2S/6GDJAGTvg2S+2kznUTtP8Tnq97PoL2EiUr3r4IYEDYNRZk7dlFL6+Wa0yEV1rLrYJI6xS/ARXIXgB/ukoXGXAqZwPa4QA9Q0WRBlda134xAGs8nR0RWVYxwBuC6bL3B6/wGppo9bV9L9iIJhGBIrsVK3l+abZhwpcZGneyG9AoBJ6WbIsapTBxZqF7lGvGOWF8e5j9PNv3SBMzqO9LvTcnt84SlZ1/n9DA/34oFrretJANOqpvZJZUSpA6fo5xtRHmV4aihoioF70yXVMzpW0FVTneK3GkGkJ+6QYz6tnLf0JoWe3TYWRvom2aEpDYek8lhV+GQlf288z6sjZ9ZDS5d4/+FV883AIU6MS2PavVUvOpaaT/lZkGQ2P0ybJUBvtMAvOC7Xrsie4QyeLjZnpGplUdeJU6WuvuR8gzVY+dHnIJ7Hm2bH6UhleKWVhY93kTS6NctT1JQ/q2EO4Wjnhih68YmkNJrATwvZdOqbVE4saGlO2JI+lWtb5Ds3KqyyaLkeZD9XO14VrpevSJLbu457X9az2iLRjCN4/xDMiR3u6rAgMBAAGjMjAwMB0GA1UdDgQWBBSYbdVK2VAREbn1BK91rUODVVAIfjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDQUAA4ICAQCIQrLzx7D2gq7pbFkYwtrYqUuux12JwQwZ4EtWGU98sbhIyg4DpJ56jArUNRjTm2hBo1mUrTwOELm0dICQuzK3MNaeQ0qtfaTfHiC+vZN+3LlhV/H0SNSQneJllEDNC2y1WZvbFgkTHmbpHweGlnwqYHIrwYUPCGaR/95aoCIwc2V/viRJ1QAScc5SuamFFyjfRoe3piAE49Z7njqhYQTNHtUUuXALYC4i6F1NWuuK8FTQb6bwZoRA2Y6yFexuRB05P1M7f43fv0VY+61WqSs+5CPMKIRb8w1S9eCp1Y9ZsIWjXysLnJyL+7zaApkVypHnIsjFaTjZTauzPSVud7djVoTZeXyNOuIW1XgiO4Yu+QiIlXN3vBafd3wJI23zczXMmoUBS/t4FZGVmC0tJkL+Tzr150qB913DMKelch61XjGJB5EiROxvOddTdpyidJc92JU/yJmARyRhoetBd+UyzFqguJ7jI+jGbm68iiLGN7Ejinc/rAX03gsBT2uI3NKmMoSFnsKcf4Ecgc0iejJREBVT0h04SDPDUGBkHC3uCGsiXKakcS9llEfOKrv8LrNng5XXhzxpENiRNzafdXsgZY/+Q8udYRZoYHHKKgn8gp59Bpf55LLWU9ZasJhaRCY7bI8Mg9u6RinpdoxfgOKgfaO2VaJLkn8IQXcQwmxT9Q==

证书解码CN值:Lozrfykrd

家族归属分析

根据技术特征和网络情报关联:

  • ResolverRAT家族: 基于证书CN值Lozrfykrd确认
  • AsyncRAT关联: 微步沙箱检测结果和网络分析报告确认关联性

防御检测建议

行为检测指标

  1. 文件路径监控

    • %APPDATA%\Microsoft\SystemCertificates\异常DLL文件
    • 用户目录下的.dat数据文件创建
  2. 进程行为监控

    • regsvr32.exe异常参数调用
    • 计划任务创建包含Qihoo和SystemCertificates关键词
  3. 网络通信检测

    • 与118.107.40.167:56001的通信行为
    • TLS证书CN值Lozrfykrd的检测

技术对抗措施

  1. 字符串加密对抗

    • 监控ChaCha20Poly1305算法特征
    • 检测内存中的密钥9F80A116F20535761EC9BB91CC406987B981A2AC7E3A709BAE83C8A512F8FAE4
  2. 内存检测

    • .NET程序内存加载特征监控
    • LdrLoadDll函数Hook检测
  3. 持久化检测

    • 计划任务名称特征检测
    • 注册表异常项监控

IOC指标

文件HASH

hgreiwwm7.exe: 5834d20cfc80f6fe20514b7a1e3e9764765aa3f548e2874504e9d26345f80560
239c4b63_19bc_445e_8761_bfbe3626e0bc.dll: 81e73894d42a66f9d280d4b972d01a3c1ac183d30fd7b045f399abbc924ad916
schedJump.exe: 3bfb2437d9104775d3c1e47c8021edff51c143c6f4a749b1de8aab2df0c26ff2
Kxhxxsutofr.exe: c8dccb63ec5e0ed5343d46bbebcc6f9b85599bb6a99dd962e12f2ea2678a136c
Apoom.dll: ff66bd39822a1b58e4d9d555f0f90efbff722270999ac1d76327fb9373826d6f
November bill.exe: 01f844ca8f535c4fe372d4e6f256ad60d08e795939ce212d519e239e490c74c1

网络指标

  • C2地址: 118.107.40.167:56001
  • 证书CN: Lozrfykrd

行为指标

  • 数字签名: Wenzhou Feixun Internet Technology Co., Ltd.
  • 计划任务名: BgTaskRegistrationMaintenanceTask, QihooGetWordSearchFatch
  • 进程名: 360tray.exe, zhudongfangyu.exe(检测目标)

本教学文档详细分析了该多阶段Rust加载器的技术实现和防御方案,为安全研究人员提供完整的技术参考和实战指导。

多阶段Rust加载器技术分析与防御指南 概述 本文分析一款针对国内用户的多阶段Rust加载器,该样本携带国内数字签名,运行后释放多阶段木马,最终在内存中加载AsyncRAT远控木马。该样本具有高度隐蔽性和反检测能力,通过多种技术手段实现持久化驻留。 样本基本信息 初始加载器 (hgreiwwm7.exe) 文件大小 : 13094664字节 文件版本 : 52.17.70.40 MD5 : 537aa066a497005e6a0b116a58b91097 SHA-256 : 5834d20cfc80f6fe20514b7a1e3e9764765aa3f548e2874504e9d26345f80560 数字签名 : Wenzhou Feixun Internet Technology Co., Ltd. 数字签名异常行为 分析过程中发现数字签名状态变化: 初始状态:Signed file, valid signature(文件已签名,签名有效) 后续状态:A certificate was explicitly revoked by its issuer(证书已被颁发机构明确撤销) 技术分析细节 第一阶段:文件释放与执行 释放路径 执行方式 使用regsvr32.exe加载DLL: 参数说明: /s : 静默模式 /u : 卸载,调用DllUnregisterServer函数 第二阶段:DLL模块分析 文件信息 文件名称 : 239c4b63_ 19bc_ 445e_ 8761_ bfbe3626e0bc.dll 文件大小 : 4657008字节 SHA-256 : 81e73894d42a66f9d280d4b972d01a3c1ac183d30fd7b045f399abbc924ad916 Rust语言特性与字符串加密 加密算法 样本采用ChaCha20Poly1305算法加密所有字符串: 密钥 : IDA Python解密脚本 解密字符串列表 样本中解密出的关键字符串包括系统API、文件路径、进程名等: 持久化机制 计划任务创建 样本创建两个计划任务实现持久化: BgTaskRegistrationMaintenanceTask : QihooGetWordSearchFatch : 数据文件操作 创建数据文件: C:\Users\admin\0f12fc8e.dat 用于存储加密的载荷数据 从中提取DLL文件路径信息 进程注入与内存操作 Shellcode注入 使用xor_ decrypt函数解密shellcode 注入目标进程:taskhostw.exe、SecurityHealthSystray.exe、sihost.exe 特殊行为:注入sihost.exe时重启资源管理器 提取的PE文件 从shellcode中提取schedJump.exe: 文件大小 : 12800字节 SHA-256 : 3bfb2437d9104775d3c1e47c8021edff51c143c6f4a749b1de8aab2df0c26ff2 内核级Hook技术 LdrLoadDll函数Hook 拦截DLL加载过程 实现代码注入和模块隐藏 反检测机制 安全软件检测 检测360安全软件进程: 360tray.exe zhudongfangyu.exe 进程终止 终止特定进程以消除干扰: 第三阶段:.NET程序加载 内存转换技术 regsvr32.exe和DLL初始为C++程序 运行后转换为.NET程序内存空间 实现技术:内存加载和反射技术 Kxhxxsutofr.exe分析 文件大小 : 573952字节 SHA-256 : c8dccb63ec5e0ed5343d46bbebcc6f9b85599bb6a99dd962e12f2ea2678a136c 最终载荷:Apoom.dll 文件信息 文件大小 : 1291264字节 SHA-256 : ff66bd39822a1b58e4d9d555f0f90efbff722270999ac1d76327fb9373826d6f 加壳方式 : .NET Reactor 配置信息提取 C2服务器 : 地址: 118.107.40.167:56001 证书数据 : 证书解码CN值:Lozrfykrd 家族归属分析 根据技术特征和网络情报关联: ResolverRAT家族 : 基于证书CN值Lozrfykrd确认 AsyncRAT关联 : 微步沙箱检测结果和网络分析报告确认关联性 防御检测建议 行为检测指标 文件路径监控 %APPDATA%\Microsoft\SystemCertificates\ 异常DLL文件 用户目录下的.dat数据文件创建 进程行为监控 regsvr32.exe异常参数调用 计划任务创建包含Qihoo和SystemCertificates关键词 网络通信检测 与118.107.40.167:56001的通信行为 TLS证书CN值Lozrfykrd的检测 技术对抗措施 字符串加密对抗 监控ChaCha20Poly1305算法特征 检测内存中的密钥 9F80A116F20535761EC9BB91CC406987B981A2AC7E3A709BAE83C8A512F8FAE4 内存检测 .NET程序内存加载特征监控 LdrLoadDll函数Hook检测 持久化检测 计划任务名称特征检测 注册表异常项监控 IOC指标 文件HASH 网络指标 C2地址: 118.107.40.167:56001 证书CN: Lozrfykrd 行为指标 数字签名: Wenzhou Feixun Internet Technology Co., Ltd. 计划任务名: BgTaskRegistrationMaintenanceTask, QihooGetWordSearchFatch 进程名: 360tray.exe, zhudongfangyu.exe(检测目标) 本教学文档详细分析了该多阶段Rust加载器的技术实现和防御方案,为安全研究人员提供完整的技术参考和实战指导。