摘要

報告針對 2026 年 7 月影響 Microsoft SharePoint Server 的重大漏洞進行了全面的技術分析,這些漏洞已遭廣泛的實際攻擊利用。報告深入探討從初始網頁請求到完整網域淪陷的攻擊鏈,檢視包括 CVE-2026-32201、CVE-2026-45659、CVE-2026-56164、CVE-2026-55040、CVE-2026-58644 及 CVE-2026-50522 等特定 CVE。報告詳細說明了這些漏洞如何被串聯利用,以達到繞過身分驗證、遠端程式碼執行及持久化存取。此外,還包含了弱點模式之源碼層級分析,以循序圖說明攻擊流程,並討論緩解策略。目標在於增進對這些威脅的認知,並為強化 SharePoint 資安防護提供可行的洞見。

還原序列化、JWT 繞過、MachineKey 竊取?頂尖攻擊者如何串聯 SharePoint 漏洞! | 資訊安全新聞

1. 簡介

Microsoft SharePoint Server 是企業協作與內容管理的基石,與 Active Directory、SQL Server 及 Microsoft IIS 等技術緊密整合於組織基礎架構中。其廣泛部署與受信任的地位,使其成為有經驗的 threat actor 的首要目標。2026 年 7 月,一系列影響地端部署 SharePoint Server 的重大漏洞被揭露,其中數個已確認遭美國網路安全暨基礎設施安全局 (CISA) 列為積極利用的漏洞 [1]。這些漏洞涵蓋身分驗證繞過、不當輸入驗證及不安全的反序列化,整體構成嚴重風險,使攻擊者得以未經授權存取、遠端程式碼執行 (RCE),並在受害網路內橫向移動。報告目的在剖析這些漏洞,闡明其攻擊機制,並提供偵測與緩解策略的技術觀點。

2. 漏洞總覽

2026 年 7 月 SharePoint 安全性更新修補了六個重大漏洞。其中三個——CVE-2026-32201、CVE-2026-45659 及 CVE-2026-56164——已被列入 CISA 的已知遭利用漏洞 (KEV) 目錄,凸顯其關鍵性與積極遭利用的現狀。其餘三個——CVE-2026-55040、CVE-2026-58644 及 CVE-2026-50522——則顯著擴大了未經身分驗證的攻擊面,需立即修補 [1]。

CVE 漏洞類型 CVSS 3.1 (來源) CWE 利用後果
CVE-2026-32201 不當輸入驗證 6.5 中度 (Microsoft) CWE-20 偽造、身分驗證繞過的前置步驟
CVE-2026-45659 反序列化 RCE 8.8 高度 (Microsoft) CWE-502 以 w3wp 權限執行之已驗證 RCE
CVE-2026-56164 缺乏身分驗證 9.8 重大 (NVD);Microsoft CNA:5.3 中度 CWE-306 權限提升
CVE-2026-55040 JWT 驗證繞過 9.1 重大 (Microsoft) CWE-1390 身分驗證繞過;未驗證 RCE 攻擊鏈
CVE-2026-58644 反序列化 RCE 9.8 重大 (Microsoft/NVD) CWE-502 以 w3wp 權限執行之未驗證 RCE
CVE-2026-50522 反序列化 RCE 9.8 重大 (Microsoft) CWE-502 以 w3wp 權限執行之未驗證 RCE

3. 攻擊鏈分析

這些漏洞的利用通常涉及多階段的攻擊鏈,將看似無害的網頁請求轉變為完整的網域淪陷。觀察到的典型階段包括偵察、初始利用、部署 webshell、竊取 IIS machine-key、偽造 ViewState 以維持持久化,以及橫向移動 [1]。

3.1. 偵察

攻擊者會透過各種方法識別地端 SharePoint 目標,包括以 Shodan/Censys 搜尋 SharePoint 專屬的 HTTP headers 與路徑 (例如 /_layouts/15/ )、憑證透明度、DNS 列舉及利用外洩的 Credential [1]。

3.2. 初始利用

攻擊者會發送一個特製的 HTTP 請求到有漏洞的 SharePoint 端點。依據特定的 CVE,此階段可能無需身分驗證,或僅需低階的網站成員權限。舉例來說,CVE-2026-56164 允許未經身分驗證的權限提升,而 CVE-2026-45659 則允許已驗證的反序列化 RCE [1]。CVE-2026-58644 尤其關鍵,因為它允許未經身分驗證的反序列化 RCE。反序列化漏洞 (CWE-502) 的核心問題在於,所使用的反序列化工具會在未經適當型別限制的情況下,從攻擊者控制的資料中實例化任意型別。其概念可表示為:

  1. // Vulnerable deserialization pattern
  2. BinaryFormatter formatter = new BinaryFormatter();
  3. object result = formatter.Deserialize(Request.InputStream);
  4. // Attacker gadget chain: ObjectDataProvider -> ProcessStartInfo -> cmd.exe

這段程式碼說明了常見的漏洞模式,其中 BinaryFormatter 用於從輸入串流反序列化物件,而未經充分驗證。攻擊者可建構惡意的序列化物件 (gadget chain),在反序列化時於伺服器上執行任意程式碼。這是關鍵漏洞,因為攻擊者可透過操控輸入資料來達到遠端程式碼執行。

3.3. 部署 Webshell

取得程式碼執行權限後,攻擊者通常會將 ASP.NET webshell 部署到 SharePoint 網頁應用程式目錄中,以維持存取權限並利於後續行動。常見的路徑包括 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx [1]。這些 webshell 通常具備密碼保護的存取機制、加密的命令字串及檔案上傳功能,以規避偵測。

3.4. 竊取 IIS Machine-Key

關鍵步驟之一是竊取 ASP.NET machineKey 設定,特別是 validationKey decryptionKey 。這些金鑰對於偽造 ViewState 與表單驗證票證(Forms authentication ticket)至關重要,使攻擊者即使在初始漏洞被修補後仍能維持持久化存取 [1]。以下程式碼片段示範了如何透過 reflection 提取這些金鑰:

  1. // Machine-key extraction via reflection
  2. Configuration config = WebConfigurationManager.OpenWebConfiguration("/");
  3. MachineKeySection section = (MachineKeySection)config.GetSection("system.web/machineKey");
  4. // Access private fields
  5. Type t = typeof(MachineKeySection);
  6. string validationKey = (string)t.GetField("_ValidationKey", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(section);
  7. string decryptionKey = (string)t.GetField("_DecryptionKey", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(section);
  8. // Exfiltrate
  9. Response.Headers["X-TXT-NET"] = validationKey + "|" + decryptionKey;

這段 C# 程式碼示範了攻擊者在取得初始程式碼執行權限後,如何透過程式設計方式從 web.config 檔案存取 machineKey 區段。透過使用 reflection 存取 MachineKeySection 物件的私有欄位 ( _ValidationKey _DecryptionKey ),攻擊者可以提取這些敏感金鑰。這些金鑰隨後被外洩,可能透過自訂的 HTTP header (此範例中的 X-TXT-NET ),使攻擊者能離線偽造身分驗證 Token。

3.5. 偽造 ViewState 與持久化

攻擊者利用竊取的金鑰,可透過 ysoserial.net 等工具建構惡意的 ViewState Payload。這些偽造的 Payload 會以伺服器的合法金鑰進行簽章與加密,使其在反序列化時不會引起懷疑,進而導致進一步的程式碼執行 [1]。或者,也可以安裝惡意的 IIS 模組以達到持久化,這些模組會載入至每個 w3wp.exe 程序,並能在伺服器重啟與修補後依然存活 [1]。

3.6. 橫向移動

攻擊者利用遭入侵的伺服器陣列服務帳戶 (farm service account, 此帳戶通常擁有廣泛權限,例如 SQL Server 的 dbcreator securityadmin 角色),可以查詢內容資料庫、提取額外的 Credential,並轉向 Active Directory,將控制範圍擴展至整個企業網路 [1]。

sequenceDiagram Actor Attacker Participant SharePointServer as SharePoint Server (WFE) Participant SQLServer as SQL Server (DB) Participant AD as Active Directory Attacker->>SharePointServer: 1. Reconnaissance (Shodan/Censys) Attacker->>SharePointServer: 2. Initial Exploitation (Crafted HTTP Request, e.g., CVE-2026-58644 Unauthenticated Deserialization RCE) SharePointServer-->>Attacker: Code Execution Achieved Attacker->>SharePointServer: 3. Webshell Deployment (e.g., spinstall0.aspx) Attacker->>SharePointServer: 4. IIS Machine-Key Theft (via Webshell) SharePointServer-->>Attacker: validationKey, decryptionKey Attacker->>SharePointServer: 5. ViewState Forgery & Persistence (Malicious ViewState payload or IIS Module) SharePointServer->>SQLServer: 6. Lateral Movement (Query/Modify DB, Extract Credentials) SQLServer-->>SharePointServer: Credentials/Data SharePointServer->>AD: 6. Lateral Movement (Pivot to AD) AD-->>SharePointServer: AD Privileges/Data Attacker->>SharePointServer: Full Domain Compromise

圖 1:SharePoint 攻擊鏈循序圖

4. 緩解與強化策略

要有效防禦這類進階攻擊,需採取多層次方法,結合即時修補與完善的強化及監控策略 [1]。

4.1. 立即行動

  • 立即套用 Microsoft 於 2026 年 7 月 14 日發佈的 SharePoint Server 安全性更新 [1]。
  • 確認所有伺服器陣列伺服器皆已完成修補程式安裝 [1]。
  • 為每個網頁應用程式啟用 AMSI 整合,並在可行情況下將要求 Body Scan Mode 設為 Full [1]。以下 PowerShell 片段示範如何將 SharePoint 網頁應用程式的 AMSI 要求 Body Scan Mode 設為 Full:
  1. # PowerShell (SPSE 25H1+)
  2. $webApp = Get-SPWebApplication -Identity "http://spwfe"
  3. $webApp.AMSIBodyScanMode = 2  # 0=Off, 1=Balanced, 2=Full
  4. $webApp.Update()

這段 PowerShell 指令碼會針對特定的 SharePoint 網頁應用程式 (由其 URL 識別,例如 http://spwfe ),將其 AMSIBodyScanMode 屬性設為 2 ,對應「完整」模式。這能顯著強化資安防護,啟用對 HTTP 要求 Body 的全面掃描以偵測惡意內容,進而防範 webshell 部署及其他伺服器端攻擊。設定模式後, $webApp.Update() 會將變更套用至該網頁應用程式。

  • 搜尋並修復入侵活動跡象 [1]。
  • 僅在確認環境乾淨後,才輪替 IIS machine keys [1]。

4.2. 網路強化

  • 避免將 SharePoint 伺服器直接暴露於網際網路 [1]。
  • 針對外部存取,使用具備身分驗證與檢查功能的 Layer 7 反向代理伺服器 [1]。
  • 封鎖對 SharePoint 中央管理網站的外部存取 [1]。
  • 將伺服器陣列與資料庫的通訊限制於必要的系統 [1]。
  • 使用自訂的 SQL Server 連接埠,並從網頁前端封鎖預設連接埠 [1]。

4.3. 日誌記錄與監控

  • 啟用 IIS 進階記錄功能,記錄完整的 Request Headers 與 Response 狀態碼 [1]。
  • 將 IIS、Windows Event 及 SharePoint ULS 日誌轉發至資安事件管理 (SIEM) 系統 [1]。
  • 針對可疑活動設定警示,例如 w3wp.exe 建立 Shell 或編譯程式碼,以及對 IIS 全域模組或 machineKey 設定的變更 [1]。

5. 影響評估

SharePoint 一旦遭成功入侵,可能導致嚴重後果,包括資料外洩、遠端程式碼執行、持久化、權限提升,以及在企業網路內的橫向移動 [1]。這可能引發重大的業務衝擊,例如資料竊取、服務中斷、勒索軟體部署、營運停擺、法規遵循違規、財務損失及聲譽損害 [1]。

6. 結論

2026 年 7 月的 SharePoint 攻擊事件,凸顯了企業協作平台必須實施強健資安實務的至關重要性。攻擊者能夠串聯多個漏洞,從不當輸入驗證到反序列化 RCE 及身分驗證繞過,這突顯了持續警戒的必要性。企業組織必須優先進行即時修補、實施全面的網路強化,並建立進階的日誌記錄與監控能力,以偵測並緩解這些進階威脅。透過理解這些攻擊鏈的技術細節,並採取縱深防禦策略,企業可大幅降低遭受此類入侵的風險,並保護其有價值的資產。