本篇文章「知識內容與細節」與「行動指南」兩大面向,整理紅隊攻防中「Evasion(AV/EDR Bypass)」技術的相關資訊、學習資源,以及如何有效運用時間去準備考試或深化技能。
許多非台灣用語會稱呼 Evasion 為「免殺」。
一、前言與學習路線建議
- Evasion該技術在紅隊演練中是重要一環,包括繞過防毒(AV)或端點偵測/回應(EDR)等安全機制。
- 常見手法包含程式碼混淆、AMSIBypass、Syscall直接呼叫、權杖攜帶等技術。
- 若以「考證」為首要目標(如 OSCP、OSEP、CRTO、CRTE、CRTM 等),建議先明確規劃準備時間,聚焦通過考試所需要的知識體系;若時間充裕,可再深入研究 Evasion 技術。
- 建議順序:先打好基礎(Windows 安全機制、AV/EDR 運作原理),再學習各種 Evasion 技巧與常見 C2 Framework 的部署與客製化。
二、知識內容與細節
以下整理常見關鍵字、技術主題,以及可參考的方向:
1. AMSI 繞過技術 (AMSI Bypass)
- AMSI(Anti-Malware Scan Interface)是微軟提供給防毒軟體用以掃描 PowerShell、VBA 巨集等程式碼的介面。
- 主要做法:
- 修改記憶體中的 AMSI 相關函式:Patch AMSI DLL 中的函式(如
AmsiScanBuffer
)。 - 動態修改 PowerShell 腳本:在執行時修改或加密部分字串,以避開靜態偵測。
- 混淆技術:使用工具如
Invoke-Obfuscation
或自寫字串加密解密函式。
- 修改記憶體中的 AMSI 相關函式:Patch AMSI DLL 中的函式(如
2. ETW (Event Tracing for Windows) 繞過 (ETW Bypass)
- ETW為 Windows 的事件追蹤機制,可用於行為偵測與記錄。
- 主要做法:
- Patch ETW 函式(如
EtwEventWrite
)或改寫函式指標,阻斷向Windows事件系統寫入。 - Syscall/Direct Call:不透過高階API,而是直接呼叫底層系統呼叫,減少被攔截機會。
- Patch ETW 函式(如
3. PowerShell Runspace 技術 (In-Memory PowerShell)
- Runspace 可讓開發者在記憶體中執行 PowerShell 腳本,降低在硬碟上留下明顯腳本的風險。
- 與 AMSI bypass 搭配時,能有效在記憶體中執行混淆過的程式碼。
4. 反射式 Assembly 載入 (Reflective Assembly Loading)
- Reflective Loading可以在不落地的情況下,將 .NET Assembly、C# DLL、C++ DLL注入記憶體並執行。
- 工具範例:
SharpSploit
Cobalt Strike
或Sliver
中的Reflective LoaderDonut
(可將 .NET、VBA、Ruby等載入)
5. Syscall 直接呼叫 (Direct System Call)
- 目前很多EDR會Hook常見的Win32 API呼叫。
- Direct Syscall手法能避開Hook的層級,直接使用 syscall 編號來執行系統函式。
- 需搭配對應的系統版本號或NTOS offsets,實務上具備一定難度,需要較深的Windows Internals知識。
6. 程式碼混淆與字串加密 (Obfuscation & String Encryption)
- 靜態偵測常透過特徵碼或字串指紋比對。
- 避開方式:
- 自訂加密/解密流程:自訂RC4, AES, Base64, XOR… 加強難度。
- 動態還原/還原後再重新加密。
- 程式碼壓縮/混淆:如
ConfuserEx
、Obfuscar
(針對 .NET 程式)。
7. LoLBins (Living-off-the-Land Binaries)
- 指利用系統內建或預裝的合法程式(如
regsvr32.exe
,MsBuild.exe
,Rundll32.exe
,InstallUtil.exe
等)來執行惡意程式碼。 - 由於LoLBins本身是系統信任的二進位檔,透過參數/腳本注入達成 Evasion 與隱匿目標。
三、額外關鍵名詞與參考資料
- Evasion techniques, EDR bypass, CRTO (Certified Red Team Operator), CRTE, CRTM, OSEP
這些關鍵字都可用來搜尋 GitHub 專案或部落格文章,常見技術討論區:- Medium 搜尋
"EDR Bypass" + "AMSI Bypass" + "CRTO"
。 - Reddit
r/redteamsec
、r/AskNetsec
。 - GitHub 以
Evasion
、Bypass
為關鍵詞。
- Medium 搜尋
- 名詞延伸方向:
- Shellcode Injection手法(使用
VirtualAlloc
,WriteProcessMemory
,CreateRemoteThread
等) - Syscall Stub 生成工具(
SysWhispers
,InlineWhispers
,Hell's Gate
) - Windows Internals(幫助理解API Hook與Kernel-Mode可疑行為過濾)
- Shellcode Injection手法(使用
四、常見工具/框架(部分舉例)
工具/框架 | 功能與特色 | 來源/說明 |
---|---|---|
Cobalt Strike | 商業化 C2 Framework,內建多種繞偵測技術與Beacon混淆策略 | 付費,常見於實務紅隊演練 |
Sliver | 開源C2框架,支援多種載荷(Go-based),具備多種Evasion功能 | GitHub – BishopFox/sliver |
Metasploit | 雖然相對老牌,但透過客製化Payload、Mettle等模組也能進行 Evasion 嘗試 | Metasploit官方 |
Donut | 將 .NET Assembly / EXE / DLL 轉成shellcode,不落地執行 | GitHub – TheWover/donut |
Inceptor | 目標為在 .NET/C++ payload 基礎上輕鬆套用各種Obfuscation與Bypass技術 | GitHub – Inceptor |
Sharpshooter | 由 MDSec 開發,用於產生針對 Office 巨集/HTA 的繞偵測Loader | GitHub – Sharpshooter |
五、學習資源與參考文章
- TryHackMe (THM)
- 針對逆向、惡意程式分析、Windows安全等,都有關卡(Room)。雖然 Evasion 相關比較零散,但可以練習基本C2、AV繞過觀念。
- 建議關鍵字:Evasion, Red Team, Windows Internals
- Hack The Box (HTB)
- 有些機器或挑戰需要使用特殊技巧(C# 反射式載入、PoweShell AMSI bypass…),可藉此堆積經驗。
- 可依難度或題目標籤尋找與 C2/Evasion 技術有關的機器。
- 部落格/網站
- FuzzySecurity: 有許多 Windows 攻防/注入技術教學。
- Outflank Blog: 細談 Cobalt Strike、Reflective DLL Injection 與監控繞過。
- TrustedSec Blog: 不定期分享紅隊繞偵測案例。
- 書籍/官方文件
- Windows Internals 系列書籍或微軟官方文檔:對於深入了解底層API Hook、ETW等非常有幫助。
- OSEP官方課程大綱:可了解 Offensive Security 規劃的繞過技術概念。
- 線上影片課程
- TCM Security的付費課程(有針對 AV/EDR 繞過教學)。
- YouTube 頻道如
IppSec
(多是HTB解題),或John Hammond
(包含惡意程式分析/CTF/Evasion 技巧)。
六、行動指南
- 明確目標:
- 若今年重點是 OSCP,先專注在基礎駭客手法、漏洞利用、Windows/Linux混合滲透等。OSCP 並沒有深度針對「Evasion」考點,但有些時候仍需對簡易 AV bypass 有概念。
- 若拿下 OSCP 後,打算往更進階的紅隊/Evasion 領域發展,可再準備 OSEP、CRTO 等有「Evasion / AV Bypass」核心的課程與證照。
- 分階段學習:
- 階段1 – 基礎補強:
- Windows帳號權限機制、Token、Windows API、PE檔案結構、PowerShell腳本基礎等等。
- 階段2 – 常見繞過實務:
- 試著手動或使用現成工具(
Donut
,Inceptor
)來生成 Evasion Payload,學會如何Patch AmsiScanBuffer、ETW函式等。
- 試著手動或使用現成工具(
- 階段3 – 進階整合:
- 將技術整合到一個 C2 工具 (例如Cobalt Strike / Sliver / Covenant),調整Loader或Stager的混淆手段,與防毒/EDR進行對抗測試。
- 階段4 – 測試與迭代:
- 在實驗環境安裝不同品牌的防毒/EDR進行測試,把偵測到的特徵再回頭做修正或混淆。
- 階段1 – 基礎補強:
- 時間管理:
- 以考證為優先的話:建議在確保考試必備技術(漏洞利用、基礎滲透手法、基礎 Evasion )都熟練後,再花時間深入「Evasion」專題。
- 若時間無壓力、學習目標是精進技術,可同時進行CTF/HTB/THM並做 Evasion 實驗,保有學習樂趣。
- 做筆記與案例分析:
- 每完成一次 Evasion 測試就紀錄操作步驟、失敗原因、偵測日誌樣本與修正方式。
- 參考真實入侵事件的調查報告(如 Mandiant/FireEye 出版的APT報告)瞭解實際駭客如何迭代繞過企業EDR。
七、總結
- Evasion (AV/EDR Bypass) 涵蓋技術廣且深,從Windows底層API、記憶體注入、程式碼混淆到 C2 框架客製化都要顧及。
- 若時間與目標有限,建議先聚焦在主考內容或必備基礎,再逐步延伸學習各種 Evasion 技術。
- 參考關鍵字如 Evasion techniques, AV bypass, EDR bypass, AMSI Bypass, ETW Bypass 等,都能在 TryHackMe、Hack The Box、GitHub、部落格、YouTube 發現相當多實作案例。
行動建議:
1. 規劃今年的學習主線(OSCP -> 休息 -> OSEP/CRTO)。
2. 挑選一至兩個C2框架(如 Sliver、Cobalt Strike),熟悉客製化Payload流程。
3. 實驗在 Windows 10/11 + 不同AV/EDR環境中測試繞過策略。
4. 定期蒐集最新的駭客技術報告(APT報告、研究部落格),追蹤繞過手法更新。
只要不斷「實作 – 測試 – 迭代」,加上系統性研究,就能穩定累積經驗,逐步勝任紅隊 Evasion 與進階滲透相關工作。