新型持久化之WinSxS二進制文件依賴劫持(支持Win10,Win11)
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
1.技術背景 我們探索了一種創新方法, 該方法利用了受信任的WinSxS文件夾中常見的可執行文件, 并配合經典的DLL搜索順序劫持技術來利用。該方法允許威脅行為者繞過高權限要求, 在Windows文件夾(特別是WinSxS)內的應用程序中執行惡意代碼, 并且無需在攻擊鏈中添加額外的二進制文件。除此以外, 該技術還有助于從任何位置執行惡意代碼, 并且與WIndow10和Windows11兼容。 在這篇文章中, 詳細解釋了攻擊流的基本原理, 我們將討論DLL搜索順序劫持的經典實現優缺點, 并將其與我們最新的實現進行比較, 此外我們還描述了該技術的功能和含義,闡明了其有效性、潛在影響和防御者檢測的方法。 借助自己的相關工具, 我們探索了WinSxS文件夾中的每個二進制文件, 并識別了該文件夾中可用的多個可執行文件, 這些可執行文件可以被濫用來加載和執行惡意文件。與經典的DLL搜索順序劫持相比, 這種方法降低了防御軟件和事件響應程序檢測命中的可能性, 因為惡意代碼是從位于Windows文件夾WinSxS下的受信任二進制文件的內存空間運行的。 這種方法使我們能夠改進和簡化經典DLL搜索順序劫持的一般感染流程, 雖然可以檢測到此活動, 但它并不是操作系統的直接漏洞, 相反,這種行為可能是由Windows本身的本地行為和為開發人員和最終用戶提供的功能引起的。 2.Dll搜索順序劫持 DLL搜索順序劫持是威脅行為者的一種簡單但高效的技術。該技術利用Windows 應用程序加載動態鏈接庫 (DLL) 和外部可執行文件的方式,利用那些未指定所需文件 (EXE/DLL) 完整路徑的應用程序。與之相反,這些應用程序依賴于預定義的搜索順序來定位必要的 DLL,使其容易受到威脅行為者的操控。 根據MITRE ATT&CK 的說法,攻擊者可以采用多種方法來劫持 DLL 加載過程。然而,所有這些方法都有一個共同的要求:目標應用程序不應指定所需內容的完整路徑。這種情況常常是由于軟件開發中的疏忽而出現的。隨后,威脅行為者將惡意 DLL 放置在搜索順序優先于合法 DLL 目錄的目錄中。通常,此操作的首選位置是目標應用程序的工作目錄,因為它在搜索順序中占據顯著位置。 了解 Windows 如何加載 DLL 和可執行文件對于掌握這項技術至關重要。當應用程序啟動加載過程時,它遵循特定的順序,該順序指示系統為查找和利用必要的組件(例如 DLL 和可執行文件)而采取的步驟。此過程可確保應用程序的高效運行,使它們能夠無縫訪問共享資源和功能。它還提供了一種替代方法來遞歸地定位可能需要但開發人員未包含在應用程序安裝包中的資源。 Windows操作系統搜索和加載外部資源時遵循的大致流程如下:
操控此加載過程允許威脅參與者在受信任進程的內存空間中注入和執行未經授權的代碼,從而有效地欺騙安全工具和分析人員。 如前所述,這種技術在網絡安全領域并不新鮮,并且被威脅行為者廣泛使用,無論其目標、原籍國或所使用的工具類型如何。根據 MITRE 的說法,我們總結了一些已知在入侵中使用此技術的威脅行為者,以供參考:
威脅行為者采用DLL搜索順序劫持的動機源于其微妙性和有效性。通過操控受信任的應用程序,威脅行為者可以實現未經授權的訪問、執行任意代碼,并在看似合法的進程中隱藏其活動。這種技術只是為他們提供了一種破壞系統、逃避檢測和實現惡意目標的隱秘手段。 3.WinSxS怎么樣? WinSxS(Windows Side by Side)文件夾是Windows操作系統維護和恢復中的關鍵組件,通常位于C:\Windows\WinSxS。它的主要功能是并排存儲重要系統文件的各個版本。當 Windows 進行更新時,它會在 WinSxS 文件夾中保留以前版本的組件。因此,WinSxS 文件夾的大小往往會隨著每次 Windows 更新而增加。 WinSxS 文件夾的主要用途包括:
實際上,在安裝 Windows 組件、更新或軟件應用程序期間,文件系統地存儲在 WinSxS 目錄中。該目錄充當系統文件(特別是 DLL)的集中存儲庫,這些文件在各種應用程序和組件之間共享,以確保兼容性并防止潛在的沖突。 在 Windows Server 等服務器操作系統中,WinSxS 文件夾充當增強服務器功能的附加角色。它保存系統恢復所需的關鍵文件,有助于恢復過程。此外,它還充當一種保護機制,使用戶能夠在必要時從有問題的系統更新恢復到穩定狀態,從而有助于系統的彈性和可靠性。 雖然依賴 WinSxS 文件夾的漏洞利用并不是全新的,并且之前已被用于繞過用戶帳戶控制 (UAC),但這是該 Windows 功能在紅隊操作或真實攻擊場景中的潛力首次得到廣泛記錄與經典的 DLL 搜索順序劫持技術相結合。 4.WinSxS二進制文件依賴劫持 我們的研究團隊通過關注位于 Windows WinSxS 文件夾中的應用程序,改進了經典的DLL搜索順序劫持技術。此方法與以前已知的實現的區別在于,故意針對駐留在WinSxS文件夾中的文件。 這種方法的主要優點包括:
通過以這種方式優化經典的 DLL 搜索順序劫持技術,我們發現了一種更有效、更規避的方法,用于危害系統并在受信任的應用程序中執行未經授權的代碼。這一發現強調了理解 Windows 組件的復雜性及其交互對于防御者和安全從業者的重要性。 在調查的早期階段,我們的主要目標是識別 WinSxS 文件夾中的二進制文件中的潛在漏洞。為了實現這一目標,我們結合使用了兩個關鍵工具:進程監視器和專門為此調查目的開發的定制工具。我們的目標是深入了解執行 WinSxS 文件夾中的二進制文件時系統的行為,并識別駐留在此受信任 Windows 文件夾中的易受攻擊的文件。 一旦識別出有漏洞的二進制文件,我們的注意力就轉移到理解 Windows 在搜索系統文件(包括 DLL)時遵循的精確加載順序。正如前面提到的,序列需要評估各種位置,包括啟動應用程序的目錄、幾個 Windows 文件夾、系統 PATH 環境變量中指定的目錄,尤其是當前工作目錄。 有了這些信息,我們通過策略性地將自定義 DLL 放入指定的目錄中來結束利用過程,密切模仿目標二進制文件所需的合法 DLL 的名稱。當執行易受攻擊的二進制文件時,它會嘗試加載所需的 DLL。Windows 根據已建立的加載順序系統地執行此搜索,并在此過程的早期對當前工作目錄進行關鍵檢查。此時,我們的自定義 DLL 已被發現并加載,而不是合法的對應項。 針對WinSxS應用程序的DLL搜索順序劫持執行流程 5.概念驗證Poc 我們開始在進程監視器中創建過濾器,以篩選具有“PATH NOT FOUND”、“CreateFile”和“NAME NOT FOUND”值的結果。此外,重點關注包含指定路徑“NOT_A_SYSTEM_FOLDER_MS”的結果,該路徑是在桌面上創建的文件夾,其中包含將用于研究目的的文件。 在Process Monitor中創建的過濾器有助于檢測WinSxS中易受攻擊的文件 在我們創建的文件夾中,放置了一個自定義 DLL,它將使用 DLL 搜索順序劫持技術注入到內存中。除了自定義 DLL 之外,我們還開發了一個可執行文件,其唯一目的是執行 WinSxS 文件夾中的所有其他二進制文件并監視其操作。此可執行文件旨在識別 WinSxS 文件夾中存在的易受攻擊的文件。 自定義的文件夾 執行自定義工具后,已經識別出諸如“ngentask.exe”和“aspnet_wp.exe”之類的二進制文件,它們試圖在當前目錄中搜索各自的 DLL,標記為“NOT_A_SYSTEM_FOLDER_MS”。這一觀察結果表明,只需重命名自定義 DLL,以匹配這些可執行文件所尋求的預期 DLL 文件,就可以加載它。然后我們的研究集中在“ngentask.exe”二進制文件上以進行進一步分析。 監視器活動日志 本質上,只需從使用文件夾“NOT_A_SYSTEM_FOLDER_MS”作為當前目錄的 shell 啟動命令行即可觸發漏洞,而無需將易受攻擊的文件復制或移動到 WinSxS 之外。此操作將導致目標二進制文件執行我們的 DLL,因為它只會將其定位在我們的目錄中。這凸顯了我們實現的強大功能,只需要注入一個命令行和一個 DLL。無需攜帶自己的易受攻擊的應用程序,這在涉及 DLL 搜索順序劫持的攻擊中很常見,例如TrendMicro過去報告的 PlugX 案例,該案例濫用了與開源調試器 x32dbg 相關的二進制文件加載惡意代碼。 濫用WinSxS文件夾中二進制程序劫持成功 通過將自定義 DLL 重命名為“mscorsvc.dll”并從當前目錄執行前面提到的命令行(專門針對“ngentask.exe”進程),成功注入了自定義 DLL。通過使用 Process Explorer,我們能夠驗證 DLL 是否成功導入到位于 WinSxS 文件夾中的“ngentask.exe”中。 位于WinSxS文件夾中應用程序ngentask.exe加載的DLL 重要的是要承認,隨著系統進行新的更新,WinSxS 文件夾中可能會存在其他易受攻擊的二進制文件。下面我們添加了一個表格,總結了我們研究過程中位于 WinSxS 文件夾中的易受攻擊的可執行文件以及在其執行過程中搜索的相應資源。需要澄清的是,這些文件的標識并不自動暗示它們的漏洞,而是作為一個強有力的指示,必須在每個二進制文件中進行額外的測試以確認其漏洞:
6.如何檢測 我們向社區提供以下策略,以便在自己的環境中有效解決這種利用方法。 父進程分析: 檢查進程之間的父子關系,特別關注受信任的二進制文件。尋找涉及以下內容的活動:
行為分析: 密切監視 WinSxS 文件夾中的二進制文件執行的所有活動。專注于網絡通信和文件操作。您可以查找以下活動:
該文章在 2024/1/10 10:22:09 編輯過 |
關鍵字查詢
相關文章
正在查詢... |