Windows内核安全Skill windows-kernel-security

该技能专注于Windows内核安全研究,涵盖驱动开发、系统回调、安全特征如PatchGuard和DSE的绕过,以及内核利用技术。适用于安全研究人员、逆向工程师和漏洞挖掘专家,关键词包括Windows内核、安全测试、驱动漏洞、PatchGuard绕过、系统回调、内核模式利用。

漏洞挖掘 0 次安装 0 次浏览 更新于 3/13/2026

name: Windows内核安全 description: Windows内核安全研究指南,包括驱动开发、系统回调、安全特征和内核利用。使用此技能时,当处理Windows驱动、PatchGuard、DSE或内核级安全机制时。

Windows内核安全

概述

该技能涵盖了来自awesome-game-security集合的Windows内核安全主题,包括驱动开发、系统回调、安全特征绕过和内核模式利用。

核心内核概念

重要结构

  • EPROCESS / ETHREAD
  • PEB / TEB
  • DRIVER_OBJECT
  • DEVICE_OBJECT
  • IRP (I/O请求包)

关键表

  • SSDT (系统服务描述符表)
  • IDT (中断描述符表)
  • GDT (全局描述符表)
  • PspCidTable (进程/线程句柄表)

安全特征

PatchGuard (内核补丁保护)

- 保护关键内核结构
- 定期验证检查
- 检测篡改时导致BSOD
- 多种触发机制

驱动程序签名强制 (DSE)

- 需要签名驱动程序
- CI.dll验证
- 测试签名模式
- WHQL认证

超级管理器代码完整性 (HVCI)

- 基于VBS的保护
- 内核代码完整性
- 驱动程序兼容性要求
- 内存限制

安全启动

- 基于UEFI的启动验证
- 启动加载器链验证
- 内核签名检查
- DBX (禁止签名)

内核回调

进程回调

PsSetCreateProcessNotifyRoutine
PsSetCreateProcessNotifyRoutineEx
PsSetCreateProcessNotifyRoutineEx2

线程回调

PsSetCreateThreadNotifyRoutine
PsSetCreateThreadNotifyRoutineEx

映像加载回调

PsSetLoadImageNotifyRoutine
PsSetLoadImageNotifyRoutineEx

对象回调

ObRegisterCallbacks
// OB_OPERATION_HANDLE_CREATE
// OB_OPERATION_HANDLE_DUPLICATE

注册表回调

CmRegisterCallback
CmRegisterCallbackEx

微过滤器回调

FltRegisterFilter
// IRP_MJ_CREATE, IRP_MJ_READ, 等.

驱动开发

基本结构

NTSTATUS DriverEntry(
    PDRIVER_OBJECT DriverObject,
    PUNICODE_STRING RegistryPath
) {
    DriverObject->DriverUnload = DriverUnload;
    DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreate;
    DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchIoctl;
    // 创建设备、符号链接...
    return STATUS_SUCCESS;
}

通信方法

  • IOCTL (DeviceIoControl)
  • 直接I/O
  • 缓冲I/O
  • 共享内存

易受攻击驱动利用

常见漏洞类型

  • 任意读写原语
  • IOCTL处理器漏洞
  • 池溢出
  • 使用后释放

知名的易受攻击驱动

- gdrv.sys (技嘉)
- iqvw64e.sys (英特尔)
- MsIo64.sys
- Mhyprot2.sys (原神)
- dbutil_2_3.sys (戴尔)
- RTCore64.sys (微星)
- Capcom.sys

利用步骤

  1. 加载已签名的易受攻击驱动
  2. 触发漏洞
  3. 实现内核读写
  4. 禁用DSE或加载未签名驱动
  5. 执行任意内核代码

PatchGuard绕过技术

基于时序

  • 预测PG定时器
  • 在检查之间修改

上下文操作

  • 异常处理
  • DPC操作
  • 线程上下文篡改

基于超级管理器

  • EPT操作
  • 内存虚拟化
  • 拦截PG检查

内核钩子

ETW (Windows事件追踪)

- InfinityHook技术
- HalPrivateDispatchTable
- 系统调用追踪

SSDT钩子 (遗留)

- 修改服务表条目
- 需要PG绕过
- 高检测风险

IRP钩子

- 钩子驱动分发例程
- 比SSDT监控少
- 针对每个驱动

内存操作

物理内存访问

MmMapIoSpace
MmCopyMemory
\\Device\\PhysicalMemory

虚拟内存

ZwReadVirtualMemory
ZwWriteVirtualMemory
KeStackAttachProcess
MmCopyVirtualMemory

MDL操作

IoAllocateMdl
MmProbeAndLockPages
MmMapLockedPagesSpecifyCache

研究工具

分析

  • WinDbg / WinDbg预览版
  • Process Hacker / System Informer
  • OpenArk
  • WinArk

实用工具

  • KDU (内核驱动实用程序)
  • OSR驱动加载器
  • DriverView

监控

  • Process Monitor
  • API Monitor
  • ETW消费者

EFI/UEFI集成

启动时访问

- EFI运行时服务
- 启动驱动加载
- 预操作系统执行

内存访问

- GetVariable/SetVariable
- 运行时内存映射
- 物理内存访问

超级管理器开发

Intel VT-x

  • VMCS配置
  • EPT (扩展页表)
  • VM退出处理

AMD-V

  • VMCB结构
  • NPT (嵌套页表)
  • SVM操作

用例

  • 内存隐藏
  • 系统调用拦截
  • 安全监控
  • 反作弊规避

资源组织

README包含分类链接,用于:

  • PatchGuard研究和绕过
  • DSE绕过技术
  • 易受攻击驱动利用
  • 内核回调枚举
  • ETW/PMI/NMI处理器
  • Intel PT集成

数据源

重要提示:此技能提供概念指导和概述信息。详细信息包括:

  • 特定GitHub仓库链接
  • 完整项目列表及描述
  • 最新工具和资源
  • 代码示例和实现

请从主仓库获取完整数据

https://raw.githubusercontent.com/gmh5225/awesome-game-security/refs/heads/main/README.md