簡介

最近的網路安全研究揭露了 Windows 任務排程服務中的 四個新漏洞 ,特別影響到 "schtasks.exe" 二進位檔案。這些漏洞可能被本地攻擊者利用,以實現 權限提升 至 SYSTEM 級別,並通過清除或覆寫系統日誌來執行 防禦規避 ,從而隱藏惡意攻擊。本報告根據近期發現提供這些漏洞的技術分析。

駭客如何繞過UAC?Windows任務排程器漏洞解析 | 資訊安全新聞

1. 基於憑證的使用者帳戶控制 (UAC) 繞過與權限提升

發現的一個重大漏洞是 UAC 繞過 。此漏洞允許攻擊者在不觸發 UAC 提示的情況下執行 高權限 (SYSTEM) 指令 ,從而繞過使用者批准。根本原因在於任務排程服務處理使用 Batch Logon 身份驗證(即使用密碼)創建任務的方式,與使用 Interactive Token 的方式不同。

當使用 Batch Logon(透過 /ru /rp 標誌與 schtasks.exe )以及 XML 檔案創建任務時,任務排程服務在模擬指定使用者時,會授予運行中的程序(Process) 最大允許權限 ,有效提升其完整性等級至最高可用等級,可能是 SYSTEM。這是因為身份驗證方法決定了要運行的程序的完整性。正如 Cymulate 安全研究員 Ruben Enkaoua 所解釋,這不僅僅是簡單的 UAC 繞過;它允許擁有已知密碼的攻擊者從 命令列介面 (CLI) 模擬任何使用者 ,並使用 /ru /rp 標誌在任務執行 Session 中獲得最高授予的權限。

然而,該漏洞的利用取決於攻擊者已擁有目標使用者的密碼。這可以通過多種方式實現,例如在對 SMB 伺服器進行身份驗證後 破解 NTLMv2 雜湊 ,或利用可能暴露憑證的其他漏洞,例如 CVE-2023-21726 ,該漏洞被發現以明文形式在登錄檔中儲存本地管理員憑證。

此漏洞的影響重大,因為擁有特權帳戶已知密碼的低權限使用者可以利用 schtasks.exe 二進位檔案 模擬 Administrators、Backup Operators 和 Performance Log Users 等強大群組的成員 以獲得最大權限。需要注意的是,使用 Batch Logon 進行模擬必須要求被模擬的使用者具有 Batch Logon 權限 。預設具有這些權限的群組包括:

  • Administrators
  • Backup Operators
  • Performance Log Users

2. 通過日誌操作實現防禦規避技術

研究還發現了使用 Batch Logon 身份驗證方法與 XML 檔案註冊排程任務時可以實現的 兩種防禦規避技術 。這些技術涉及操作 Task Event Log 和 Security Event Logs。

任務事件日誌污染與溢位(overflowed)

第一種技術涉及 覆寫 Task Event Log 。這通過在 XML 檔案中註冊一個帶有 超長「author」名稱 的任務來實現,例如將字母「A」重複大約 3,500 次。任務排程器的註冊過程不限制「Author」標籤值的緩衝區大小。這種過長的長度導致事件日誌中的 整個 XML 任務日誌描述(事件日誌 ID 4698 的「TaskContent」entry) 被覆寫。這有效地消除了先前任務創建和設定的稽核記錄,使惡意攻擊更難被檢測。

通過反覆創建帶有溢位「Author」標籤的任務,這種行為可以擴展到第二種技術: Overflowing the Security Logs 。由於事件日誌中「TaskContent」的緩衝區由使用者控制且具有實際限制(約 3500 位元組),每個 Overflowed log entry 會佔用大量空間(約 8KB)。通過重覆創建此類任務(約 2280 次),攻擊者可以 使預設的 Security.evtx 檔案大小 (20MB) 飽和 ,導致舊日誌被覆寫,從而有效清除稽核記錄。這使 Threat actor 能夠隱藏其行動,包括初始權限提升嘗試和後續的任何惡意攻擊。

3. 排程任務 Metadata 污染

雖然 Microsoft 不認為這是安全漏洞,但研究還強調了 本地和遠端 Metadata 污染 的可能性。當使用 Batch Logon 與 XML 檔案註冊任務時,Metadata 會根據 XML 標籤儲存,而不是當前運行使用者的資訊。這允許創建以 SYSTEM 權限運行的任務的低權限使用者將任務Metadata中的 「Author」標籤 修改為顯示不同的、可能更可信任的作者,例如「Administrator」或「TrustedInstaller」。Microsoft 澄清,這些 Metadata 目的為儲存任務的一般詳細資訊,而非用於安全目的。

4. 技術摘要

已識別的漏洞利用了 Windows 任務排程器對 Batch Logon 身份驗證 任務註冊資訊日誌記錄 的處理方式。基於 XML 的任務註冊中使用 Batch Logon 時,缺少對「Author」標籤緩衝區大小的適當驗證,允許覆寫 Task Event Log。重複利用此漏洞可能導致 Security Event Logs 的飽和。通過利用 Batch Logon 為攻擊者控制的環境下的任務授予最大權限,實現了 UAC 繞過和權限提升,前提是擁有有效憑證。 schtasks.exe 二進位檔案是與任務排程服務互動的主要工具,允許創建惡意任務和操作日誌資料。任務排程服務以 SYSTEM 身份運行並管理權限和使用者模擬,使其成為惡意行為者的強大目標。

5. Microsoft 的回應

需要注意的是,根據研究員 Ruben Enkaoua 的說法, Microsoft 最初未將單一報告視為漏洞

結論

Windows 任務排程器中新發現的漏洞對系統安全構成重大風險。通過基於憑證的模擬繞過 UAC 並實現 SYSTEM 級權限的能力,結合通過污染和溢位事件日誌清除稽核記錄的技術,為攻擊者提供了未授權存取和持續惡意攻擊的強大工具,同時規避檢測。了解任務排程器的身份驗證機制和日誌處理的細節對防禦者和攻擊者都至關重要。雖然 Microsoft 的初步評估未將這些分類為漏洞,但其潛在的濫用可能性和對系統完整性的影響值得仔細考慮和潛在的緩解策略。