心宇

FDF24DCED8C6738F8313A6D3B073C3F4

首页 管理

Privilege Escalation,简称:

Privesc

中文通常称为:

权限提升 / 提权

它指的是:

已经获得目标主机某种低权限访问能力之后,通过系统漏洞、软件漏洞、错误配置、服务权限、特殊权限等问题,使当前进程或用户获得更高权限。

基本过程:

获得低权限 Shell
        ↓
确认当前用户与权限
        ↓
收集系统信息
        ↓
枚举服务 / 软件 / 配置 / 特殊权限
        ↓
寻找可能的提权路径
        ↓
验证漏洞或错误配置
        ↓
获得更高权限

例如 Linux:

www-data
   ↓
普通用户
   ↓
root

Windows:

普通用户
   ↓
管理员权限
   ↓
高完整性管理员 / SYSTEM

一、提权的本质

提权不能简单理解成:

找到系统版本
    ↓
网上下载 EXP
    ↓
执行
    ↓
获得 SYSTEM/root

真实环境中的提权来源很多。

主要可以分为:

Privilege Escalation
│
├── 操作系统漏洞
│
├── 第三方软件漏洞
│
├── 系统配置错误
│
├── 服务权限错误
│
├── 文件权限错误
│
├── sudo / SUID / Capabilities
│
├── 计划任务 / 启动项
│
├── 数据库相关权限问题
│
└── 凭据与权限配置问题

所以:

提权的第一步通常不是寻找 EXP,而是 Enumeration(枚举)。


二、Windows 中 Administrator 与 SYSTEM 的区别

Windows 中需要区分:

Administrator

和:

NT AUTHORITY\SYSTEM

它们并不是同一个账户。

Administrator

Administrator 属于管理员级账户。

管理员用户通常属于:

Administrators

用户组。

但受到 UAC 等机制影响时:

属于 Administrators

并不意味着:

当前进程一定已经拥有最高管理员权限

SYSTEM

SYSTEM:

NT AUTHORITY\SYSTEM

是 Windows 内置的高权限服务账户。

很多 Windows 核心组件和系统服务使用 SYSTEM 身份运行。

因此:

Administrator ≠ SYSTEM

Windows 提权更准确地理解为:

从当前低权限安全上下文提升到管理员级、高完整性管理员、SYSTEM 等更高权限安全上下文。


三、UAC Bypass 与 SYSTEM 提权不要混淆

例如:

bypassuac_fodhelper
bypassuac_sdclt

属于:

UAC Bypass

UAC Bypass 一般针对:

用户已经属于 Administrators 组,但是当前进程运行在受 UAC 限制的权限级别。

可以简单理解:

Administrators 用户
        ↓
Medium Integrity
        ↓
UAC Bypass
        ↓
High Integrity

所以:

UAC Bypass

不应该直接理解成:

普通用户 → SYSTEM

UAC Bypass 和 SYSTEM 提权属于不同概念。


四、常见提权方式

1. 操作系统漏洞提权

操作系统自身可能存在:

Kernel
Driver
System Service
权限控制
内存管理

等安全漏洞。

基本思路:

确认系统版本
      ↓
确认系统架构
      ↓
确认补丁情况
      ↓
寻找对应漏洞
      ↓
验证目标是否满足漏洞条件
      ↓
授权环境中测试

例如 Windows 可以先查看:

systeminfo

Linux:

uname -a

以及:

cat /etc/os-release

五、系统配置错误提权

很多实际环境中的权限提升并不依赖 0-day。

常见问题包括:

文件权限配置错误
目录权限配置错误
服务配置错误
计划任务配置错误
启动项配置错误
sudo 配置错误
SUID 配置错误
Capabilities 配置错误
环境变量配置错误
敏感凭据泄露

例如:

高权限服务
    ↓
调用某个程序
    ↓
低权限用户可以修改这个程序

那么就存在明显的权限边界问题。

因此提权时应该重点检查:

谁运行这个程序?
        +
谁可以修改这个程序?

六、第三方软件 / 服务提权

即使操作系统本身不存在可利用漏洞:

数据库
Web Server
备份软件
监控程序
运维软件
驱动程序
第三方服务

仍然可能存在安全问题。

例如某个服务:

SYSTEM
  ↓
Service.exe

如果普通用户能够修改:

Service.exe

或者相关:

DLL
配置文件
脚本
目录

就可能形成权限提升风险。


七、Windows 提权基本流程

Windows 提权建议按照下面的顺序进行:

① 当前用户是谁?
        ↓
② 当前用户属于哪些组?
        ↓
③ 当前 Token 有哪些权限?
        ↓
④ Windows 是什么版本?
        ↓
⑤ 安装了哪些补丁?
        ↓
⑥ 有哪些服务?
        ↓
⑦ 有哪些计划任务?
        ↓
⑧ 有哪些启动项?
        ↓
⑨ 文件 / 目录权限是否异常?
        ↓
⑩ 第三方软件是否存在漏洞?
        ↓
⑪ 根据枚举结果寻找提权路径

八、Windows 当前用户信息

查看当前用户

whoami

例如:

desktop-01\green

查看 SID

whoami /user

用于查看:

当前用户名
SID

查看当前权限

whoami /priv

可以查看当前 Access Token 中包含的:

Privileges

不同用户、不同服务账户拥有的权限不同。


查看用户组

whoami /groups

重点关注:

Administrators
Remote Desktop Users
Integrity Level
其他特殊用户组

九、Windows 系统信息

systeminfo

可以获取:

Windows 版本
Build
系统架构
补丁
主机名
域信息
启动时间

系统架构也可以查看:

echo %PROCESSOR_ARCHITECTURE%

十、Windows 网络信息

查看网卡

ipconfig /all

可以看到:

IP 地址
DNS
Gateway
DNS Suffix
网卡
DHCP

查看路由

route print

路由表可以帮助判断:

当前服务器能够访问哪些网络。


查看 ARP

arp -a

用于查看当前 IPv4 邻居缓存。


查看监听端口与连接

netstat -ano

可以看到:

Local Address
Remote Address
State
PID

然后:

tasklist

通过 PID 判断对应程序。


十一、Windows 进程与服务

查看进程:

tasklist

查看详细信息:

tasklist /v

查看进程对应服务:

tasklist /svc

查看系统服务:

sc query

枚举服务时重点关注:

服务由谁运行
服务程序在哪里
服务启动类型
程序文件权限
程序目录权限
配置文件权限

十二、Windows 计划任务

查看计划任务:

schtasks /query /fo LIST /v

重点检查:

任务名称
运行账户
执行程序
执行脚本
触发条件
程序是否可写
脚本是否可写

核心逻辑:

高权限计划任务
      +
低权限可修改执行文件
      ↓
潜在权限提升风险

十三、Windows 启动项

可以查看启动程序:

wmic startup get command,caption

不过需要注意:

WMIC 已经在较新的 Windows 中逐渐弃用。

现代 Windows 环境也可以使用 PowerShell / CIM 等系统管理接口进行查询。

启动项检查的核心不是:

看到启动项 = 可以提权

而是:

高权限启动
     +
低权限用户能够修改启动程序
     ↓
安全风险

十四、winPEAS

winPEAS 属于:

Windows Privilege Escalation Enumeration Tool

它主要用于:

收集系统信息
检查权限
检查服务
检查计划任务
检查注册表
检查凭据痕迹
检查常见配置问题

需要注意:

winPEAS ≠ 自动提权工具

正确流程应该是:

winPEAS
   ↓
发现可疑配置
   ↓
人工分析
   ↓
确认是否真实存在风险
   ↓
授权环境验证

十五、Metasploit Local Exploit Suggester

Meterpreter 中可以使用:

post/multi/recon/local_exploit_suggester

用于:

根据当前 Session 和目标环境寻找可能适用的本地漏洞利用模块。

其输出可能包含:

Potentially Vulnerable?
Yes

但:

Potentially Vulnerable

不等于:

一定可以成功提权

它只能表示:

当前环境可能符合该模块的部分条件。

仍然需要确认:

Windows版本
补丁
架构
当前权限
模块要求
漏洞适用范围

十六、Meterpreter 中常用的信息查看

获得 Meterpreter Session 后:

getuid

查看当前身份。

sysinfo

查看系统信息。

进入 Windows Shell:

shell

Windows CMD 中文编码出现问题时:

chcp 65001

返回 Meterpreter 后可以继续进行系统枚举。


十七、Linux 提权

Linux 中最典型的权限提升目标:

普通用户
   ↓
root

与 Windows 一样:

Linux 提权首先应该进行系统枚举。

基本流程:

当前用户
   ↓
系统版本
   ↓
sudo
   ↓
SUID / SGID
   ↓
Capabilities
   ↓
Cron / Systemd Timer
   ↓
文件权限
   ↓
服务
   ↓
凭据
   ↓
Kernel / 软件漏洞

十八、Linux 当前用户

whoami

查看:

当前用户名

UID / GID

id

例如:

uid=1000(user)
gid=1000(user)
groups=1000(user)

可以判断:

UID
GID
用户组

十九、Linux 系统信息

查看 Kernel:

uname -a

查看发行版:

cat /etc/os-release

例如可以获得:

Ubuntu
Debian
CentOS
Arch Linux
Kernel Version
Architecture

二十、sudo 权限

Linux 提权中非常重要:

sudo -l

它用于查看:

当前用户允许通过 sudo 以什么身份执行哪些程序。

例如需要关注:

NOPASSWD
允许执行的程序
允许切换的用户
环境变量配置

二十一、SUID / SGID

Linux 文件权限中存在:

SUID
SGID

特殊权限。

SUID 的核心作用是:

程序运行时可以使用文件所有者的 Effective UID。

因此:

SUID
+
危险程序行为
+
错误配置

可能形成权限提升风险。

但是:

存在 SUID ≠ 存在漏洞

很多系统程序本身就需要合法使用 SUID。


二十二、Linux Capabilities

Linux Capabilities 将传统 root 权限拆分成更细粒度的能力。

例如:

CAP_NET_BIND_SERVICE
CAP_NET_ADMIN
CAP_SYS_ADMIN

因此在权限枚举过程中:

需要检查程序是否被授予了不合理的 Capability。


二十三、Cron / Systemd Timer

Linux 中常见自动任务包括:

cron
systemd timer

重点检查:

任务由谁执行
执行什么程序
调用什么脚本
低权限用户是否可以修改

逻辑与 Windows Scheduled Task 类似:

root 定时任务
      +
普通用户可修改脚本
      ↓
潜在权限提升风险

二十四、linPEAS

linPEAS 与 winPEAS 类似。

属于:

Linux Privilege Escalation Enumeration Tool

主要帮助枚举:

系统版本
用户
sudo
SUID
Capabilities
Cron
Systemd
服务
文件权限
敏感配置
凭据痕迹

同样:

linPEAS ≠ 自动提权

正确思路:

linPEAS
   ↓
发现问题
   ↓
人工分析
   ↓
验证

二十五、数据库相关权限提升

数据库与操作系统之间存在一个重要关系:

Database
    ↓
Database Process
    ↓
Operating System Account

数据库中的某些危险功能可能允许数据库服务器执行:

操作系统相关操作

但最终获得什么系统权限取决于:

数据库服务进程本身使用什么操作系统账户运行。


二十六、SQL Server 与 xp_cmdshell

SQL Server 并不是一定以:

SYSTEM

运行。

它可能使用:

虚拟账户
Network Service
域账户
自定义服务账户
其他服务账户

所以:

SQL Server = SYSTEM

这个理解是错误的。


xp_cmdshell

SQL Server 提供:

xp_cmdshell

它可以调用 Windows Command Shell 执行系统命令。

概念:

SQL Server
    ↓
xp_cmdshell
    ↓
Windows Command Shell
    ↓
OS Command

注意:

xp_cmdshell

并不是:

直接把命令交给 PowerShell

查看当前执行身份

授权实验环境中,可以使用无破坏性的:

EXEC master..xp_cmdshell 'whoami';

观察:

SQL Server

通过 xp_cmdshell 执行系统命令时实际使用什么 Windows 身份。


二十七、MySQL UDF

UDF:

User Defined Function

中文:

用户自定义函数。

MySQL 可以通过动态库扩展函数。

基本关系:

MySQL
  ↓
UDF
  ↓
动态库
  ↓
扩展函数

如果同时存在:

数据库高权限
插件目录权限错误
MySQL服务账户权限过高
危险动态库

可能产生系统安全风险。


二十八、plugin_dir

查看 MySQL 插件目录:

SHOW VARIABLES LIKE 'plugin_dir';

它表示:

MySQL 插件所在目录。

UDF / Plugin 相关问题需要同时考虑:

plugin_dir
数据库权限
文件系统权限
MySQL版本
动态库格式
服务账户权限

二十九、secure_file_priv

查看:

SHOW VARIABLES LIKE 'secure_file_priv';

secure_file_priv 主要限制:

LOAD DATA
SELECT ... INTO OUTFILE
LOAD_FILE()

等文件相关操作。

如果:

secure_file_priv = NULL

通常表示:

禁止相关文件导入/导出功能。

如果指定:

/var/lib/mysql-files/

表示:

文件操作被限制在指定目录。

因此:

secure_file_priv

主要控制:

文件导入 / 导出

不能简单理解成:

UDF 开关

三十、数据库提权的正确理解

不要认为:

数据库管理员
     =
操作系统 root/SYSTEM

更准确的是:

数据库权限
     ↓
数据库危险功能
     ↓
数据库服务账户
     ↓
操作系统权限

因此数据库安全测试时需要分别判断:

数据库用户权限
数据库功能
数据库配置
数据库服务账户
操作系统权限

三十一、哪些内容不属于提权?

以下内容虽然经常发生在提权之后,但严格来说不属于 Privilege Escalation:

添加隐藏账户
建立持久化
凭据提取
Pass-the-Hash
Golden Ticket
横向移动
Pivoting
内网穿透

它们分别更接近:

Persistence
Credential Access
Lateral Movement
Intranet Exploration

因此应该和“提权”分开学习。


三十二、蓝队如何防御提权

单纯禁止:

wget
curl
gcc
apt
yum
dnf

不能真正解决权限提升问题。

这些措施最多只是:

增加部分攻击操作成本。

真正应该关注:

最小权限原则
及时安装安全补丁
限制 sudo
检查 SUID / SGID
检查 Capabilities
服务使用低权限账户
保护计划任务
保护启动项
限制敏感目录写权限
限制服务文件修改权限
应用程序白名单
EDR
日志监控
网络出口控制
凭据保护

三十三、Privilege Escalation 最终总结

提权最重要的思维不是:

找 EXP
 ↓
运行
 ↓
root

而是:

            Low Privilege Shell
                    ↓
               Enumeration
                    ↓
        ┌───────────┼───────────┐
        ↓           ↓           ↓
    配置错误      软件漏洞      权限错误
        │           │           │
        ├── Service │           │
        ├── sudo    │           │
        ├── SUID    │           │
        ├── Task    │           │
        └── Files   │           │
        │           │           │
        └───────────┼───────────┘
                    ↓
                  验证
                    ↓
           Privilege Escalation
                    ↓
            root / Administrator
                 / SYSTEM

一句话总结:

Privilege Escalation 研究的是当前主机上的权限边界:已经获得低权限访问后,通过枚举系统、服务、文件权限、特殊权限、配置和漏洞,寻找从低权限安全上下文进入更高权限安全上下文的路径。

posted on 2026-09-30 10:38  心宇16969  阅读(14)  评论(0)    收藏  举报