白 - 权限提升和漏洞利用技巧

发布时间 2023-03-22 19:13:33作者: zha0gongz1

Windows服务

1.不安全的服务文件权限或路径

基本原理

Windows服务是一种在后台运行的计算机程序,它在概念上类似于Unix守护进程。

每个Windows服务都将其可执行文件的路径存储在称为BINARY_PATH_NAME的变量中。当启动服务时,会检查此变量并执行其下设置的.exe文件。

步骤

前提条件:Windows服务必须启用第3点权限,并且当前用户有启动或停止服务权限,否则必须等待系统重启才能执行恶意攻击载荷。

  • 1.检查目标系统中的所有服务
  • 2.枚举服务的所有权限集
  • 3.查找SERVICE_ALL_ACCESSSERVICE_CHANGE_CONFIG是否已启用(这些权限允许用户修改服务配置和 bin 路径)
  • 4.查询该服务以检查该服务是否以更高的权限运行
  • 5.可使用命令或恶意文件更改服务的 BINARY_PATH_NAME (binpath)
  • 6.刷新或启动服务并获得更高权限shell

实操

使用 PowerUp脚本查找错误配置,枚举机器服务寻找打开了 binpath 的服务。

<#返回当前用户可以写入服务的路径或其配置的服务#>
powershell -ep bypass

.\powerup.ps

Get-ModifiableServiceFile

找到了一个名为“daclsvc”的服务,为避免工具误报,可使用Accesschk工具再次检查此服务以确认它确实设置了SERVICE_ALL_ACCESSSERVICE_CHANGE_CONFIG权限。

不难看出,有启动 (service_start)权限 、停止权限,也有权更改服务“daclsvc”的可执行文件路径的权限

进一步查看一下该服务以何种权限运行

注意:大多数情况下,Windows会以 SYSTEM 或管理员权限运行所有服务


以本地系统权限运行

利用这个错误配置,可以使用scservice control(默认安装)来更改此服务的可执行文件路径

可将其设置为反弹shell的可执行文件路径。再次使用sc查询以检查设置的新路径是否正确

配置无误后,使用net(默认安装)启动此服务即可获得 SYSTEM 权限的shell

服务已运行

2.不安全的服务文件

基本原理

可执行文件是包含可以由操作系统执行的机器码指令构成的文件,可以是特定于平台的,也可以是跨平台

步骤

前提条件:服务的 .exe(二进制文件)权限是可写的或启用FILE_ALL_ACCESS权限以及启动/停止服务的权限

  • 1.枚举所有服务以检查全部原始.exe(二进制文件)是否可写
  • 2.使用恶意文件替换或更改原始二进制文件
  • 3.刷新或启动该服务,该服务将执行其 .exe 并以 SYSTEM 权限运行上面写入的任何内容

实操

使用 winPEAS 来枚举所有可执行文件权限配置错误的服务。

在 winpeas 探测结果中,我们可以看到filepermsvc服务的原始 .exe 为任意用户设置了AllAccess权限。简单来说就是“系统上的所有用户都可以对该文件进行任何操作(r、w、x)”,再次使用accesschk工具确认,这些自动化工具在加固的系统运行时可能触发告警

利用错误配置,只需修改脚本,或者在这里用恶意文件覆盖原始的 .exe

最后只需启动服务即可

注意:即使服务以localSystem权限运行,我们也有启动和停止服务的权限