KeyFrame內部研究專用

Year of the Bounty Desktop: Bugs From Binaries by Parsia Hakimian | Bug Bounty Village, DEF CON 33

Bug Bounty Village·5月10日週日·25 min英文

三句話摘要

桌面應用程式與瀏覽器通信機制的安全漏洞研究。 桌面應用與瀏覽器的無縫整合(協議處理程器、本地 WebSocket 伺服器)在改善用戶體驗的同時,引入了跨應用程式的嚴重攻擊面,多個漏洞可鏈式組合實現完整系統控制,亟需開發者在應用設計時平衡安全與易用性。 協議處理程器的命令注入鏈:桌面應用程式透過協議處理程器(如 `ms-word://` )與瀏覽器整合,但可以接收遠端指令參數。攻擊者可將惡意 XML 檔案傳遞給應用程式,再透過 HTA 格式的寬鬆解析特性,在啟動資料夾中執行任意程式碼。

重點整理

重點
  • 1

    協議處理程器的命令注入鏈:桌面應用程式透過協議處理程器(如 `ms-word://` )與瀏覽器整合,但可以接收遠端指令參數。攻擊者可將惡意 XML 檔案傳遞給應用程式,再透過 HTA 格式的寬鬆解析特性,在啟動資料夾中執行任意程式碼。

  • 2

    WebSocket 繞過同源策略:本地 HTTP/WebSocket 伺服器(如 Zoom、Electron 應用、PlayStation Now)不受瀏覽器同源策略限制。任何網站上的 JavaScript 可直接與本地伺服器通信,造成跨應用程式攻擊面。

  • 3

    開放重定向結合 RCE 的鏈式攻擊:通過 WebSocket 誘導 Electron 應用開啟攻擊者控制的頁面,再利用已啟用 nodeIntegration 的應用執行 Node.js 程式碼,從而完全接管系統。

  • 4

    VS Code 偵錯器的遠端程式碼執行:WSL Remote 擴充功能透過 WebSocket 與 Linux 端伺服器通信,攻擊者可連接到暴露的 Node Inspector 偵錯器實例,直接執行程式碼。

實用技巧與重點

乾貨
  • 工具與技術:
  • Burp Suite(含 AI 功能)
  • Wireshark(流量分析)
  • Frida、DNSpy(逆向分析)
  • Ghidra(二進制反編譯)
  • NirSoft URL Protocol View(協議處理程器列舉)
  • HTA(HTML Application 格式)
  • 具體漏洞參數:
  • Burp AI 通訊端點:ai.portswigger.net
  • Zoom 本地 HTTP 伺服器:隱藏協議處理程器,卸載後仍保留
  • PlayStation Now:WebSocket 伺服器(通常連接埠 13219)
  • Electron 應用:nodeIntegration(舊版預設啟用,新版為 false)
  • VS Code WSL Remote:Node Inspector 偵錯介面
  • Go mux 路由器:正規表示式提取所有路由端點
  • 環境變數繞過:`%ADMINPROFILE%`(因瀏覽器編碼無法直接使用)
  • 攻擊流程(PlayStation Now 案例):
  • 受害者訪問攻擊者網站
  • JavaScript 連接至本地 WebSocket 伺服器(127.0.0.1:13219)
  • 送出開放重定向命令
  • Electron 應用開啟攻擊者控制的頁面
  • 利用 nodeIntegration 執行計算機指令(或任意系統命令)
  • 賞金結果:
  • 某個 15k 美元的漏洞經 MSRC 評估後獲賞 $0
  • 演講者在 MSRC 活動上的見面會獲得 $0.10

結論

結論

桌面應用與瀏覽器的無縫整合(協議處理程器、本地 WebSocket 伺服器)在改善用戶體驗的同時,引入了跨應用程式的嚴重攻擊面,多個漏洞可鏈式組合實現完整系統控制,亟需開發者在應用設計時平衡安全與易用性。

完整解析

詳細

演講者 Parsia 分享了在桌面應用程式安全研究中發現的一系列漏洞。首先,他從 Burp Suite 的 AI 功能開始討論。為了分析 Burp AI 的內部通訊,他設置了一個雙層代理結構:第一個 Burp 實例作為客戶端,上游指向第二個實例的通訊埠 9000。然而在建立 HTTPS 連接時遇到憑證驗證失敗,因為 Burp 搭載自己的 Java 運行時環境 (JRE),擁有獨立的憑證儲存。解決方案是使用 keytool 工具將 Burp CA 憑證導入至 JRE,但此操作在每次應用程式升級後都需重新執行。

接著他探索了協議處理程器的攻擊面。Windows 系統註冊了 140+ 個協議處理程器(如 `ms-word://` 、`zoom://` ),每個都關聯到特定應用程式。通過 NirSoft 的 URL Protocol View 工具,他發現許多應用程式可接收開關與參數。在某個 .NET 應用程式中,他發現了一個隱藏的命令列開關,允許傳遞 XML 格式的腳本檔案路徑。由於應用程式支援遠端檔案 URL,攻擊者可指向網路上的惡意 XML,應用程式將其下載、執行並輸出結果到本地檔案。

結合 HTA 格式的寬鬆解析特性,攻擊進一步升級。HTA 檔案本質上是 HTML + VBScript,但解析器容錯程度極高,允許在開頭填充任意垃圾數據後才解析指令碼。攻擊者可將 HTA 檔案放入管理員帳戶的啟動資料夾(`%ADMINPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`),在 Windows 啟動時自動執行。儘管需要知道用戶名稱,但每台 Windows 電腦預設擁有 Administrator 帳戶,問題因此大幅簡化。

更具威脅的是本地 WebSocket 伺服器的漏洞。Zoom、Electron 應用、PlayStations Now 等均運行本地 HTTP 或 WebSocket 伺服器以實現流暢的瀏覽器整合體驗。與常見的 HTTP 不同,WebSocket 連接不受同源策略約束,導致任何網站上的 JavaScript 都可與本地伺服器通信。在 PlayStation Now 案例中,演講者通過以下鏈式攻擊實現遠端程式碼執行:第一步,利用 WebSocket 誘導 Electron 應用開啟特定 URL(開放重定向);第二步,當應用開啟攻擊者網站時,在已啟用 nodeIntegration 的 Electron 中注入程式碼,獲得 Node.js API 呼叫能力;第三步,通過 `require('child_process').exec()` 執行系統命令(如彈出計算機)。

VS Code 的 WSL Remote 擴充功能同樣脆弱。該功能允許 Windows 端 VS Code GUI 與 Linux(WSL)端伺服器透過 WebSocket 通信。若攻擊者能連接到暴露的 Node Inspector 偵錯介面,由於偵錯器預設提供程式碼執行方法,完整的遠端程式碼執行隨之而來。演講者試圖報告 VS Code 漏洞,但因 MSRC 評估問題,最終獲賞為零。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。