KeyFrame內部研究專用

Black Hat Asia 2026 | When Office Attacks: XLL Chains and Enterprise EDR Nightmares

Black Hat·8月19日週三·38 min英文

三句話摘要

Excel 巨集與 XLL 的現代威脅:如何利用信任的辦公應用程式繞過先進 EDR 檢測系統。 信任高的辦公應用本身就是攻擊面,防守必須從阻止惡意檔案轉向監測可信應用的異常行為序列,並確保 EDR 雲端遙測和基線檢測全面啟用。 XLL 比宏更難檢測:XLL 是重命名的 DLL 檔,執行原生程式碼而非解釋腳本,防守方看不到原始碼,同時 Excel 會自動載入並執行(無需使用者警告),這完全繞過了傳統宏防禦。

重點整理

重點
  • 1

    XLL 比宏更難檢測:XLL 是重命名的 DLL 檔,執行原生程式碼而非解釋腳本,防守方看不到原始碼,同時 Excel 會自動載入並執行(無需使用者警告),這完全繞過了傳統宏防禦。

  • 2

    EDR 信任等級制度被濫用:EDR 對微軟簽名的二進位檔(Word、Excel)信任度高,攻擊者利用此點,確保有效載荷只在信任的辦公進程內執行,從不接觸低信譽的二進位檔或 PowerShell,看起來完全合法。

  • 3

    現代 EDR 的檢測缺陷:許多組織出於隱私、合規或成本考量關閉 EDR 雲端功能,導致本地機器學習能力大幅下降;即使啟用遙測,高誤報率迫使安全團隊削弱檢測規則,形成自我強化的盲點循環。

  • 4

    單一事件無法檢測,必須關聯序列:個別行為(如 Excel 載入 DLL)屬正常企業活動,但關聯序列(文件拖放 → Excel 載入 DLL → 跨進程句柄訪問非辦公進程)才是高保真信號,需要建立環境基線才能有效告警。

實用技巧與重點

乾貨
  • 技術細節
  • XLL 註冊函數:`RegisterXLL()`,允許以程式設計方式載入,無使用者提示
  • 動態 API 解析:使用 `GetProcAddress()` 手動查找記憶體地址,避免函數名稱在 PE 匯入表中顯示
  • Shellcode 加密:用 XOR 加密存在 XLS 資料部分,以高熵噪聲偽裝,只在記憶體中短暫以可讀形式存在
  • 記憶保護策略:先分配為讀寫(ReadWrite),寫入 shellcode 後才轉換為讀執行(ReadExecute),規避掃描器
  • Base64 解碼:使用 MS XML COM 物件(`MSXML2.DOMDocument`)解碼,看起來像正常 XML 處理,而非可疑操作
  • 檔案提取位置:應用程式資料夾(AppData),使用 `.dat` 副檔名偽裝
  • 時間競速攻擊:註冊 XLL 後立即刪除磁碟上的檔案(毫秒級),EDR 檔案掃描來不及完成
  • 真實案例
  • 2025 年底至 2026 年初:觀察到基於 Excel 傳遞方式大幅復興
  • 紙製品狼集團(LunarWolf):使用 AI 生成釣魚誘餌搭配 Excel,轉向避開 PowerShell 的噪聲
  • 烏克蘭相關活動:使用機櫃軌道後門(Cabinet Track Backdoor),透過信號分配 XLL,採用相同的 MS XML Base64 解碼技術
  • 防禦策略層級
  • 第一層:郵件網關
  • 移除 Office 附件或 Excel 巨集功能(若組織不需要)
  • 注意:若使用者從內部網路下載檔案,MOTW(Mark-of-the-Web)可能被剝離,導致防禦失效
  • 重點檢測信號:網路標記被移除
  • 第二層:沙盒與內容安全
  • 伺服器端驗證檔案類型,中立化巨集
  • 優先採用瀏覽器型文件渲染而非下載
  • 第三層:終點強化
  • 啟用 AppLocker 規則:限制不必要的 Office 進程執行
  • 限制 VBA 的 Win32 API 呼叫(如 `CreateFile`、`WriteFile`)
  • 破除 COM 自動化鏈(若業務允許)
  • 第四層:檢測工程
  • 監測 Win32 API 聲明和 Base64 模式(高訊號指標)
  • 重點監測序列:
  • Word 執行 → 提取 XLL → Excel 載入 DLL → 跨進程句柄訪問
  • 未簽署 DLL 從全局零件載入
  • Excel 請求非辦公進程(如 Edge、MSA)的句柄存取權限
  • 未配置檔案執行(無磁碟對應檔案的記憶體執行)
  • 第五層:運安實踐
  • 擴展釣魚模擬範圍:包含多階段文件型威脅,非僅連結
  • 建立 Excel 環境基線:識別合法 XLL、自動化模式
  • 優先 Office 2016/2019 補丁(2025 年末終止支援前)
  • 執行季度 IUC(Inventory & Update Cycle)審計
  • 記憶體洩露事件立即隔離終點,收集記憶體轉儲再重啟
  • 攻擊者已知現象
  • 攻擊者測試有效載荷時會禁用完整雲端連接
  • 針對雲端連接和 MDR 遙測啟用狀態進行測試
  • 依賴 EDR 規則調優不力的機構(過度抑制噪聲)

結論

結論

信任高的辦公應用本身就是攻擊面,防守必須從阻止惡意檔案轉向監測可信應用的異常行為序列,並確保 EDR 雲端遙測和基線檢測全面啟用。

完整解析

詳細

Tanmay Rao 是亞馬遜的資深紅隊成員,擁有 13 年進攻安全經驗。他在這場演講中挑戰了一個普遍的業界假設:「VBA 和 Excel 攻擊已成過時威脅,現代 EDR 能有效防禦」。實際上,即使頂級 EDR 系統在面對精心構建的 Excel 鏈時仍會困惑。他的研究旨在展示 90 年代技術如何仍能繞過 2026 年的安全堆疊,並幫助防守方彌補這些漏洞。

講者首先解釋了 VBA 和 Excel 技術的基礎。VBA 本質上是嵌入在 Office 文件中的自動化引擎,從攻擊角度吸引人之處在於它運行在辦公工作流程的背景下,使用現有使用者權限。雖然近年宏防禦有所改進(如禁用自動開啟),但人為因素(使用者反覆點擊啟用內容直到成為肌肉記憶)以及許多金融和政府部門持續依賴宏的事實,使得這條向量仍然可行。關鍵是攻擊者將重型工作轉移到編譯的原生程式碼,而非留在易於分析的指令碼層面。

核心攻擊武器是 XLL(重命名的 DLL 檔)。與宏只能執行解釋腳本不同,XLL 執行原生 X64 程式碼,獲得無限制的 Win32 和反 API 存取權。當 Excel 載入 XLL 時,DLL 主函數首先執行;同時 Excel 會自動觸發 `AutoOpen` 功能。最關鍵的是,攻擊者可以呼叫 `RegisterXL` API 以程式設計方式載入有效載荷,完全不顯示使用者提示、內容警告或受保護視圖。由於 XLL 執行的是編譯程式碼,防守方看不到原始碼簽名,分析難度大幅增加。攻擊者還利用另一項企業功能的雙刃劍特性:許多組織無法完全禁用 XLL(因為彭博終端等工具需要它),這迫使安全團隊被動開放此功能。

講者詳細展示了完整攻擊生命週期。首先在研究環節選定高信任目標(通常是辦公行政人員),開發 Native C++ 有效載荷並添加沙盒檢查。然後將其用 Shell 程式碼包裝並透過 XLL 自動打開功能封裝。接著製作社交工程誘餌——如主題化 Word 文件冒充財務報告——利用使用者肌肉記憶。一旦使用者啟用內容,宏立即執行提取程序,從文件中提取 Base64 編碼的 XLL 並儲存到受信任的本機目錄。關鍵轉折點發生於 COM 自動化:宏呼叫 `CreateObject` 實例化 Excel(設置可見性為否),然後呼叫 `RegisterXL` 以程式設計方式載入 XLL。這觸發 Excel 的自動開啟功能並在 Excel 進程中執行原生程式碼,有效將有效載荷轉移到無法被指令碼層鉤子觸及的地方。

為了規避檢測,講者採用多層技術。使用動態 API 解析(避免函數名稱出現在 PE 匯入表),加密 Shellcode(XOR 加密存在 XLL 資料部分,以高熵雜訊偽裝),採用記憶保護策略(先讀寫後讀執行,規避掃描器),以及時間競速攻擊(註冊後立即刪除磁碟檔案)。檔案寫入採用原生 Win32 API 而非 VBA 高等函數,規避行為規則。Base64 解碼使用 MS XML COM 物件,看起來完全合法的 XML 處理。講者強調,這種攻擊之所以成功,並非因為新技術,而是因為它完全留在信任邊界內。

為何現代 EDR 無法檢測?講者指出多個根本性漏洞。許多組織為隱私或成本考量關閉 EDR 雲端功能,削弱了機器學習檢測能力。EDR 建立在信任等級制度之上,微軟簽名的二進位檔享受高信譽,攻擊者利用此點確保所有操作發生在信任的進程內。最諷刺的是,即使雲端功能啟用,高誤報率也迫使安全團隊削弱檢測規則——例如寬泛的「Excel 載入 DLL」規則會產生數千個合法警報,導致團隊縮小規則範圍至特定資料夾,但攻擊者可改用其他資料夾繞過。MDR 服務雖然聘請人類分析師,但同樣面臨高誤報困境,為維持可操作性往往抑制辦公相關警報,形成自我強化的盲點。此外,每次 Excel 部署都會編譯新的唯一哈希,使得基於 IOC 的檢測無效。

防守戰略必須跨越多個層級。郵件網關應驗證檔案類型並中立化巨集,但要警惕 MOTW 被剝離的情況。終點硬化應啟用 AppLocker 規則限制不必要的 Office 執行,限制 VBA 的 Win32 API 呼叫。檢測工程的關鍵不是單一事件(如「Excel 載入 DLL」),而是行為序列:文件拖放 → XLL 提取 → Excel 載入 DLL → 跨進程句柄訪問非辦公進程(如瀏覽器、MSA)。這種序列關聯能提供高保真告警。必須建立環境基線——識別哪些 Excel 環境合法、標準自動化模式是什麼——然後任何異常都能立即觸發告警。運安實踐也需進化:釣魚模擬應包含複雜多階段文件威脅,Office 2016/2019 應在 2025 年底前補丁,每季進行 IUC 審計確認環境清潔,偵測到過度注射應立即隔離終點並收集記憶體轉儲。

演講最後強調了三個戰略支柱。首先,攻擊者利用的是信任的應用(Office),防守必須超越標準聲譽檢查,關注可信應用的異常行為。其次,如果雲端遙測已關閉,本地機器學習啟發式可能是唯一防線,但前提是基線已建立。第三,安靜的儀錶板不代表安全——可能意味著 MDR 已放寬規則或雲端功能被禁用。網路標記應視為合規勾選項而非唯一防線。最根本的轉變是:停止關注文件內容是什麼,開始關注應用為何要使用它。

關鍵時刻

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 的組織必須立即修補。