首页| 论坛| 搜索| 消息
主题:秒盗账号钱包!伪装Electron程序暗藏后门窃取加密数据
z3960发表于 2026-05-16 18:03
近期,火绒威胁情报中心针对SeanPalia样本的分析发现,这是一款伪装为正常 Electron桌面程序运行的信息窃取木马。样本启动后,会通过main.js加载经过bytenode 编译的decrypted_payload.jsc,并以运行时恢复方式释放主payload。随后,程序会先结束抓包、调试和逆向分析工具,并批量关闭浏览器进程以释放数据库文件锁;之后通过系统性扫描浏览器、Discord、桌面钱包与浏览器钱包扩展等高价值目标,读取Login Data、Web Data、Cookies、History、Bookmarks、Local Storage/leveldb 等本地敏感数据,同时恢复Local State中的Chromium密钥并解密受保护的数据。进一步分析显示,该样本还会额外下载并装载第二阶段payload2,用于处理Chromium App-Bound等更难直接提取的受保护数据。在完成本地窃取后,样本还会调用Discord API富化账号资料,补充支付方式、礼品码、好友和 guild信息,并收集公网 IP、主机硬件、系统信息以及游戏 / 工具存在性等受害者画像。最终,所有窃取结果会被加密、压缩、归档并上传到多个临时文件平台,同时将下载链接、压缩包密码和受害者摘要回传至攻击者控制端,形成一条完整的信息窃取、画像评估与集中出网链路,最终造成个人隐私泄露、账号被盗、数字钱包资产损失等严重后果。目前,火绒安全产品已实现对该恶意样本的拦截与查杀。查杀图技术背景Electron 是一种基于 Chromium 与 Node.js 的跨平台桌面应用框架,凭借开发成本低、生态完善以及可直接调用系统能力等特点,被大量桌面软件采用。但与此同时,Electron 应用通常会携带完整的 Node.js 运行环境,并通过 ASAR、JavaScript、V8 字节码或原生模块加载业务代码,这也使其逐渐成为攻击者投毒和隐藏恶意逻辑的载体。SeanPalia 正是这类风险的典型样本。该程序表面上伪装为正常 Electron 应用,实际在启动后通过入口脚本加载恶意 V8 字节码载荷,并进一步执行浏览器数据窃取、Discord 信息窃取、加密货币钱包扫描、受保护数据解密、数据打包以及多通道上传等恶意行为。综合其执行链路与业务目标判断,该样本属于 Electron 形态的信息窃取木马。流程图如下:一、样本分析1. 初始阶段初始化时期目的:样本在启动阶段会准备 Electron 与 Node.js 执行环境,并通过入口脚本加载核心 payload,从而让后续恶意模块能够在受害者系统中执行。Electron 基础结构:Electron 由 Chromium 与 Node.js 组成,开发者可以使 HTML、CSS JavaScript 构建跨平台桌面程序。一个基础 Electron 应用通常包含 package.json、main.js 和页面文件,并由 Electron 可执行文件负责启动 。Electron 的优势主要包括:● 兼容性较好:应用绑定指定版本 Chromium,开发者无需额外处理大量浏览器兼容问题。● Node.js 能力完整:前端页面或主进程可调用文件系统、进程、网络、系统信息等 Node.js API。● 网络访问灵活:可直接使用 Node.js 网络模块 npm 依赖发起请求。● 扩展能力强:可通过 npm 模块或原生扩展调用更多系统能力。Electron 投毒原理:Electron 应用通常会将业务代码打包到 resources 目录下的 ASAR 文件中。攻击者可通过解包 ASAR 后篡改源码或依赖、替换入口脚本、植入加载器,或者利用调试模式注入恶意代码,从而实现命令执行、持久化、数据窃取或后门控制。Electron 程序带有可信数字签名,若投毒过程未改动外层主程序可执行文件,签名状态不受破坏,则极易降低用户安全警惕。Electron 主程序图:resources 下的 ASAR 文件图:解包后得到 main.js、配置文件和被引用模块图:分析 main.js 后发现,其主要作用并非正常业务逻辑,而是作为 payload 加载器继续引入后续恶意代码:payload是由9Bgr5Cugh6G3UuU1.enc aes解密后得到的V8 Bytecode文件9Bgr5Cugh6G3UuU1.enc图:V8 Bytecode jsc文件图:二、V8 Bytecode 反汇编 / 反编译过程V8 是什么?V8是由Google 开发的高性能 JavaScript 引擎,最初用于 Chrome 浏览器,现在也被 Node.js 使用。它的主要职责是把 JavaScript 源码执行成机器能理解的指令,让浏览器或服务器快速运 JS 代码:Bytecode 执行:源码可以被编译为 V8 bytecode,别人拿到文件后难以直接看懂或运行。怎么反编译?先把 V8 序列化出来的字节码结构、常量池 BytecodeArray 打印出来,再据此做进一步反混淆和语义恢复。对 SeanPalia 这类 Electron/Node 样本,这一步的价值主要有四点:● 确认样本使用的 V8 版本,保证后续字节码解析口径一致。● 直接拿到 SharedFunctionInfo、常量池、对象模板等运行时结构。● 绕过 bytenode/JSC 只给缓存字节码、不带原始源码的问题。● 可以配合[原创]V8 Bytecode反汇 反编译不完全指南-逆向工程-看雪安全社区|专业技术交流与安全研究论坛配合阅读。(点击文章底部参考链接)。2.1 总体思路对这类 .jsc 文件,最稳的做法通常是:1. 确认 Electron / Node / V8 版本2. 拉取对应版本的 V8 源码3. 在 V8 内部打印 SharedFunctionInfo、BytecodeArray、FixedArray 等结构4. 编译一个最小的字节码加载器,把目标 .jsc 当作 CachedData 喂给 V85. 收集反汇编输出,再进入后续脚本化清洗、重命名和业务还原这一步更准确地说是“反汇编 + 结构化打印”,而不是传统意义上的完整反编译。2.2 拉取对应版本的 V8 源码先安装最基本的构建依赖:
apt-get install ninja-build clang pkg-config安装 depot_tools:
mkdir ~/v8toolscd ~/v8toolsgit clone https://chromium.googlesource.com/chromium/tools/depot_tools.gitexport PATH=~/v8tools/depot_tools:$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
下一页 (1/2)
回帖(1):
1 # 爱我中华
05-16 20:02
安全第一

全部回帖(1)»
最新回帖
收藏本帖
发新帖