這是一種 Windows 資源管理器 DLL 注入技術,使用 Windows 上的變更圖示對話方塊。
首先,在temp目錄中建立一個資料夾,並使用SHObjectProperties開啟該資料夾的屬性。為了獨立於系統語言檢索視窗句柄,EnumWindows 與回呼函數一起使用,該回調函數檢查每個開啟的視窗中的不同資料夾名稱。
透過屬性頁,呼叫更改圖示對話框,其句柄也可以使用 EnumWindows 檢索。最後,圖示路徑變更為 DLL(在本例中具有 .ico 副檔名),這會導致資源管理器在按下「確定」按鈕後載入 DLL。
「圖示」實際上是一個簡單的 DLL 文件,擴展名為 .ico,可開啟計算器應用程序,其中包含使用 Resource Hacker 新增的圖標資源。
資料夾視圖中的圖示外觀存在一些異常。我已經在兩個不同的 Windows 10 版本(最新版本和舊版本)和 Windows 11 上對此進行了測試。
在兩個 Widnows 10 版本上,當擴展名更改為 .ico 時,儲存在 DLL 內的圖示不會顯示
然而,在最新的 Windows 10 版本上,它確實有效,直到我嘗試開啟照片應用程式內的「圖示」。從那時起,我就無法重新創建它。
在 Windows 11 上,該圖示的顯示方式與資源管理器檢視中的普通圖示一樣。但是,當在照片應用程式中開啟它時,會顯示錯誤。
這種行為當然很有趣,因為只想更改資料夾圖示的使用者可能會將惡意 DLL 注入到他們的資源管理器中。這可能看起來像這樣:
這是一種將 DLL 注入到 Explorer 進程的非常隱密的方法,因為它不使用通常的 DLL 注入 API。它確實會產生兩個簡短的彈出窗口,但這並不太令人不安。因此,威脅行為者可以將其用作 AV 規避技術,透過合法的瀏覽器程序執行程式碼或載入 UMD rootkit。
此外,傳播偽裝成 .ico 檔案的 DLL 可能是個有趣的攻擊媒介。
為了獲得正確的視窗句柄,我使用了 Spy++,這是一個隨 Visual Studio 一起安裝的工具。
非常感謝 Microsoft 的 Bill G. 提供的漂亮的資料夾圖示!
謝謝網路上的隨機人提供的漂亮的注射圖示!