**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。
🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬
🌌 立即前往 👉晖度丨安全视界🚀
▶ 信息收集
▶ 漏洞检测
▶ 初始立足点▶ 权限提升 ➢ Windows权限提升 ➢ 滥用Windows服务提权(上) 🔥🔥🔥
▶ 横向移动▶ 报告/分析
▶ 教训/修复
目录
[1.1 滥用Windows服务提权](#1.1 滥用Windows服务提权)
[1.1.1 Windows服务简介](#1.1.1 Windows服务简介)
[1.1.1.1 Windows程序 vs. Windows服务](#1.1.1.1 Windows程序 vs. Windows服务)
[1. 普通桌面程序(非服务)](#1. 普通桌面程序(非服务))
[2. Windows服务(后台服务)](#2. Windows服务(后台服务))
[1.1.1.2 三种服务滥用攻击方式](#1.1.1.2 三种服务滥用攻击方式)
[1.1.2 劫持服务二进制文件攻击实战](#1.1.2 劫持服务二进制文件攻击实战)
[1.1.2.1 攻击场景](#1.1.2.1 攻击场景)
[1.1.2.2 服务侦察与发现](#1.1.2.2 服务侦察与发现)
[1.1.2.3 枚举服务二进制权限](#1.1.2.3 枚举服务二进制权限)
[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)
1.Windows权限提升
在渗透测试中,我们通常以非特权用户 身份获得初始立足点。但为了深入探测(如搜索敏感信息、提取密码哈希等),往往需要提升至管理员权限( 比如:使用Mimikatz提取密码哈希**),** 这个过程就是特权提升。
📊 权限提升三大路径: 本文开始介绍:++利用windows服务漏洞进行权限提升++。
| 阶段 | 目标 | 关键方法 |
|---|---|---|
| 1. 枚举Windows | 获取系统情报 | 手动搜索 + 自动化工具 |
| 2. 滥用Windows服务 | 攻击服务漏洞 | 服务配置缺陷、权限滥用 |
| 3. 利用其他组件 | 扩大攻击面 | 计划任务、系统漏洞利用 |
1.1 滥用Windows服务提权
1.1.1 Windows服务简介
Windows服务: 是在后台长期运行的程序,由服务控制管理器(SCM) 统一管理,类似于Unix/Linux系统中的守护进程。
| 特性 | 描述 |
|---|---|
| 管理方式 | 服务管理工具、PowerShell、sc.exe命令行等工具进行管理。 |
| 运行账户 | 使用LocalSystem(NT AUTHORITY\SYSTEM 、BUILTIN\Administrators)、Network Service、Local Service、自定义账户等来运行其自身的服务。 |
| 安全重要性 | 滥用Windows服务可用于权限提升攻击 |
1.1.1.1 Windows程序 vs. Windows服务
| 类型 | 运行账户选择 | 说明 |
|---|---|---|
| 普通Windows程序 | 使用当前登录用户的权限 | 启动时无需选择服务账户,直接继承启动它的用户权限 |
| Windows服务 | 必须配置特定的服务账户 | 安装时必须指定运行账户,独立于登录用户 |
📝 详细解释:
1. 普通桌面程序(非服务)
当在Windows上双击一个.exe文件或从开始菜单启动程序时:
-
✅ 不选择服务账户
-
✅ 自动使用++当前登录用户的身份和权限++运行
-
✅ 如果当前用户是标准用户,程序就是标准权限
-
✅ 如果当前用户是管理员,程序可以请求提升权限**(UAC弹窗)**
例如 :您以用户Alice登录,启动记事本,记事本就以Alice的权限运行。
2. Windows服务(后台服务)
服务是一种特殊的程序,由服务控制管理器(SCM) 管理:
-
✅ 必须预先配置运行账户
-
✅ 配置在服务安装时设置,存储在注册表中
-
✅ 独立于任何登录用户,即使无人登录也能运行
-
✅ 常见的服务账户选项:
| 服务账户类型 | 权限级别 | 典型用途 |
|---|---|---|
| LocalSystem | 🟥 最高(SYSTEM) | 系统核心服务 |
| Local Service | 🟨 较低(本地受限) | 不需要网络访问的服务 |
| Network Service | 🟧 中等(网络受限) | 需要网络通信的服务 |
| 自定义用户账户 | 🟩 按账户权限 | 特定业务应用 |
类比理解:
-
普通程序 👉 像您亲手做的任务,用您自己的权限
-
Windows服务 👉 像您雇佣的工人,可以指定他使用哪种工作证(账户)
安全意义:
正是因为服务可以配置为高权限账户运行 (如SYSTEM),而且长期后台运行 ,才使得我们之前讨论的服务漏洞(如二进制劫持)如此危险------攻击者只需替换文件,下次服务重启就会以高权限执行恶意代码。
3.常见问题
Q:我可以用管理员权限运行普通程序吗?
A :可以,通过**"以管理员身份运行"** ,但这只是临时提升权限,与服务账户是不同概念。
Q:普通程序能像服务一样在后台运行吗?
A :技术上可以(如使用计划任务),但这不是标准的"Windows服务",也不使用服务账户体系。
Q:为什么我的程序不能直接选择"以SYSTEM运行"?
A :SYSTEM是受保护的内置账户,只有通过服务机制或特殊漏洞利用才能获得此权限。
简单说:只有Windows服务才需要预先配置服务账户,普通桌面程序直接使用当前用户权限运行。 这个区别是理解Windows权限提升攻击的关键基础!
1.1.1.2 三种服务滥用攻击方式
本系列文章主要介绍其中三种通过滥用服务来提权。
| 攻击类型 | 核心原理 | 关键条件 |
|---|---|---|
| 劫持服务二进制文件 | 替换可执行文件 | 对服务二进制文件有写入权限 |
| 劫持服务DLL文件 | 替换依赖的DLL | DLL加载路径不安全 |
| 利用未加引号的服务路径 | 路径解析漏洞 | 服务路径未用引号包裹且存在空格 |
1.1.2 劫持服务二进制文件攻击实战
1.1.2.1 攻击场景
软件开发人员安装服务时权限配置不当 ,使普通用户(Users组)对服务二进制文件拥有完全控制权(读写权限)。
1.攻击链流程

2.攻击步骤详解
-
侦察阶段:攻击者发现某个服务的二进制文件权限设置存在漏洞
-
替换阶段 :将原始服务程序替换为恶意程序
-
触发阶段:
-
手动重启服务
-
或等待系统重启(若服务设置为自动启动)
-
-
提权阶段 :恶意程序以服务账户(通常是LocalSystem)权限执行
3.攻击利用的关键要点
-
权限配置错误是根本原因
-
服务重启机制是攻击触发器
-
LocalSystem账户提供最高权限执行环境
4.攻击实操流程图

1.1.2.2 服务侦察与发现
我们的目标攻击主机是CLIENTWK220,我们先通过RDP远程桌面连接(输入用户名dave和密码)到这台主机,开始获取本主机**"所有已安装的Windows服务的列表"。**
1.获取服务列表
可选择各种方法,如:
①GUI中的services. msc,如下图:


②Get-Service:使用PowerShell查询
③Get-CimInstance(取代Get-WmiObject):使用PowerShell查询,这里使用此方法。
bash
# 🎯 查询所有运行中的服务:
> Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'}
| 命令组件 | 作用 | 备注 |
|---|---|---|
| Get-CimInstance | 查询WMI对象 | 替代Get-WmiObject |
| win32_service | 服务信息类 | 包含服务的详细数据 |
| Select | 选择关键字段列 | Name、State、PathName |
| Where-Object | 过滤条件 | 只显示"Running"状态 |

🚩 关键发现:
-
XAMPP服务异常路径 :Apache和MySQL安装在
C:\xampp\而非C:\Windows\System32 -
风险提示:用户自己安装的服务往往权限配置不当,易成为攻击目标
⚠️ 注意 :非交互式登录(如WinRM) 或绑定shell 来++查询服务++ 时,使用Get-CimInstance和Get-Service查询**++非管理员用户++的服务** 时会出现**"权限被拒绝"的错误** 。使用交互式登录如RDP,可以解决这个问题。
2.XAMPP服务路径异常安全分析
发现XAMPP服务异常路径,用户自定义安装的服务往往权限配置不当,易成为攻击目标。
| 对比维度 | 标准安全情况 | 当前风险情况 |
|---|---|---|
| 安装路径 | C:\Windows\System32\(系统受保护目录) |
C:\xampp\(用户自定义目录) |
| 安装类型 | 系统级标准安装 | 用户级自定义安装 |
| 权限控制 | 严格系统ACL保护 | 依赖用户设置的松散权限 |
| 管理责任 | 操作系统厂商 | 软件开发/部署人员 |
🔗 攻击链条简化
bash
非标准安装路径 → 宽松权限配置 → 二进制文件可被替换 → 服务重启执行恶意代码 → 系统权限沦陷
🛡️ 关键安全启示:
对于系统管理员:
-
📍 监控非标准路径服务 :定期审查不在
System32下的服务二进制 -
🔐 严格权限审核:确保服务文件仅有必要的最小权限
-
📋 建立软件安装规范:限制用户自定义安装高权限服务
对于开发人员:
-
⚙️ 遵循最小权限原则:服务账户避免使用SYSTEM等高权限
-
📁 使用受保护目录:或将自定义目录纳入安全监控范围
-
🔧 明确权限需求:精准配置所需权限,避免"完全控制"
💎 总结要点
"非常规路径 + 宽松权限 = 高危攻击面"
1.1.2.3 枚举服务二进制权限
接下来,枚举这两个服务二进制文件的权限。可选择:
- 传统的icacls程序
- PowerShell的Get-ACL。
在这个例子中将使用icacls,它既可在PowerShell中使用,也可在Windows命令行中使用。


📊 权限对比:
| 对比维度 | Apache httpd.exe | MySQL mysqld.exe |
|---|---|---|
| 文件路径 | C:\xampp\apache\bin\httpd.exe |
C:\xampp\mysql\bin\mysqld.exe |
| 关键用户组 (以dave登录) | BUILTIN\Users | BUILTIN\Users |
| 权限状态 | 🔒 读取和执行 (RX) | 🚨 完全控制 (F) |
| 权限含义 | - R:读取文件内容 - X:执行文件 | - F:完全控制 - R:读取 - W:写入/修改 - X:执行 - D:删除 |
| 继承标记 | 未明确(可能为默认) | 无(I)标记(手动设置) |
| 攻击可行性 | ❌ 不可行 (无法替换文件) | ✅ 完全可行 (可直接替换为恶意程序) |
| 风险等级 | 🟢 低风险 | 🔴 高危风险 |
| 安全影响 | 用户仅能运行合法程序 | 用户可植入任意恶意代码 |
🔑 关键权限说明
-
F:完全控制(读、写、执行、删除)
-
RX:读取和执行
-
(I) :继承标记(本例中无此标记 ,说明权限是手动设置的)
在 icacls 的输出中,权限被标记为 I 时:表示该权限是继承的,但 I 并不是一个权限掩码,只是一个表示继承状态的标记。

欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论
每一份支持,都是我持续输出的光。
