云计算百科
云计算领域专业知识百科平台

⓫⁄₁₂ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 未加引号服务路径漏洞利用(下)

          郑重声明:本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。

🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论 | 保持连接💬

🌌 立即前往 👉晖度丨安全视界🚀​

​​​​​

▶ 信息收集  ▶ 漏洞检测 ▶ 初始立足点  ▶ 权限提升 ➢ Windows权限提升 ➢ 未加引号服务路径漏洞利用(下)🔥🔥🔥 ▶ 横向移动 ▶ 报告/分析 ▶ 教训/修复

目录

1.Windows权限提升

1.1 Windows未加引号服务路径漏洞利用

1.1.2 未加引号服务路径漏洞实践

1.1.2.1 枚举漏洞服务

1. 服务枚举

2.验证启动/停止该服务的权限

1.1.2.2 路径权限检查

1.1.2.3 构建与部署恶意程序

1.1.2.4 服务启动与攻击验证

1.1.3 使用自动化工具PowerUp.ps1利用漏洞

1.1.3.1 恢复原始服务功能

1.1.3.2 使用自动化工具 PowerUp.ps1 识别与利用漏洞

1.1.4 未加引号服务路径漏洞利用全流程总结

欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论


1.Windows权限提升

      在渗透测试中,我们通常以非特权用户身份获得初始立足点。但为了深入探测(如搜索敏感信息、提取密码哈希等),往往需要提升至管理员权限(比如:使用Mimikatz提取密码哈希),这个过程就是特权提升。

📊 权限提升三大路径:本文开始介绍:Windows未加引号服务路径漏洞利用。

阶段目标关键方法
1. 枚举Windows 获取系统情报 手动搜索 + 自动化工具
2. 滥用Windows服务 攻击服务漏洞 服务配置缺陷、权限滥用
3. 利用其他组件 扩大攻击面 计划任务、系统漏洞利用

1.1 Windows未加引号服务路径漏洞利用

1.1.2 未加引号服务路径漏洞实践

1.1.2.1 枚举漏洞服务

      现在对这个漏洞原理有基本了解,让我们实践一下。以RDP连接到CLIENTWK220(用户名steve ;密码securityIsNotAnOption++++++),然后开始枚举正在运行和停止的服务。

1. 服务枚举

      使用PowerShell或WMIC工具列举系统服务,重点关注:

  • 非Windows目录(因为普通用户没有权限写入)
  • 路径包含空格未加引号的服务(可做漏洞利用)

①PowerShell:

      上图显示:一个名为GammaService的停止服务。它未加引号的服务二进制路径包含多个空格,因此可能容易受到此攻击向量的影响。

或②WMIC工具:(cmd环境)

wmic service get name,pathname | findstr /i /v "C:\\Windows\\\\" | findstr /i /v """

命令部分功能说明
wmic service get name,pathname 查询所有Windows服务的名称和可执行文件路径
findstr /i /v "C:\\Windows\\"

第一次过滤:排除系统目录(C:\\Windows\\)下的服务,聚焦于第三方服务

findstr /i /v """ 第二次过滤:筛选出路径未加引号包裹的服务("""匹配带引号的路径)
/i 忽略大小写
/v 反向匹配(显示不包含指定字符串的行)

      此命令仅列出可能受到攻击向量影响的服务:GammaService,及其路径。

注意:wmic工具(Windows Management Instrumentation Command-line)在某些较新的Windows版本中已经不再默认安装或被弃用。如果需使用它,需要额外安装它。

2.验证启动/停止该服务的权限

      目前,是以用户steve的身份登录的。在继续之前,检查是否可以以steve的身份使用Start-Service和Stop-Service启动和停止已识别的服务GammaService,以确认攻击可行性。

      从以上的输出可看出,用户steve具有启动和停止GammaService的权限。由于可以自己重新启动这个服务,所以不需要发出重启命令来重新启动服务。


1.1.2.2 路径权限检查

      接下来,列出Windows用于尝试定位服务可执行文件的路径(红框部分)。

      使用icacls分别检查这些路径的访问权限,从前两个路径开始:

权限检查:用户 steve(属于 BUILTIN\\Users、NT AUTHORITY\\AUTHENTICATED Users组)无写入(W)权限。接下来,开始检查第三个选项的路径(C:\\Program Files\\Enterprise Apps):

权限检查:用户 steve 对该路径拥有写入(W)权限!

第四个路径不用检查,因为它代表了服务二进制文件本身。

攻击部署:

  • 将恶意可执行文件命名为 Current.exe
  • 放置于具有写入权限的目录:C:\\Program Files\\Enterprise Apps\\
  • 当服务启动时,系统会优先执行此恶意文件(因路径解析顺序),从而触发权限提升。

1.1.2.3 构建与部署恶意程序

      我们可通过前文中编译“服务二进制劫持”部分的C代码编译的adduser.exe文件作为恶意程序。

简要回顾下,adduser.c源代码:

编译后变成adduser.exe:

在Kali上,在可执行文件的目录中启动Python3 Web服务器以便提供它。

详细步骤如下:

①架设传输服务器

  • 在Kali攻击机上启动 Python3 HTTP服务器,为恶意程序提供下载。

②下载至目标机

  • 在目标Windows机器上,以steve用户身份使用类似以下命令下载文件,并直接保存为攻击所需的名称 Current.exe:

③放置到漏洞路径

  • 将Current.exe复制到已确认具有写入权限的目录:C:\\Program Files\\Enterprise Apps\\。

至此,当目标服务重启时,系统将优先执行恶意Current.exe,从而完成权限提升攻击。


1.1.2.4 服务启动与攻击验证

启动服务触发攻击:

  • 使用命令启动目标服务:

    > Start-Service GammaService

  • 系统按解析顺序优先执行恶意程序 C:\\Program Files\\Enterprise Apps\\Current.exe,并将剩余路径部分 Version\\GammaServ.exe 作为参数传递。

  • 再次强调:一旦服务启动,我们的文件Current.exe将以与服务启动相同的权限执行。通常,以LocalSystem服务账户权限来执行Current.exe。

结果分析:

  • 服务启动报错

    由于恶意程序 Current.exe 无法正确处理原始服务的参数:Version\\GammaServ.exe是剩余参数。这个错误源于交叉编译的C代码不接受原始服务二进制路径的剩余参数,导致Windows报告服务启动失败。

  • 攻击成功执行

    尽管服务状态异常,但恶意程序已以LocalSystem权限完成执行,成功创建了管理员账户 dave2,并加入了管理员组administrators,实现提权!!!


1.1.3 使用自动化工具PowerUp.ps1利用漏洞

      以上是手动利用的方式。接下来,尝试使用自动化工具PowerUp.ps1识别未加引号服务启动路径漏洞实现提取。

1.1.3.1 恢复原始服务功能

恢复步骤:

  • 停止服务:使用 Stop-Service 命令停止目标服务。

  • 删除恶意文件:移除放置在漏洞路径下的恶意程序 Current.exe。

  • 服务恢复:此后启动服务时,系统将重新正常执行原始服务二进制文件 GammaServ.exe,恢复原有功能。


1.1.3.2 使用自动化工具 PowerUp.ps1 识别与利用漏洞

利用步骤:

  • 下载并导入 PowerUp.ps1 脚本。(使用iwr下载PowerUp.ps1,将其导入到PowerShell会话中。然后,将ExecutionPolicy设置为Bypass,执行该工具。)

  • 检测漏洞:运行 Get-UnquotedService 命令,自动识别系统中存在未加引号服务路径漏洞的服务(如 GammaService)。

  • 自动化利用:使用 Write-ServiceBinary 命令自动创建并放置恶意二进制文件到相应目录,默认添加本地管理员用户(如 john)。然后重启服务GammaService,完成权限提升。

    > Write-ServiceBinary -Name 'GammaService' -Path "C:\\Program Files\\Enterprise Apps\\Current.exe"

  • 验证攻击结果:PowerUp.ps1自动化工具的默认行为是创建名为john的新本地用户,密码为Password123!。此外,该用户被添加到本地Administrators组。


  • 1.1.4 未加引号服务路径漏洞利用全流程总结

    1. 漏洞识别

    • 发现服务可执行文件的 路径包含空格且未用引号包裹。

    • 理解 Windows 会按空格分段、从左至右尝试执行的解析逻辑。

    2. 条件分析与准备

    • 检查路径中各前置目录的写入权限,找到可放置恶意文件的位置。

    • 确认当前用户具有重启目标服务的权限。

    3. 攻击实施

    • 将恶意可执行文件命名并放置到权限允许的对应目录中。

    • 重启服务,触发恶意程序以 LocalSystem 等高权限身份执行。

    4. 自动化利用(PowerUp.ps1)

    • Get-UnquotedService:自动扫描并列出存在漏洞的服务。

    • Write-ServiceBinary:自动生成并部署恶意程序,完成权限提升。

    5. 恢复与清理

    • 停止服务、删除恶意文件,即可恢复服务的原始功能。

    核心要点:该漏洞利用依赖于 路径解析缺陷 与 不当的目录权限配置 共同作用,通过“路径劫持”实现权限提升。


    欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论

    每一份支持,都是我持续输出的光。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » ⓫⁄₁₂ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 未加引号服务路径漏洞利用(下)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!