**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。
🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬
🌌 立即前往 👉晖度丨安全视界🚀
▶ 信息收集
▶ 漏洞检测
▶ 初始立足点▶ 权限提升 ➢ Windows权限提升 ➢ 未加引号服务路径漏洞利用(下)🔥🔥🔥
▶ 横向移动▶ 报告/分析
▶ 教训/修复
目录
[1.1 Windows未加引号服务路径漏洞利用](#1.1 Windows未加引号服务路径漏洞利用)
[1.1.2 未加引号服务路径漏洞实践](#1.1.2 未加引号服务路径漏洞实践)
[1.1.2.1 枚举漏洞服务](#1.1.2.1 枚举漏洞服务)
[1. 服务枚举](#1. 服务枚举)
[1.1.2.2 路径权限检查](#1.1.2.2 路径权限检查)
[1.1.2.3 构建与部署恶意程序](#1.1.2.3 构建与部署恶意程序)
[1.1.2.4 服务启动与攻击验证](#1.1.2.4 服务启动与攻击验证)
[1.1.3 使用自动化工具PowerUp.ps1利用漏洞](#1.1.3 使用自动化工具PowerUp.ps1利用漏洞)
[1.1.3.1 恢复原始服务功能](#1.1.3.1 恢复原始服务功能)
[1.1.3.2 使用自动化工具 PowerUp.ps1 识别与利用漏洞](#1.1.3.2 使用自动化工具 PowerUp.ps1 识别与利用漏洞)
[1.1.4 未加引号服务路径漏洞利用全流程总结](#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环境)
bash
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 服务启动与攻击验证
启动服务触发攻击:
-
使用命令启动目标服务:
bash> 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,完成权限提升。bash> 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. 恢复与清理
- 停止服务、删除恶意文件,即可恢复服务的原始功能。
核心要点 :该漏洞利用依赖于 路径解析缺陷 与 不当的目录权限配置 共同作用,通过"路径劫持"实现权限提升。
欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论
每一份支持,都是我持续输出的光。
