對於許多剛接觸資安分析的工程師來說,可能會覺得惡意軟體只要被防毒軟體(Antivirus)或端點偵測與回應(EDR)系統掃描到就沒戲了。但現實中,攻擊者會使用一種稱為 Crypter(加密殼)的工具來對惡意程式進行封裝。最近被揭露的 Cruciferra Crypter 就是一個極佳的案例,它不僅僅是簡單的加密,而是整合了一整套繞過現代 Windows 安全機制的工程手段。
首先我們要理解什麼是 Crypter。簡單來說,Crypter 就像是一個保護殼,它將真正的惡意載荷(Payload)加密並隱藏在其中。當程式執行時,它會在記憶體中解密並執行該載荷。Cruciferra 的強大之處在於它採用多型性(Polymorphic)設計,每次生成的加密演算法都不同,這讓傳統依賴特徵碼(Signature)的掃描工具完全失效,因為沒有兩個樣本長得一樣。
Cruciferra 為了在 Windows 環境中生存,採取了多項進階的逃逸技術。
第一項是 BYOVD,全名為 Bring Your Own Vulnerable Driver(攜帶易受攻擊的驅動程式)。在 Windows 中,核心模式(Kernel Mode)擁有最高權限,而 EDR 等安全軟體通常在此層級監控系統。攻擊者無法直接關閉 EDR,因此他們採取迂迴戰術:故意安裝一個合法但存在已知漏洞的第三方驅動程式(例如文中提到的 GoFlyDrv.sys)。一旦這個漏洞驅動程式被載入,攻擊者就可以利用其漏洞獲取核心權限,進而從底層直接強行終止 EDR 的監控進程。這就像是為了進入禁區,先找一個有鑰匙但沒在看門的員工,利用他的疏忽潛入後直接把警衛關起來。
第二項是 Process Ghosting(進程幽靈化)。這是一種極其狡猾的執行方式。傳統的惡意軟體在執行前必須將檔案寫入磁碟,這會觸發 EDR 的檔案掃描。而 Process Ghosting 的操作流程是:先建立一個暫存檔案,將惡意代碼寫入,但在正式啟動進程之前,就迅速將該檔案從磁碟上刪除。由於 Windows 的檔案系統機制,該進程依然可以在記憶體中運行,但此時磁碟上已經沒有對應的檔案可以被掃描。為了讓這個過程更隱蔽,Cruciferra 還會修改系統底層的 ZwQueryVirtualMemory 鉤子(Hook)來掩蓋檔案被刪除的痕跡,讓取證分析人員難以追蹤。
除了上述兩大核心技術,Cruciferra 還運用了其他工程手段來強化生存能力。它使用間接系統呼叫(Indirect System Calls)來避開 API 鉤子,這意味著它不直接呼叫 Windows 提供的標準 API 函數(因為這些函數通常被 EDR 監控),而是直接發送指令給核心。此外,它會利用 COM Elevation Moniker 繞過使用者帳戶控制(UAC)來提升權限,並透過修改登錄表(Registry)的 Run 鍵值來實現開機自動啟動,確保持久化存在。
在實際的攻擊路徑中,Cruciferra 通常透過 DLL Side-loading(DLL 側載)啟動。這是一種利用合法程式會優先載入同目錄下同名 DLL 的特性,將惡意 DLL 偽裝成合法元件載入記憶體的方法。這種方式能讓惡意行為看起來像是從一個受信任的合法程式中發出的,進一步降低被懷疑的機率。
總結來說,Cruciferra 代表了當前惡意軟體開發的趨勢:不再單純依賴代碼混淆,而是深入研究作業系統核心機制,利用合法驅動程式的漏洞與記憶體管理特性來對抗安全防禦。對於開發者與維運工程師而言,這提醒我們不能僅依賴單一的檔案掃描,而必須關注行為分析(Behavioral Analysis)與核心層級的異常監控。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。