萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

揪出系統深處的隱形木馬(下):控制面板 .cpl 劫持與超長路徑隱藏術

前言:繼組策略、冷門註冊表、AutoRun、螢幕保護後,兩大終極隱藏技術

一、控制面板 .cpl 劫持:偽裝成系統元件

原理

  • 控制面板每個圖示對應一個 .cpl 檔案(實為特殊 DLL)。
  • 路徑:Win9x/Me → Windows\System\;WinNT/2000/XP/2003 → Windows\System32\。
  • 由 control.exe 載入,或透過 RunDll32.exe shell32.dll,Control_RunDLL xxx.cpl,,n 直接喚起第 n 個屬性頁。

木馬植入步驟

  1. 編寫無視窗/隱藏視窗的 .cpl 木馬(實為 DLL,導出 CPlApplet 入口)。
  2. 置於 System32 或自訂目錄。
  3. 註冊表啟動項寫入:RunDll32 shell32.dll,Control_RunDLL mycpl.cpl。
  4. 若不想在控制面板顯示圖示,編輯 control.ini [don't load] 區段:mycpl.cpl=no。

為何極難發現?

  • 木馬以 **DLL 形式在合法進程 (rundll32/control.exe) 內運行**,進程列表無異常獨立進程。
  • 檔案名可偽裝成系統既有 .cpl(如 desk.cpl、inetcpl.cpl),或替換低使用率系統 .cpl。
  • 常規掃描不掃描 .cpl 內部代碼邏輯。

排查與清除

  1. 檢查啟動項是否有 RunDll32 shell32.dll,Control_RunDLL *.cpl 形式項目。
  2. dir %windir%\system32\*.cpl 對照標準清單,多出的即為可疑。
  3. 檢查 control.ini [MMCPL] 與 [don't load] 區段異常條目。
  4. 刪除啟動項、刪除偽裝 .cpl、恢復 control.ini。

二、超長路徑目錄:利用 254 字元限制建立「不可見堡壘」

原理

Windows API 最大路徑長度 **MAX_PATH = 260 字元**(含結束符),實際可用 **254 字元**。若目錄絕對路徑超過此限制,總管、CMD、多數工具軟體(WinRAR、ACDSee、WinZIP、Total Commander)均**無法進入、顯示、刪除**。

實作演示

  1. 建立巢狀目錄:E:\good\123\test。
  2. 將 123 重命名為超長字串 1111...1111(按住 '1' 直到無反應)。
  3. 將 good 重命名為 goodluck123。
  4. 最終路徑 E:\goodluck123\1111...1111\test > 254 字元。
  5. 結果:總管提示「路徑太長」,CMD cd 失效,工具軟體看不見,殺毒掃描掃不到,**甚至無法直接刪除**(提示找不到檔案)。

進階隱藏:回收站/字體目錄 + 屬性隱藏 + 註冊表禁用「顯示所有檔案」

  1. 在 C:\RECYCLER(NTFS 系統)或 C:\Windows\Fonts 等特殊資料夾下建立超長路徑目錄。
  2. 將木馬檔案移入,設「隱藏+系統」屬性。
  3. 修改註冊表強制隱藏:
    HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue = 0(預設 1)。
    刷新後,即使總管勾選「顯示所有檔案」,進入該特殊資料夾**依然空空如也**。

如何刪除這種「刪不掉的目錄」?

  • **重命名縮短路徑**:在上層目錄對超長子目錄重命名為短名稱(總管/CMD 均可操作上層目錄)。
  • **使用支援長路徑的工具**:robocopy /mir 空目錄覆蓋、rmdir /s /q \\?\E:\longpath(UNC 路徑前綴 \\?\ 繞過 MAX_PATH 限制)、Linux LiveCD 掛載 NTFS 刪除。

工具驗證:主流軟體均「失明」

總結:防禦清單

  1. 定期掃描超長路徑目錄(腳本遍歷 \\?\ 前綴路徑)。
  2. 監控 control.ini、啟動項中 RunDll32...Control_RunDLL 異常。
  3. 禁用不必要的控制面板項目(組策略/註冊表)。
  4. 部署 **EDR/檔案完整性監控**,以核心層回調繞過用戶態路徑限制。
  5. 升級至 **Windows 10 1607+**,啟用 LongPathsEnabled 註冊表值(HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled = 1),從根源消除 260 字元限制。

結語

.cpl 劫持利用了「合法系統元件載入機制」;超長路徑利用了「API 歷史包袱」。兩者皆屬 **「活在合法邊界內」** 的高級隱藏術。現代防禦必須具備**核心可見性**(Kernel Callback/ETW)與**路徑無關的檔案枚舉能力**,才能徹底揪出這類深潛木馬。

copyright © 萬盛學電腦網 all rights reserved
工具能否看到超長路徑下內容
Windows Explorer❌
CMD / PowerShell❌
Windows Commander / Total Commander❌
ACDSee❌
WinRAR / WinZIP❌
殺毒軟體掃描❌ (掃描引擎同受 MAX_PATH 限制)