目标:把 Windows 全套提权讲到「至少能说出 80%」的自评标准。
0x01 系统认知:账号、权限与服务
哈希与验证:Windows 用哈希校验密码,同明文同哈希——Pass-the-Hash 的前提(无需明文)。
ACL/ACE:文件、文件夹、注册表都是”资源”,ACL 里的 ACE 决定谁能做什么。提权本质:把低权限令牌换成 SYSTEM/Administrator 级。
账号族谱:
- 本地 Administrator:常被禁用;管理员组成员操作仍受 UAC 限制,需”以管理员身份运行”;
- 服务账号(
NETWORK SERVICE等):SQL Server/IIS 等微软服务安装时自动创建,无隶属组、无交互登录权限,权限配置异常干净; - 服务默认以 SYSTEM 权限运行,服务背后是 .exe,控制它指向的文件/路径即间接拿到 SYSTEM。
0x02 内核提权:最有效也最危险
查缺失补丁 → 对号找内核漏洞:
systeminfo # 拉全补丁列表
# 配合提权辅助脚本(wes/beRoot 类)比对未修复的内核 CVE
# GitHub 上现成编译好的 exp,对应补丁号直接用
- 成功率最高,但有崩溃风险(蓝屏/宕机打草惊蛇),常”第一次失败第二次成功”;
- 别留作最后手段:服务类等常规方法失败率也高;
- 拿到 SYSTEM 先导出管理员哈希/明文,做权限维持。
0x03 服务类提权四板斧
前提是低权限用户对服务某环节有写权限,排查用 accesschk:
① 服务路径劫持(未加引号路径):C:\Program Files\My Service\svc.exe 未加引号时,Windows 依次尝试 C:\Program.exe、C:\Program Files\My.exe……可写层级放同名恶意 exe 即被 SYSTEM 拉起。
② DLL 劫持:服务按搜索顺序加载 DLL,DLL 继承服务的执行权限;在靠前的可写目录(临时目录常可写)投同名恶意 DLL,服务重启即上线。
③ 注册表提权:HKLM\SYSTEM\CurrentControlSet\Services 部分键低权限可写,改 ImagePath 指向恶意程序;AlwaysInstallElevated 开启时普通用户跑 MSI 即 SYSTEM。
④ 任务计划/自启动(AutoRun):自启项脚本(如 cleanup.ps1)可写就替换。
改服务配置路径比替换 exe 本体隐蔽;落地优先 ProgramData(默认隐藏、Everyone 可写)。
0x04 凭证滥用与权限维持
- SAM 导出:导出
SAM+SYSTEMhive 离线恢复 NTLM 哈希 → Pass-the-Hash 横向,不需要明文; - 凭证搜索:配置文件、注册表、运维脚本里 grep 密码成本低风险小(读 config.php 拿凭据 100% 可复现同理);
- 维持:新管理员账号、计划任务、服务、启动项,按隐蔽需求选。
0x05 实验环境搭建(复现清单)
- Win10 虚拟机 + 高权限账号(
IEUser一类 Administrators 组成员)跑漏洞环境 setup 脚本(含 tools.zip); - 刻意构造十几种典型漏洞:DLL 劫持、未加引号路径、注册表、任务计划、AutoRun 等;
- Kali 与靶机互通;0day/exp 编译文件先关杀软(误报);
- 验证口径:
whoami /groups出现 SYSTEM 而非 Administrator 组。