Windows 核心利用

Windows 核心利用

Windows Kernel Exploitation
Windows Kernel Exploitation

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 組織常用的高級攻擊技術。

本系列用來記錄自己的學習,順便借你看看 ;)

0x01 - Kernel Stack Based Buffer Overflow