| 層級 | 技術手段 | 檢測對策 |
| 用戶態 | API Hooking、進程空心化、文件屬性隱藏、偽裝文件名 | 完整性校驗、行為監控、EDR 用戶態回調 |
| 內核態 | DKOM (Direct Kernel Object Manipulation)、IRP 鉤取、內核回調過濾 | 內核完整性監控、虛擬機逃逸檢測、硬件虛擬化輔助 |
2.3 自我復制與傳播
- 可移動介質:autorun.inf + 複製自身到 USB 根目錄。
- 網絡共享:利用 IPC$、SMB 漏洞(如 EternalBlue)橫向移動。
- 即時通訊:發送帶毒鏈接/文件給好友列表。
2.4 免殺對抗技術
- 加殼/壓縮:UPX、VMProtect、Themida 破壞特征碼匹配。
- 代碼混淆:控制流平坦化、垃圾指令插入、字符串加密。
- 反沙箱/反虛擬機:檢測 CPU 核心數、MAC 地址、註冊表鍵值、紅藍藥丸指令。
- 白利用:簽名劫持、DLL 劫持、利用受信任進程(msbuild、installutil)執行惡意代碼。
三、關鍵編程接口與實現要點
3.1 GUI 自動化接口
模擬鍵鼠操作:SendInput、mouse_event、keybd_event、UI Automation API。用於繞過輸入法保護、自動化點擊彈窗。
3.2 註冊表編程
核心 API:RegCreateKeyEx、RegSetValueEx、RegDeleteKey。常用啟動項路徑:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\SYSTEM\CurrentControlSet\Services\\ImagePath
3.3 服務編程
使用 CreateService、StartServiceCtrlDispatcher 註冊服務,配合 SERVICE_WIN32_OWN_PROCESS 類型實現後台長期駐留。
3.4 進程與線程操作
- 創建遠程線程:
OpenProcess → VirtualAllocEx → WriteProcessMemory → CreateRemoteThread(經典 DLL 注入)。
- 進程空心化:
CREATE_SUSPENDED 創建宿主進程 → NtUnmapViewOfSection 卸載原映像 → 寫入惡意 PE → 修改上下文 → ResumeThread。
四、分層防禦體系建設
4.1 終端防護層 (EPP/EDR)
- 啟用實時監控、行為分析、內存掃描、漏洞利用防護 (EPM)。
- 部署應用控制策略:僅允許簽名信任的可執行文件運行。
4.2 網絡流量層 (NDR/流量分析)
- 識別異常 C2 通信:非標準端口、域名生成算法 (DGA)、TLS 指紋異常。
- 部署沙箱聯動:可疑文件自動送樣行為分析。
4.3 主機基線與審計層
- 關鍵註冊表/啟動項/計劃任務/服務變更審計(Sysmon Event ID 12/13/14)。
- 定期核對系統文件哈希、驅動簽名完整性。
4.4 應急響應與威脅狩獵
- 建立 IOC 庫(IP、域名、Hash、註冊表鍵值、文件路徑)。
- 利用 MITRE ATT&CK 框架映射攻擊鏈,補齊檢測盲區。
五、總結與展望
木馬技術正向無文件化(PowerShell、WMI、.NET 內存加載)、雲原生(容器逃逸、K8s API Server 攻擊)、AI 輔助生成變種方向演進。防禦端需從「特征匹配」轉向「行為建模 + 威脅情報融合 + 主動免疫」,構建可持續進化的安全體系。
參考資料:《C 黑客編程揭秘與防范(第2版)》、《木馬技術揭秘與防御》
- 上一篇文章: Effective Java 項目 11:同步訪問共享可變數據的正確姿勢
- 下一篇文章: Struts2 ModelDriven 與 Preparable 接口深度解析:解決屬性驅動與預處理難題
Copyright ©
程式碼之家 All Rights Reserved