Windows 核心利用
Windows Kernel 一直是漏洞利用開發(Exploit Development)領域中最受矚目的焦點之一,並且 Kernel Exploit 也不是誰都能寫的技術。
也正因如此:
能夠理解 Kernel Exploit 的人,天生就站在防禦者與攻擊者的技術火力落差之上。
原因不只 Kernel Exploit 難,而是成功所帶來的攻擊影響範圍與戰略價值遠高於 User-Mode 的 Exploitation。
Kernel 本身承載的是整個作業系統最核心的各種系統部件,例如:
- Memory Management
- Process / Thread Scheduling
- Privilege Management
這些東西全部都在 Ring 0 的控制範圍內,也正因如此,Windows Kernel Exploit 不僅代表技術實力,更代表對 OS 架構理解深度的極限挑戰。
在攻擊 Windows Kernel 的同時,我們應該要思考一件事情:
Windows Kernel 對於攻擊者的戰略價值有多少?
在 Windows 的設計中,Ring 3(User-mode)與 Ring 0(Kernel-mode)並不是單純的權限差異,而是一條由系統定義的安全邊界。
- Ring 3 (User-Mode)
- App、Service、Browser、Office、Escape from Tarkov 之類的程式大多存在於此
- 能力受限、操作必須經由 System Call
- 就算完全被攻陷,也理論上只能影響該 Process 或該 User Context
- Ring 0(Kernel-Mode)
- 擁有對整個系統的最終控制權
- 可直接 Read Write Physical Memory
- 可操縱 Token、EPROCESS、Handle Table、Page Table
- 可攔截 Syscall、Hook Kernel API、甚至修改 Security Model 本身
一旦攻擊者取得 Kernel Control,OS 定義的安全邊界就不再存在。
隨著以下防禦機制逐年強化:
- VBS / HVCI
- KASLR / SMEP / SMAP
- Patch Guard
- CFG / CET
- Driver Blocklist
如果只把 Windows Kernel Exploit 當成 “提權工具”,那其實低估了它的價值。
從 Red Team、甚至 APT 的角度來看,Kernel 更重要的是,它是最難被偵測、最難被清除、最難被分析的存在層級,攻擊者能透過 BYOVD 來讓能夠讓惡意軟體隱藏在 Kernel 當中,使得攻擊行動人員能夠 Presistent 在受害機器中,並保持數年之久,而這正是 APT 組織常用的高級攻擊技術。
本系列用來記錄自己的學習,順便借你看看 ;)
