提权手法总览:

img

Windows提权

1、ByPassUAC

说明:ByPassUAC 的方法一般有利用系统白名单程序、COM接口以及利用 Windows 自身漏洞等方式。常见工具有 PowerShell 版的 Yamabiko 和需要自己编译的 C 语言版的 UACME 等,UACME 目前已经支持了72 种 ByPassUAC 的方法。

UACME 项目地址:https://github.com/hfiref0x/UACME.git。克隆 UACME 项目到本地后,使用 Visual Studio/MinGW进行编译,然后运行即可

#例如以下命令,表示使用 UACME 里的第 62 个方法进行 ByPassUAC,执行成功后,就会直接弹出管理员窗口,没有弹窗提示
Akagi.exe 62

img

2、Windows错误配置

可信任服务路径

说明:可信任服务路径 ( Trusted Service Paths ) 漏洞利用了 Windows 文件路径解析的特性,可信任服务路径指的是包含空格且没有引号的路径,比如像如下的路径:

C:\Program Files\Common Files\WgpSec\TeamsSix.exe

可以看到这个路径中有两个空格,那么对于 Windows 来说,它会尝试找到与空格前名字相匹配的程序,然后执行它。以上面的 exe 文件路径为例,Windows 会依次尝试执行以下程序:

C:\Program.exe
C:\Program Files\Common.exe
C:\Program Files\Common Files\WgpSec\TeamsSix.exe

由于 Windows 服务通常是以 SYSTEM 权限运行的,所以在系统找到空格前的程序并执行时,也将以 SYSTEM 权限运行这个程序。所以当我们把木马程序命名为 Program.exe ,然后放到 C 盘下,当上面的 TeamsSix.exe 程序重新执行时,系统就会执行我们的木马,如果这个程序是系统服务程序,那么就可以获取到对应程序的权限。

#通过下面的命令来查找系统中存在可信任服务路径的程序
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """

image-20231030231742942

如下的例子,可以看到 C:\Program Files\OpenSSH\bin\cygrunsrv.exe 存在包含空格且没有引号的路径。

img

使用MSF接收到该靶机的会话(反弹shell)后,可以直接使用MSF利用该漏洞,MSF版本中利用该漏洞的模块是unquoted_service_pat。利用该模块,就可以在存在可信任服务路径漏洞的环境下拿到对应程序所拥有的权限。

use windows/local/unquoted_service_path
set session 1
run

img

AlwaysInstallElevated

Comments

2023-10-30

⬆︎TOP