第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

admin 2025年4月21日22:23:48评论9 views字数 3963阅读13分12秒阅读模式

这是探讨基于 Electron 的应用程序安全测试基础知识的系列文章的第三部分。

在本部分中,我们将探讨提取和分析 .asar 文件以收集有用信息的重要性。需要注意的是,我们将本部分分为两部分,以强调每篇文章中的信息。在稍后的第二部分中,我们将讨论一个我们遇到的独特案例研究。

如果您刚刚开始阅读本文,在上一部分中,我们解释了安装和检测基于 Electron 的应用程序的基本过程,包括如何在各种操作系统上检测它们的存在——手动和自动。

IV. 提取和分析.ASAR 文件

了解了在操作系统上安装和识别基于 Electron 的应用程序的常见过程之后,我们现在将探讨提取 Electron 应用程序以收集有用的测试信息所涉及的常见步骤概述。

4.1. .Asar 文件提取工具

在上一章中,我们提到 .asar 文件是一个存档文件,其中包含基于 Electron 的应用程序中使用的所有 JavaScript、HTML、CSS 和其他资源。由此,我们可能会产生一个问题:“我们可以提取这个 .asar 文件吗?” 答案是:“可以”。

那么,该怎么做呢?从技术上讲,有很多方法可以做到这一点,其中包括使用名为asar的工具(与其文件扩展名匹配)和NPX。但是,我们个人更喜欢使用 NPX。

4.1.1. 为什么选择 NPX?

本质上,NPX(Node Package eXecute 的缩写)是一个 NPM 包运行器,它允许我们从 NPM 包执行命令,而无需全局或本地安装它。

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

1 NPX简单解释

许多用户选择 NPX 有几个高效的原因,首先,它可以避免在操作系统中安装一些可能只是暂时使用的软件包,从而保持操作系统的清洁。其次,它还可以避免“软件包污染”问题,即未使用的软件包可能会填满存储空间,甚至与其他软件包发生冲突。

因此,当我们偶尔需要运行 asar 命令时,使用 NPX 是更好的选择。使用 NPX,asar 包会被临时下载并执行。这样我们就无需显式安装即可使用该命令,方便一次性或偶尔使用。

4.2. 提取

假设我们已经成功识别出我们的操作系统上存在基于 Electron 的应用程序(让我们使用我们在第 2 章中创建的 Electron 应用程序),并且我们找到了该应用程序的 .asar 文件(名为 app.asar)。

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

2 搜索.asar文件

下一步是执行 NPX。可以使用以下命令完成:

npx asar extract app.asarapp -extract

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

3 提取过程

简单来说:

  • app-extract 是放置 app.asar 文件的提取结果的目录。
  • 安装 Node.js 后即可执行此 NPX 命令 — — 就像我们在第 2 章中所做的那样。

此提取过程成功后,我们将能够访问先前在构建过程中捆绑的资源。

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

4 提取结果

4.3. .asar 提取的重要性

众所周知,软件开发中常见的问题之一是将敏感信息(例如凭证)以硬编码的方式嵌入到代码中,无论有意还是无意。根据GitGuardian 发布的《2024 年 GitGuardian 机密蔓延现状报告》显示,每 10 个代码作者中就有 1 个以上泄露了一个机密,而每 1,000 个提交中就有 7 个至少泄露了一个机密。

关于在基于 Electron 的应用程序中嵌入凭证的问题,有什么具体细节吗?答案是“”。2021 年,一位名叫augustozanellato 的研究人员在 Shopify 一名员工的 .asar 文件中发现了一个 GitHub 个人访问令牌。简而言之,经过分析,Shopify 发现该令牌几乎可以完全访问敏感数据,这些数据可能被用于修改甚至导致严重的停机中断。

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

5 研究人员总结

因此,基于这些数据和事实,提取 .asar 文件并分析其内容无疑是一种明智的做法。我们永远无法知道其中隐藏了哪些敏感信息,也无法知道这些信息可能被如何利用。

4.3.1. 关键词

也许有些读者会有疑问,比如需要搜索哪些具体方面,以及可以使用的关键词。

嗯,一般来说,我们在这种情况下寻找的内容与在源代码中搜索敏感信息有相似之处,例如凭证、令牌、密钥、URL 和路径(包括端点)、IP 地址等。

关于关键词,我们可以利用EdOverflow 编制的一份综合列表(虽然它似乎是不久前创建的,但其中列出的关键词至今仍然有效)。

等等,你之前不是提到过 URL 吗?难道我们不能用子域名枚举工具来查找 URL 的存在吗?没错。但是,这里我们不能忽略一些可能性,例如:

  • 通过 URL 进行身份验证过程的存在,通常没有特定访问权限就无法获得。
  • 存在与主域名不同的暂存 URL。请注意,暂存区域存在漏洞,可能导致访问生产数据。(我们将另行讨论此问题,InshaAllah)。

4.3.2. 执行关键字搜索

在源代码中搜索敏感信息的方法有很多种。但为了简单起见,我们将重点介绍两种常用的工具:命令行工具(具体来说是使用 grep)和 GUI 工具(例如 Visual Studio Code)。

4.3.2.1. 使用命令行工具进行关键字搜索 — “grep”

Grep 是 Linux 和 Unix 环境中的一个重要命令。它的主要目的是在指定的文件中搜索文本和字符串。本质上,grep 命令会遍历指定的文件,查找与指定字符串或单词匹配的行。作为一项基本命令,它为试图识别文件中敏感信息的测试人员提供了宝贵的实用工具。

要使用 grep 进行关键字搜索,我们可以导航到包含提取的 .asar 文件的目录并使用以下命令:

grep -r keyword  /path/to/extracted/asar

该命令将在目录中递归搜索指定的关键字并显示任何匹配的行,使测试人员能够快速识别潜在的关注区域。

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

6 grep 搜索结果示例

4.3.2.2. 使用 GUI 工具进行关键字搜索 — “Visual Studio Code”

对于喜欢更直观的关键字搜索方式的用户,Visual Studio Code(VS Code)等 GUI 工具也提供了强大的搜索功能。通过在 VS Code 中打开项目目录并使用内置的搜索功能,我们可以对整个代码库进行全面的搜索。

第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

7 使用 VS Code 的搜索结果示例

注意:无论我们使用哪种工具,都需要仔细监控我们输入的每个关键字产生的每个输出。

好了,本主题到此结束。下一节,我们将探讨一个我们遇到的独特案例。

参考

  • Electron,“@electron/asar — Electron Archive”,2024年4月1日。[在线]。访问网址:https://github.com/electron/asar。[访问日期:2024年4月]。
  • npmjs,“npx”,2020 年 10 月 16 日。[在线]。链接:https ://docs.npmjs.com/cli/v7/commands/npx 。[访问日期:2024 年 4 月]。
  • G. Singh,“NPM 与 NPX 的区别”,2024 年 3 月 27 日。[在线]。网址:https ://www.naukri.com/code360/library/difference-between-npm-and-npx 。[访问日期:2024 年 4 月]。
  • YesWeHack,“渗透测试 Electron 应用程序”,2021 年 7 月 28 日。[在线]。访问网址:https://www.yeswehack.com/learn-bug-bounty/pentesting-electron-applications。[访问日期:2024 年 4 月]。
  • MITRE 公司,“CWE-798:硬编码凭证的使用”,2024 年 2 月 29 日。[在线]。网址:https://cwe.mitre.org/data/definitions/798.html。[访问日期:2024 年 4 月]。
  • P. Wagenseil,“硬编码凭证比以往任何时候都多,而草率的编码是罪魁祸首”,2023年8月14日。[在线]。访问网址:https://www.scmagazine.com/news/more-hardcoded-credentials-than-ever-and-sloppy-coding-is-to-blame。[访问日期:2024年4月]。
  • M. Xiao,“人为失误导致 GitHub 机密信息曝光激增 67% 至 1000 万”,2024 年 3 月 10 日。[在线]。网址:https ://www.scmagazine.com/news/secrets-surge-10-million-github-human-error-drives-exposure 。[访问日期:2024 年 4 月]。
  • GitGuardian,《2024 年秘密蔓延现状》,2024 年 3 月。[在线]。网址:https://www.gitguardian.com/state-of-secrets-sprawl-report-2024。[访问日期:2024 年 4 月]。
  • Z. Augusto,“Github 访问令牌泄露”,2021 年 1 月。[在线]。访问网址:https://hackerone.com/reports/1087489。[访问日期:2024 年 4 月]。
  • EdOverflow,“gistfile1.txt”,2019年4月25日。[在线]。链接:https ://gist.github.com/EdOverflow/8bd2faad513626c413b8fc6e9d955669 。[访问日期:2024年4月]。
  • V. Gite,“如何在 Linux/UNIX 中使用 grep 命令(附示例)”,2024 年 4 月 17 日。[在线]。网址:https://www.cyberciti.biz/faq/howto-use-grep-command-in-linux-unix/。[访问日期:2024 年 4 月]。

公众号:安全狗的自我修养

bilibili:haidragonx

原文始发于微信公众号(安全狗的自我修养):第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月21日22:23:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   第 3 部分:1 - 基于 Electron 的应用安全测试基础 - 提取和分析 .asar 文件https://cn-sec.com/archives/3980811.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息