深入銀狐 Part 2:失效工程 — EDR 消失術
此篇文章聚焦在銀狐載入器 men.exe 如何繞過 EDR 機制:利用內嵌壓縮檔的解密解壓、BYOVD 以及惡意驅動永久移除端點防護,並使用 DACL 提高等技術持久性與蒐證難度。
深入銀狐 Part 2:失效工程 — EDR 消失術

示意圖由 ChatGPT 生成
TL;DR
men.exe為 ValleyRAT 載入鏈的第二階段控制程式。- 透過 BYOVD 將端點防護強制停止,迴避惡意行為偵測。
- 利用分段投放與延後解密,把最敏感的載入器與驅動留到端點防護失效後釋出。
- 透過載入過時簽章的惡意驅動,以核心權限永久移除端點防護,為木馬核心的執行奠基。
前言
在 Part 1 的最後,安裝器完成了兩個關鍵動作:
- 執行誘餌
setup.exe讓使用者降低警戒。 - 在背景啟動
men.exe並對 Windows Defender 做初步限制。
Part 2 開始後,攻擊鏈的目標轉為在第三方端點防護 (EDR) 仍然在線的前提下,把木馬核心落地。
此篇文章聚焦在 men.exe 如何繞過 EDR 機制,利用內嵌壓縮檔的解密解壓、BYOVD 以及惡意驅動永久移除端點防護,並使用 DACL 提高持久性與蒐證難度。攻擊者透過分段投放與延後解密,把最敏感的載入器與驅動留到端點防護失效後才釋出,同時串接提權與 AVK,確保下一階段的核心主程式能在幾乎沒有監控阻力的狀態下落地與執行。
警語
本文僅供防禦研究、事件應變、威脅狩獵與教育用途。文中提及之樣本與工具可能具風險,請僅在隔離、可還原且不連接生產網路之環境中測試。本文不鼓勵、協助或默許任何未經授權之行為,讀者若將內容用於非法或不當用途,相關責任由讀者自行承擔;本文所提及之第三方平台與產品名稱僅作技術描述之用。
第二階段分析
本階段的分析中,將針對men.exe 進行拆解。由於過程較長且深入,所以先簡單說明這個程式做了哪些事:
- 停止 EDR (使用
bypass.exe與NVIDIA.exe) - 執行下階段病毒
- 讓 EDR 消失 (使用
rwdriver.sys與main.exe) - 持久化與清理
雖然 men.exe本身是一個較為線性的執行過程,但攻擊者為了分散惡意載荷被偵測的風險,於程式中利用了檔案分段操作並呼叫多個外部執行檔,因此在本次分析中實際上涉及多個樣本的分析。
初步樣本分析
在上一階段安裝器投放了men.exe ,在動態執行前使用 DIE (Detect It Easy) 掃描該程式結構,可得知 mem.exe 為使用 C++ 撰寫之程式。

DIE 工具
透過 Entropy 分析檢視檔案內容後,發現其中存在一段熵值顯著偏高的區段。由於高熵值通常代表資料具有高度隨機性,常見於加密或混淆處理後的內容,因此推測該區段可能為經加密或混淆處理的資源資料。

DIE 熵計算工具
切換至 Extractor 檢視後,發現該區段呈現 ZIP 壓縮檔格式特徵。對該區域進行資料傾印後嘗試解壓縮,系統顯示需輸入密碼,顯示傾印所得資料確實符合 ZIP 壓縮格式。綜合判斷,其解壓縮密碼很可能被硬編碼於 men.exe 程式內。
(補充:在部分情況下,DIE 可能會誤判 Size 欄位的數值,因此仍需透過反組譯或指令分析確認實際應傾印的區段位置與大小。)

DIE Extractor
針對靜態檔案的分析任務,可使用 Capa 工具對 men.exe 進行靜態分析,檢查是否有靜態特徵。根據結果,偵測到許多檔案操作與混淆技術之特徵:

Capa 檢測結果
進階樣本分析
針對該可執行檔,可透過 Ghidra、IDA Pro 或 x64dbg 等反組譯與動態除錯工具進行分析,以還原程式的實際執行邏輯。
分析顯示,men.exe 在主流程執行前即先進行 GPU 裝置環境檢查,為惡意樣本反分析機制的一部分。程式透過呼叫 Direct3D9 相關 API 取得系統的 Adapter 資訊,並據此判斷目前執行環境是否可能為沙箱或虛擬化分析環境。若偵測結果符合其判定條件,程式即會終止執行,以避免後續惡意行為被分析或記錄。
此處使用之 檢測條件為 Microsoft Basic Render Driver,為 Microsoft 內建的軟體渲染器:
VendorId != 5140DeviceId != 140
類似透過 GPU 介面進行反分析的手法於 Checkpoint 部落格 曾被提及,是一個存在已久但少被利用的技術。 若您的虛擬機剛好符合該條件,後續動態分析前需要先將該指令 patch 掉,否則主邏輯不會執行。

Direct3D9 防沙盒檢測
在進入主邏輯後,第一步為確認工作目錄與避免重複執行。其檢查檔案路徑
C:\Users\Public\Pictures\WindowsData\me.key 是否存在,並將其作為後續投放與持久化的固定位置。
- 若該路徑不存在,表示前序 payload 尚未落地。
- 若檔案已存在,則可能表示程式正被重複執行。
對於上述任一情況,程式會透過 WMI (Windows Management Instrumentation) 嘗試恢復網路連線,隨後直接終止執行,以降低異常行為累積與被偵測的風險。

檔案檢查
分析顯示,程式會檢查系統是否運行防毒軟體或 EDR。若存在,程式會擷取其映像檔路徑,並將其加入內部字串清單。該清單不立即使用,而是在程式執行最後階段,作為清除防護軟體的參考路徑。

端點防護狀態檢測
防護清理模組的落地
程式從自身檔案中映射出一個大小為 0xDB307 的區段,並將其建立為檔案 tree.exe(該檔案為壓縮格式)。隨後,程式使用預設密碼對其進行解壓縮。經比對,此檔案與先前於初始分析過程中,透過 DIE 工具傾印出的檔案內容相符。

傾印自身檔案提出壓縮檔
以下為壓縮檔 tree.exe 釋出的檔案,其中的 me.key 亦為壓縮檔,會於端點防護遭到停用後繼續解壓縮:

多階段解壓縮 (階段一)
tree.exe 釋放出的檔案及功能如下,主要用於持久化與端點防護卸除
bypass.exe:提權工具,用於提升程式權限,以便執行後續操作NVIDIA.exe:EDR 停止工具,降低攻擊鍊中被偵測或阻擋的風險X.vbe:持久化腳本me.key:壓縮檔,內含木馬核心程式,用於後續載入主要惡意邏輯Kail.exe:7z 解壓縮程式,但在此階段未被程式使用
隱藏提權與 BYOVD 組合拳
在此階段,men.exe 開始對端點防護系統(EDR)進行操作,透過呼叫 bypass.exe(提權工具)與 NVIDIA.exe(防毒中止工具)來嘗試關閉 EDR 相關服務。
程式首先透過 WdcRunTaskAsInteractiveUser 函數,以一般使用者權限啟動 bypass.exe。該程式接著利用 ICMLuaUtil 介面進行 UAC Bypass,以提升權限並啟動 NVIDIA.exe,進而執行後續的防護軟體停止操作。
由於此呼叫流程透過系統機制間接觸發,在 EDR 的行程關聯視角中,bypass.exe 的父行程會顯示為 taskhost.exe,而非 men.exe。此設計可混淆實際的行程來源,增加事件追蹤與行為關聯分析的難度。

Cortex XDR 視角下的執行鏈
NVIDIA.exe 作為 AV Killer (AVK),藉由載入具有弱點的驅動程式來終止端點防護軟體。由於 NVIDIA.exe 本分析結果與外部分析紀錄大致相符,因此在此將對程式執行流程進行簡略說明,並重點聚焦於 BYOVD 的利用方式與分析過程。
分析顯示,NVIDIA.exe 會透過載入 NSecKrnl.sys(一個帶有已知漏洞的合法簽章驅動程式)來掃描受害主機上是否存在指定的防毒軟體或 EDR。若偵測到目標防護進程,該程式會利用驅動漏洞取得 核心權限,並強制終止相關進程,成功使防護軟體失效。
由於攻擊者使用的驅動程式具有合法簽章且存在漏洞,通常不易被作業系統的驅動封鎖機制攔截,因此能順利載入並執行。此類手法即為 BYOVD(Bring Your Own Vulnerable Driver),在攻擊與迴避防護機制中屬於典型技術。
分析發現上述之EDR 掃描清單,偏向中國常見的消費級安全軟體:
- 360 系列:
ZhuDongFangYu.exe,360tray.exe/360Tray.exe,360sd.exe,360rp.exe,360Safe.exe - 金山(Kingsoft):
kxecenter.exe,kxemain.exe,kxetray.exe,kxescore.exe - HIPS 家族(Host Intrusion Prevention System 模組):
HipsMain.exe,HipsTray.exe,HipsDaemon.exe - 騰訊 QQ (Tencent PC Manager / QQPC):
QMDL.exe,QMPersonalCenter.exe,QQPCPatch.exe,QQPCRealTimeSpeedup.exe,QQPCRTP.exe,QQPCTray.exe,QQRepair.exe
由於驅動中使用函數 ZwTerminateProcess 時驗證不足,任何程式皆可以透過調用 IOCTL 0x2248E0 呼叫該函數來中止任何程式。反白處即為 NVIDIA.exe 中透過 DeviceIoControl 呼叫該函數來中止 EDR 行程之指令:

NVIDIA.exe 檢測並結束 EDR 進程
而 NSecKrnl.sys 驅動這邊,當被呼叫時會使用 ZwTerminateProcess 將以 Ring 0 核心權限強制終止指定進程。

NSecKrnl.sys 具有弱點的函數位置
驅動 “NSecKrnl.sys” MD5 : [80961850786D6531F075B8A6F9A756AD]
檢查 EDR 的呼吸
回到 men.exe 在執行 AVK 後。會持續檢查是否仍有防毒軟體存在,用以等待 AVK 的啟動與確保端點防護已被關閉。當確認裝置上的 EDR 已經全部停止,將會透過 WMI 恢復感染裝置的網路功能。

端點防護狀態檢測
防護停止之後的行為
後續的分析發現,程式嘗試啟動 LetsPRO.exe,但在本樣本中並未實際投放該檔案。值得注意的是,此執行檔名稱在過去的 ValleyRAT 載入器 中曾被使用,因此推測樣本可能保留歷史呼叫邏輯,或與先前版本具備相似的惡意行為模式。

LetsPRO.exe 相關指令
根據下列趨勢科技 的相關報告,該名稱所對應的執行檔通常被用作 木馬程式載入器。
推測本次樣本中未使用該程式,可能與 log.dll 的載入流程有關,以避免程式之間發生衝突。這表明樣本設計時考量了不同模組間的互動,選擇保留呼叫邏輯但不實際投放或執行該檔案。
接下來將會把 me.key 中的檔案使用密碼進行解密,析出檔案將作為接下來使用的 ValleyRAT 的記憶體載入器與驅動程式。

多階段解壓縮 (階段二)
檢查檔案 NtHandleCallback.exe 並啟動,該程式為後續 ValleyRAT 的記憶體載入器,以 DLL 側載 log.dll 發動攻擊。針對該程式我們會在下一章進行分析。
在持久化機制上,透過 COM 將 X.vbe 建立為類似系統名稱 "WindowsPowerShell.WbemScripting.SWbemLocator" 的登入觸發任務。當使用者登入時將會以管理權限執行 VBScript 腳本 X.vbe。

X.vbe (解碼前)
初步分析顯示,該持久化腳本雖然呈現亂碼形式,但仍可透過解碼工具進行分析。然而解碼後仍存在錯誤,使腳本無法正常完成持久化,每次使用者登入時都會彈出錯誤視窗。
後續樣本分析指出,SilverFox 組織 已修復此問題,使持久化流程能在啟動時正常執行,完成 AVK 與木馬核心的持久化與自動執行,增加惡意程式的生存能力與防護迴避效果。

X.vbe (解碼後)

X.vbe (執行時)
讓 EDR 永遠消失
為了讓 EDR 防護永遠在端點移除,惡意程式透過載入惡意驅動 rwdriver.sys 與利用 main.exe 取得核心權限來完成目的。觀察驅動註冊的名稱與檔案名稱,查詢到該驅動實際上為實驗專案之工具:
- https://github.com/NanoWraith/BlindEdr (main.exe)
- https://github.com/NanoWraith/rwdriver (rwdrive.sys)
其本質為透過驅動加載 MmCopyVirtualMemory 函數來清除核心回呼(Kernel callbacks)中觸發事件時會通知的 EDR 程式清單,通常用以達成致盲 EDR 目標 。不過這邊的目的是防止系統呼叫指向被刪除的 EDR 程式指標導致系統崩潰。完成後,將會直接刪除防毒端點防護檔案 (一開始執行掃描時取得的路徑),讓 EDR 徹底消失。

目標核心回呼清單 (來自 BlindEdr )
在我們平常開發驅動程式時,必須要開啟測試模式才能完成註冊與啟動。而本案在載入驅動時,觀察到雖然具有簽章,但有效日期已經過期還仍然被載入:

這是因為根據 Windows驅動程式簽章政策,只要符合其中之一,將允許使用交叉簽章。而該簽章為2015年前所頒發的交叉簽章,因此符合簽章政策導致可以被載入。這種技術在銀狐攻擊行動的多個環節都能看到該載入手法。
![[Driver Signing Policy — Windows drivers | Microsoft Learn]](https://miro.medium.com/v2/resize:fit:1315/1*UYOmWJaOe-8XDqT7fUiW4g.png)
[Driver Signing Policy — Windows drivers | Microsoft Learn]
打完,收工
在程式結束時最後呼叫了兩個函數,分別進行資料夾權限修改與刪除自身檔案,以防止被使用者輕易開啟與刪除,且提高蒐證難度。
第一個函數先針對 C:\Users\Public\Pictures\WindowsData 目錄設定 Hidden 與 System 屬性,降低一般使用者透過檔案總管發現的機率。
接著取得該目錄的 DACL,並新增一條針對 Everyone 的 Deny ACE,拒絕 **FILE_DELETE_CHILD (0x40),且設定繼承,使在該目錄底下的子項目更難被刪除,提升惡意檔案的留存性。之後再針對目錄內 7 個檔案逐一新增 Deny ACE 拒絕 `DELETE (0x00010000)`** 的屬性,讓這些檔案本身更難被刪除。

第二個函數中使用大量指令字串,透過 XOR 將字串解密後執行。其命令除強化 X.vbe 的持久性外,還將在本次執行過程中所使用到的檔案刪除。

解碼並執行的指令
最後生成 del.bat 並執行,使用 ping 指令來延遲刪除自身,避免刪除時程式尚在執行。
del.bat(已添加註解):
@echo off
ping -n 2 127.0.0.1 >nul # 延遲執行
del /f /q "C:\ProgramData\WindowsData\men.exe" # 刪除 men.exe 檔案
del /f /q "%%0" # 刪除這個批次檔
到這邊,第二階段結束。下一階段將會講解 NtHandleCallback.exe 是如何透過白加黑與多個戰術,完成最終的 ValleyRAT 核心的執行。
技術統整
將 men.exe 第二階段行為解析為多個技術:
反分析
T1497.001 Virtualization/Sandbox Evasion: System Checks: 透過 Direct3D9 取得顯示卡 Adapter 資訊,檢查 VendorId 與 DeviceId,命中條件就提前退出,以降低在沙盒或分析環境暴露風險。
T1027 Obfuscated Files or Information: 內嵌高熵資源區段,使用密碼保護 ZIP,並以編碼字串與 XOR 混淆命令與字串,提升逆向與靜態檢測難度。
T1140 Deobfuscate/Decode Files or Information: 在執行期解出內嵌 ZIP,使用密碼解壓內容以取得下一階段載荷。
偵察
T1518.001 Security Software Discovery: 掃描端點防護與防毒產品存在與否,作為後續 AVK 與刪除流程的前置條件與目標選擇依據。
T1057 Process Discovery: 枚舉正在執行的程序,對照內建清單判斷防護軟體行程,並蒐集其映像路徑以供後續刪除使用。
提權、偽裝與防護破壞
T1548.002 Abuse Elevation Control Mechanism: Bypass User Account Control: 透過 ICMLuaUtil 類型的 UAC bypass 取得管理權限。
T1036.005 Masquerading: Match Legitimate Name or Location: 以 NVIDIA.exe、任務名稱偽裝成 WindowsPowerShell.WbemScripting.SWbemLocator 等方式近似合法元件命名,降低人工審查與基於字串的可疑度。
T1211 Exploitation for Defense Evasion: 利用具弱點的驅動 NSecKrnl.sys,透過 IOCTL 介面觸發 ZwTerminateProcess 等核心能力,達成繞過防護與強制終止安全軟體的效果,符合以弱點達成防禦迴避的範式。
T1562.001 Impair Defenses: Disable or Modify Tools: AVK 掃描並終止端點防護行程,並在後段嘗試移除防護檔案與降低防護可視性,讓後續木馬核心執行時干擾最小化。
T1543.003 Create or Modify System Process: Windows Service: 建立並啟動 rwdriver 相關驅動服務,透過服務機制載入核心驅動以取得 Ring 0 操作能力。
T1014 Rootkit: 載入驅動並對核心層機制進行操作,包含以驅動干預 kernel callbacks 清單的致盲行為,呈現典型核心層對抗與隱匿特徵。
持久化與反蒐證
T1053.005 Scheduled Task/Job: Scheduled Task: 建立登入觸發任務,使用者登入時以管理權限執行 X.vbe,作為持久化啟動點。
T1059.005 Command and Scripting Interpreter: Visual Basic: 以 VBScript 腳本 X.vbe 作為任務觸發後的腳本載具,後續樣本修補後可用於維持 AVK 與木馬啟動。
T1047 Windows Management Instrumentation: 透過 WMI 進行系統管理相關操作脈絡,包含流程中恢復網路連線等管理動作,降低因前序限制造成的異常可見度。
T1564.001 Hide Artifacts: Hidden Files and Directories: 將工作目錄設為 Hidden 與 System 屬性,降低一般使用者透過檔案總管發現投放痕跡的機率。
T1222.001 File and Directory Permissions Modification: 修改目錄與檔案 DACL,加入 Everyone 的 Deny ACE,拒絕 FILE_DELETE_CHILD 與 DELETE 權限並啟用繼承,提高檔案留存性並增加蒐證與清理成本。
T1059.003 Command and Scripting Interpreter: Windows Command Shell: 以批次檔與 cmd 指令串接清理流程,包含 ping 延遲與 del 自刪機制,確保程式退出後再刪除檔案。
T1070.004 Indicator Removal on Host: File Deletion: 生成 del.bat 並刪除 men.exe 與相關落地檔案,降低現場殘留與追查線索。
在我們長期追蹤多起樣本與載入鏈的分析中,可以觀察到攻擊者在工具層的更換頻率很高,包含 BYOVD、漏洞利用、持久化與載入手段,都會隨著防禦方的偵測規則與公開揭露而快速替換,甚至傾向採用剛被揭露或仍在地下的新手法來壓縮防守方反應時間。
改以戰術視角重新審視樣本,確保能在不同變種之間辨識出穩定不變的意圖與流程,即使攻擊者不斷替換工具與技術,仍很難逃離其行為結構所留下的可觀測痕跡。

結語
本章主要分析攻擊者如何在規避階段系統性地移除端點防護,並把持久化、自我保護與反蒐證機制一併完成。men.exe 利用 UAC bypass 串接 AVK,落地 BYOVD 驅動,在 Ring 0 終止 EDR 行程。再透過分段投放與延後解密,讓核心模組在相對安全的時間點落地。最後補上自製惡意驅動進行致盲與蒐證對抗手段,包括清理 Kernel callbacks、修改 DACL 增加刪除難度、以及自刪降低現場痕跡。
對防禦方來說,這條鏈最棘手的點在於它由多個技巧組合,形成一個為了確保下一階段成功而設計的工程化流程。若只盯著木馬本體或某項指標,往往在第一時間就已經失去端點防護的可視性。
在下一章,我們將針對木馬核心載入器 NtHandleCallback.exe 與 log.dll 進行詳細分析,探究他是如何載入更多的 Rootkit 與記憶體執行,利用進階隱藏技術,達成木馬核心全程不落地的執行技術。
附錄
IOCs
以下為第二階段中投放的檔案:
| FileName | MD5 |
| -------------------- | -------------------------------- |
| me.key | A7B31B5B3B7214146EA115DAA5EFC064 |
| tree.exe | 042BC3AF557A49A9A788F6785CA7E1AB |
| bypass.exe | 10A5C5B913D5D983AAA555B7F28344F7 |
| kail.exe | F3333DAB07B8D9D7A6B76B9DB8CEEE69 |
| log.dll | 04A781F089684FF2A9124708B0905EAB |
| main.exe | 893EDFA3A3A71D71CA670424E554E04C |
| NtHandleCallback.exe | BCEC4279D95D0B09EBCF4388CB9A4F64 |
| NVIDIA.exe | 5D38C8A2E1786E464A368465D594D2B4 |
| rwdriver.cat | 8AA68B90C08578CA55CCA1011D3AA1A4 |
| rwdriver.sys | 5231A08C5286803E300AC657E37272F8 |
| X.vbe | BD979DD43BEE92F085E22086A07F1845 |
執行鏈檔案關係圖
(NtHandleCallback.exe 將於下一階段提及)
我們將第一階段與第二階段製成流程圖,可以更直觀的看到載入鏈的執行過程中使用了那些檔案。

執行鏈檔案關係圖
本文章由 開啟資安系統股份有限公司(OpenInfoSec)資安服務處 提供
Author: Dinlon5566, Leo
메타데이터
- post_id
- 781b744f53d2
- slug
- 深入銀狐-part-2-失效工程-edr-消失術-781b744f53d2
- url
- https://medium.com/ois/%E6%B7%B1%E5%85%A5%E9%8A%80%E7%8B%90-part-2-%E5%A4%B1%E6%95%88%E5%B7%A5%E7%A8%8B-edr-%E6%B6%88%E5%A4%B1%E8%A1%93-781b744f53d2
- canonical_url
- https://medium.com/ois/%E6%B7%B1%E5%85%A5%E9%8A%80%E7%8B%90-part-2-%E5%A4%B1%E6%95%88%E5%B7%A5%E7%A8%8B-edr-%E6%B6%88%E5%A4%B1%E8%A1%93-781b744f53d2
- author_url
- https://medium.com/@dinlon5566
- status
- ok
- fetched_at
- 2026-06-12 18:14:10