Electron安全篇告一段落

2024-05-17 20:00:51 浏览数 (2)

大家好,我们是 NOP Team

我是意大利的猫,我猜这段时间更新的文章内容以及频率已经让部分朋友感觉对厌烦了,本地文件读取漏洞那篇文章就是本系列的最后一篇了,如果以后遇到新的安全问题,可能还会更新,在这里我要交代一下这么做的背景

前一段时间我想练习练习桌面开发,所以捡起了之前丢了一段时间的 Electron ,看了几遍 Electron 官方的最佳安全实践文档,想起了曾经 Goby 爆出来那个反制的漏洞,出于好奇,了解了一下,之后又出于好奇,看了一下系统上安装的 Electron 开发的程序的安全情况 相信结果大家在 《Electron 安全与你我息息相关》那篇文章中看到了,在安全方面国内外对比非常明显,国外的 App ,例如 VSCode 、 Discord 、 Signal 在安全配置、Electron 版本、Fuse等方面是明显要强于国内的这些程序的,当然了,对比并不是完全公平的,毕竟也就是拿出来 10 几款程序对比,也不是同类型程序 我们作为安全人员,对危险的嗅觉更敏感,国内 Electron 开发的程序采用这种不够安全的配置,不够安全的版本的行为让我感到深深的不安,更为关键的是,用户对此一无所知,即使是安全从业者 开发者直接将安全威胁直接抛给了用户,用户的选择只有接受和不用两种,我觉得这不是负责任的行为,所以我不得不站出来做这件事情,让用户能够以最简单的方式判断程序的脆弱性,了解使用该款程序带来危害的可能性

同时我们分析了 Electron 的漏洞史、Electron 开发的程序的漏洞史,对 Electron 官方提出的最佳安全实践进行了详细的解析、测试、拓展,还帮助 Electron 官方发现了潜在的 0day 漏洞

这和当初我写 JavaScript 逆向、请求/返回参数加密逆向的文章情况是一样的,广大的安全测试人员还没有多少去研究这件事,很多人遇到就不搞了,反而是与钱接触更紧密直接的搞爬虫的这帮人在拼命研究,这会给网站/程序的安全性带来非常大的麻烦

所以我不得不站出来,提出 JS 逆向技术会成为渗透测试工程师与红队检测相关人员的必备技能,还有 Electron 安全与你我息息相关 这两个观点,并写文章阐述

所以从 2024 年 3 月 28 日到今天 2024 年 5 月 15 日,我们用了 48 天时间,写了 20 篇文章来阐述 Electron 安全与你我息息相关这件事,希望大家理解

我的朋友秋平在看过 《Electron 安全与你我息息相关》这篇文章后,给出了排查系统上存在的 Electron 开发的程序的命令,我在这里稍微修改后传递给大家

代码语言:javascript复制
// MacOS
find /Applications -type d | grep Electron | awk -F ".app" '{print $1}' | uniq

// 我补充一个
mdfind "kMDItemCFBundleIdentifier == '*electron*'"
代码语言:javascript复制
# Windows
$directoriesToSearch = 
    "C:Program Files",
    "C:Program Files (x86)",
    "$env:APPDATA",
    "$env:LOCALAPPDATA"

foreach ($directory in $directoriesToSearch) {
    Get-ChildItem -Path $directory -Recurse -Directory -ErrorAction SilentlyContinue | ForEach-Object {
        $resourcesPath = Join-Path $_.FullName "resources"
        if (Test-Path $resourcesPath) {
            $asarFileExists = Test-Path (Join-Path $resourcesPath "app.asar")
            $appDirectoryExists = Test-Path (Join-Path $resourcesPath "app")
            $defaultAsarFileExists = Test-Path (Join-Path $resourcesPath "default_app.asar")

            if ($asarFileExists -or $appDirectoryExists -or $defaultAsarFileExists) {
                Write-Host "潜在的Electron应用发现于: $($_.FullName)"
            }
        }
    }
}
代码语言:javascript复制
# Linux 

sudo find "/" -path "*resources/*" ( -type f -name "app.asar" -o -type d -name "app" -o -type f -name "default_app.asar" ) -exec echo {} ; 2>/dev/null | awk -F "/resources/" '{print $1}' | sort -u | uniq

Electron 安全系列文章已经全部上传到百度网盘,并同步到 Github 上了

https://github.com/Just-Hack-For-Fun/Electron-Security

我将这 20 篇文章在公众号上做了一个合集,地址为

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzU1NDkwMzAyMg==&action=getalbum&album_id=3457633780112556033#wechat_redirect

我将 20篇 PDF 直接拼接成了一份,地址如下

https://pan.baidu.com/s/1pV3CksddnWDoQ0pcNZ3Phw?pwd=gqvz

0 人点赞