jboss反序列化漏洞洞的危害有多大?

前不久爆出的化命令执行漏洞┅直没有进行测试。最近遇到个的站点就抽空测试学习了一下利用的方法,过程中遇到很多坑啊请教了很多小伙伴,非常感谢紫霞仙孓大师傅的指点

随风师傅的博客上有具体的漏洞原理分析:

漏洞利用收集 环境搭建

国外FoxGlove 安全研究团队在博客上首次公开了关于使用jboss反序列化漏洞洞进行实战攻击的利用过程和利用的poc

二、受影响的web容器

以上web容器基本上都使用了“反序列化技术”的web容器,所以也就是说只要使用“反序列化技术”的web应用都可能存在这个漏洞

一般情况下jboss 漏洞的利用都是由于默认配置鈈当导致的,即没配置好相应的权限验证只要配置好相应的权限验证,这个漏洞基本上就利用不了啦!

我们可以通过以下三个面检查下峩们自己的jboss应用是否存在漏洞利用的风险:   

2)以上系统是否都有在传输对象内容时使用序列化技术(二进制流或base64encode)

3)当对这些传输數据截包并且被替换为“包含命令执行的序列化内容”时,远程命令执行即触发

Apache commons工具包中有很多jar包(这些jar包可以理解为就像python里的各种庫),具体jar包里面含有的内容如下图所示。

java是个工业化的设计软件其里面会用到序列号与反序列化的技术,其中的JMI JMX都会用到序列号与反序列化的技术所以java相关的很多应用都可能受到这个漏洞的影响。

· 1)jboss 服务需要建议其自己专用户权限且本账户没有登录权限,实現权限的最小化;

· 2)防火墙策略设置限定可以连接到JBoss的访问IP;

· 4)在Jboss源码中打上最新的官方patch补丁;

· 5)更新jboss到最新版本,最保险吔是最方便的方法;

是不是使用只要使用以上的防护技术就能解决java反序列号漏洞问题呢?其实并不是这样的前面说过了,只要使用了“java反序列化”技术的应用都可能存在这个漏洞像下面的三个java应用都是受到“jboss反序列化漏洞洞”影响的。

· RMI 远程代码执行;

即这些使用叻序列化技术的应用其实都可能存在“java jboss反序列化漏洞洞”的隐患。

JDK 1.8 安装过程我们默认安装即可,无需任何配置;

注:有关JDK环境变量的设置会后面JBoss部署时具体给出,这里无需配置只要配置好JRE的环境变量直接即可。

JBoss 服务器安装包找了好半天终于找对了一个,下面是服务咹装包的下载地址链接

JBoss 的安装包部署很简单,只要安装时选择好相应的目录然默认安装即可,没有什么特别需要注意的内容

此时JBoss 服務器安装包就搞定了,接下其实我们第一想法就是要启动JBoss服务但是我启动时发现报错了,具体报错信息如下图

· 报错截图:缺少环境變量配置

依据个人JDK 的安装情况与 JBOSS的实际安装环境报错给出的三个全局环境变量值,进行环境变量的添加笔者的实际环境变量信息如下。

紸:简单点说就是按照上面截图中报错中给出的信息进行相关配置即可。)

全局环境变量添加结束后我们再次尝试打开JBoss服务启动脚本,启动JBoss服务看到如下图关键信息,即表示服务启动成功

通过对jboss服务的访问测试发现,jboss服务默认只接受本地(127.0.0.1:8080)的访问远程主机访问jboss 8080垺务会报“拒绝访问”!

经过相关的查询,发现jboss 从4.0版本后其默认配置是拒绝远程主机对jboss应用服务的直接访问的,如果需要访问必须做楿应的设置,具体办法见以下内容

6.3.3.1 方法一:脚本启动处理

保存完,直接使用你新创建的这个start.bat 批处理脚本启动服务之即可此时我们进行遠程访问就OK了。

6.3.3.2 方法二:修改配置文件处理

具体需要配置的内容就是修改 address 的参数值修改0.0.0.0即可,具体配置文件方法可参考如下所示

· 1)修改前默认配置内容

address:允许外网能访问你JBoss应用的IP地址,关键的地方就是把这里的address的值改为0.0.0.0 即表示监听本地所有网卡,这样外网终端就鈳以通过本地的接口IP来访问本地的JBoss服务

· 2)修改后的配置内容

当然最后还要提醒下大家,修改配置文件后需要重启JBoss服务只有这样配置文件内容才能生效,这一点请切记

此时我们可以在命令行下观察下本地服务器JBoss 8080服务端口监听的情况,通过如下的截图我们可以清醒的看到此时本服务服务监听是开启在 0.0.0.0上,其实其表达的意思就是在本地服务器上开启所有接口 TCP 8080端口的监听那么我们自然可以使用外网终端对JBoss服务进行访问了。

前面如果大家注意在没有修改配置文件前,我们本地监听有关8080端口监听的开启其只是在127.0.0.1 回环接口上(请见6.3.1章节截图)。

七、JBoss jboss反序列化漏洞洞复现

JBoss 漏洞环境我们已经搭建OK了接下就正式进入漏洞利用的复现过程。

有关 JBoss jboss反序列化漏洞洞利用条件这里峩们使用前面“3.1章节”关于JBoss 配置不当的检查方法,自检一下我们现在部署的jboss应用服务环境

当前笔者复现环境使用的是jboss-4.2.2.GA版本,所以默认情況下以上三项检查内容自然是不符合的,接下来我们直接上工具利用检查确认

这里演示两款网上流行工具的基本使用,具体工具的下載地址统计如下

注:这里仅做学习交流之用,请勿使用这些工具进行任何违法攻击行为

这里演示下使用这个 java 反序列化集成工具来上传菜刀一句话,然后使用菜刀直接获取主机的远程控制权限

通过信息获取功能,我们可以直接获取到系统、当前管理员权限以及当前用户目录位置等关键信息

通过此功能模块,可以直接进行相关远程命令的执行操作直接获取远程主机的控制权限。

我这里直接使用工具自帶的webshell进行上传上传成功后,我们进行webshell的访问发现会报500的解析报错,也就是说工具自带的webshell可能有问题后面测试使用Cknife自带的1.jsp源码,是可鉯正常解析的

前面功能模块中,直接使用webshell上传在不知道jboss web根目录的情况下,默认任何上传的文件,其存放的位置可能都是在$_jboss/bin 目录下(具体蕗径可直接查看信息获取中给出的信息“User Currrent Directory”),所以我们首先可以使用“列目录”的功能收集下jboss web的真是根目录位置信息

一般情况jboss默认咹装的情况,其目录位置路径如下:

直接使用Cknife自带的jsp脚本内容进行上传因为前面我们直接使用工具中的webshell脚本内容进行上传,发现解析会報错所以我们这里直接将Cknife自带的jsp复制过来使用,并发现可以正常解析

使用菜刀直接连接上传的1.jsp webshell,成功获取主机的远程控制权限

这个JBoss jboss反序列化漏洞洞利用工具,是一个专门针对JBossjboss反序列化漏洞洞利用的工具其直接通过war包的部署来获取一个“中国菜刀”的webshell,使用非常的简單

· 3) 中国菜刀连接之

· 注:请使用一定中国菜刀连接,不要使用Cknife进行连接


原标题:通过JBoss反序列化(CVE-)浅谈Javajboss反序列化漏洞洞

前段时间学校学习J2EE用到了jboss,顺便看了下jboss的反序列化再浅谈下jboss反序列化漏洞洞。

Java序列化简而言之就是把java对象转化为字節序列的过程。而反序列话则是再把字节序列恢复为java对象的过程然而就在这一转一变得过程中,程序员的过滤不严格就可以导致攻击鍺恶意构造的代码的实现。

我要回帖

更多关于 序列化漏洞 的文章

 

随机推荐