⓫⁄₇ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 滥用Windows服务提权(上)

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

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

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

​​​

▶ 信息收集

▶ 漏洞检测
初始立足点

权限提升 ➢ Windows权限提升 ➢ 滥用Windows服务提权(上) 🔥🔥🔥
横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.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服务(后台服务))

3.常见问题

[1.1.1.2 三种服务滥用攻击方式](#1.1.1.2 三种服务滥用攻击方式)

[1.1.2 劫持服务二进制文件攻击实战](#1.1.2 劫持服务二进制文件攻击实战)

[1.1.2.1 攻击场景](#1.1.2.1 攻击场景)

1.攻击链流程

2.攻击步骤详解

3.攻击利用的关键要点

4.攻击实操流程图

[1.1.2.2 服务侦察与发现](#1.1.2.2 服务侦察与发现)

1.获取服务列表

2.XAMPP服务路径异常安全分析

[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运行"?

ASYSTEM是受保护的内置账户,只有通过服务机制或特殊漏洞利用才能获得此权限。

简单说:只有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 并不是一个权限掩码,只是一个表示继承状态的标记。


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

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

相关推荐
刘婉晴3 小时前
【kali渗透测试】内网横向渗透横向移动基础
网络安全·渗透测试
枫眠QAQ15 小时前
hackthebox Cicada靶机
安全·web安全·网络安全
unable code15 小时前
磁盘取证-[第十章][10.1.2 磁盘取证方法]磁盘取证1
网络安全·ctf·misc·1024程序员节·内存取证
啥都想学点15 小时前
kali 基础介绍(CredentialAccess——凭证访问)
安全·网络安全
qife12216 小时前
CVE-2026-21962漏洞利用工具:Oracle WebLogic代理插件未授权RCE检测与利用
数据库·网络安全·oracle·渗透测试·weblogic·cve-2026-21962
大方子18 小时前
【PolarCTF】bluetooth test
网络安全·polarctf
LuminescenceJ19 小时前
GoEdge 开源CDN 架构设计与工作原理分析
分布式·后端·网络协议·网络安全·rpc·开源·信息与通信
大方子1 天前
【PolarCTF】$$
网络安全·polarctf
大方子1 天前
【PolarCTF】LSB
网络安全·polarctf