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

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

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

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

​​​​​

▶ 信息收集

▶ 漏洞检测
初始立足点

权限提升 ➢ Windows权限提升 ➢ 未加引号服务路径漏洞利用(上) 🔥🔥🔥
横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.Windows权限提升

[1.1 Windows未加引号服务路径漏洞利用](#1.1 Windows未加引号服务路径漏洞利用)

[1.1.1 漏洞原理](#1.1.1 漏洞原理)

[1.1.1.1 CreateProcess函数介绍](#1.1.1.1 CreateProcess函数介绍)

1.CreateProcess函数原型

2.代码示例

3.与漏洞的关联

[1.1.1.2 攻击前提与思路](#1.1.1.2 攻击前提与思路)

1.漏洞利用前提

2.攻击思路

[1.1.1.3 路径解析顺序](#1.1.1.3 路径解析顺序)

[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)


1.Windows权限提升

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

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

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

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

1.1.1 漏洞原理

在Windows系统中,当服务对应的可执行文件路径++包含空格且未用引号包裹++ 时,系统在启动服务解析路径的方式存在缺陷,可能被攻击者利用来提升权限

当对一个服务的主目录或子目录**++++具有写入权限但无法替换其中的文件++++**时,可以利用这种攻击。

正如我们在之前的章节中学到的,每个Windows服务都映射到一个在服务启动时运行的可执行文件。如果该文件的路径包含一个或多个空格,并且没有用引号括起来,那么它可能成为一个权限提升攻击的机会。


1.1.1.1 CreateProcess函数介绍

CreateProcess函数:是Windows系统中用于创建新进程 的核心 API 函数,负责启动外部程序并配置其运行环境。

1.CreateProcess函数原型
参数名称 参数类型 关键说明
lpApplicationName LPCSTR 程序主路径 。指定可执行文件的完整路径。若为空,则程序路径由lpCommandLine提供
lpCommandLine LPSTR 命令行参数字符串 。通常包含:程序路径及启动参数。这是未加引号路径漏洞的关键参数
lpProcessAttributes LPSECURITY_ATTRIBUTES 指向新进程安全属性 的指针,控制句柄继承性。通常传入NULL
lpThreadAttributes LPSECURITY_ATTRIBUTES 指向新线程安全属性 的指针。通常传入NULL
bInheritHandles BOOL 句柄继承标志 。TRUE表示子进程继承父进程的可继承句柄。常设为FALSE
dwCreationFlags DWORD 进程创建标志。用于控制创建方式(如CREATE_NEW_CONSOLE、CREATE_NO_WINDOW)。
lpEnvironment LPVOID 指向新环境变量块 的指针。为NULL时,子进程继承父进程环境
lpCurrentDirectory LPCSTR 新进程的当前工作目录为NULL时,继承父进程工作目录
lpStartupInfo LPSTARTUPINFO 指向 STARTUPINFO 结构的指针,必须初始化。配置主窗口外观及标准句柄。
lpProcessInformation LPPROCESS_INFORMATION 指向 PROCESS_INFORMATION 结构的指针,用于接收新进程的句柄和ID信息
2.代码示例

以下是使用CreateProcess函数启动一个外部应用程序(例如notepad.exe)的简单示例:

3.与漏洞的关联

如果CreateProcess函数的第一个参数lpApplicationName在解析包含空格的未加引号路径 时,会错误地将空格前的部分识别为程序名,剩余部分当作参数,从而导致路径劫持 。这是未加引号服务路径漏洞得以存在的根本技术原因。

例如: 当服务的启动路径是(如C:\Program Files\MyApp\app.exe未被引号包裹时,该函数会按以下方式解析:

  • 从左到右解析路径: CreateProcess函数会从路径字符串的左侧开始解析,直到遇到第一个空格。
  • 遇到空格时停止:当函数遇到路径中的空格时,它会认为路径到空格处为文件名。剩余部分会被认为是参数。

错误解析示例C:\Program Files\MyApp\app.exe

  • 系统会尝试执行:C:\Program.exe

  • 并将Files\MyApp\app.exe视为参数


1.1.1.2 攻击前提与思路

🔧 攻击实施步骤:

步骤 操作 说明
1 识别未加引号的服务路径 使用sc query或PowerShell获取服务配置
2 检查目录写入权限 确定可在哪个级别目录植入恶意文件
3 创建恶意可执行文件 命名与系统尝试执行的文件名一致
4 放置到合适目录 等待服务重启或系统重启
5 触发执行 恶意代码以高权限运行
1.漏洞利用前提

枚举并确认目标服务启动路径包含空格且未使用引号包裹

2.攻击思路

①创建恶意程序 编写恶意可执行文件,并将其名称设置为系统在解析路径时会优先尝试执行的对应文件名 (如 Program.exeMy.exe 等)。

②放置恶意程序

将该文件放置于漏洞路径解析顺序中某个您具有++写入权限++的对应目录 (例如 C:\C:\Program Files\ 或服务的子目录)。

③触发执行

当服务重启或系统重启时,系统会按照解析顺序优先执行您的恶意程序 ,而非原始服务程序。恶意程序将以服务账户(通常是高权限的 LocalSystem)的身份运行,从而实现权限提升。

⚠️ 关键概念说明:

LocalSystem账户

  • Windows内置的系统级账户

  • 拥有最高权限,可访问几乎所有系统资源

  • 常用于运行操作系统核心服务

  • 不会出现在常规用户列表中


1.1.1.3 路径解析顺序

接下来,通过一个示例来展示。未加引号的服务路径是:

C:\Program Files\My Program\My Service\service.exe

当Windows启动服务时,由于路径中存在空格,它将按照以下顺序尝试启动可执行文件。

bash 复制代码
1. C:\Program.exe
2. C:\Program Files\My.exe
3. C:\Program Files\My Program\My.exe
4. C:\Program Files\My Program\My Service\service.exe  ← 正确文件

假设攻击者对C:\Program Files\My Program\目录有写入权限:

  • 原始路径C:\Program Files\My Program\My Service\service.exe

  • 系统第三次尝试执行C:\Program Files\My Program\My.exe

  • 攻击者操作 :在该目录创建名为My.exe的恶意程序

  • 结果 :服务启动时,优先执行 My.exe的恶意程序,获得与服务相同的权限(实现提取)

目录权限分析:

  • **C:\** 或 *C:\Program Files* → 标准用户通常无写入权限

  • 软件安装子目录 → 可能因配置不当权限过于宽松

  • 攻击可行性:通常只有软件主目录可能被利用

🛡️ 漏洞本质:

该漏洞本质上是路径解析顺序目录权限控制不当 共同作用的结果。攻击者通过"提前拦截 "系统对可执行文件的查找过程,实现权限提升


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

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

相关推荐
MyBFuture2 小时前
编程实战:相机连接与参数设置指南
windows·c#·visual studio·vision pro·联合编程
Don't Look Down2 小时前
windows 脱机安装wsl 及 Docker Desktop 集成
windows·docker·容器
开开心心就好2 小时前
免费批量抠图软件大模型,复杂倒影精准去除
网络·windows·pdf·计算机外设·电脑·硬件架构·材料工程
Blue桃之夭夭2 小时前
【工具教程】Windows 下十六进制编辑器 HxD 安装与使用指南(附下载链接)
windows·编辑器
qq_278787772 小时前
Windows 本地 EasySwoole 项目(Docker Desktop 挂载运行+热加载配置)
windows·docker·容器·easyswoole
Yvonne爱编码13 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python
南宫码农13 小时前
我的电视 - Android原生电视直播软件 完整使用教程
android·开发语言·windows·电视盒子
哈基米~南北绿豆15 小时前
虚拟机体验:在Windows/Mac上运行鸿蒙PC开发环境
windows·macos·harmonyos
青岑CTF17 小时前
攻防世界-Php_rce-胎教版wp
开发语言·安全·web安全·网络安全·php