注意:下列漏洞复现是使用Ubuntu+docker实现的环境完成的,其中提到的IP通过Ubuntu虚拟机中的ifconfig命令查看,端口不变,需要环境的可通过docker相关环境下载
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令、getshell等危害。
影响版本:Weblogic < 10.3.6
2.1 访问页面http://192.168.137.128:8060/wls-wsat/CoordinatorPortType11,若如下图所示则可能存在该漏洞
2.2 刷新页面使用burpsuite抓包,对其构造POST XML数据,利用反序列化漏洞写入后门文件test.jsp
注意:一句话木马在String时有特殊字符存在,在解析XML时会出现报错,必须加上]]>来转义
2.3 访问http://192.168.137.128:8060/bea_wls_internal/test.jsp,jsp小马上传成功,可以利用该小马上传任意文件
2.4 使用冰蝎连接,成功getshell
临时解决方法 :
1、\bea\wlserver_10.3\server\lib目录下,删除文件wls-wsat.war 2、\bea\user_projects\domains\base_domain\servers\AdminServer\tmp\.internal目录下,删除文件wls-wsat.war 3、\bea\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal目录下,删除文件夹wls-wsat
根本解决方法:在https://support.oracle.com上搜索CVE-2017-10271下载补丁或将weblogic更新至10.3.6或更高版本
1、漏洞简述&影响版本
攻击者可利用该漏洞在未授权的情况下发送数据,通过T3协议在Weblogic Server中执行反序列化操作,利用RMI机制的缺陷,通过 JRMP 协议达到执行任意反序列化 payload 的目的。可能导致:远程执行代码、获取敏感业务数据、植入木马等危害。
影响版本:Oracle WebLogic Server10.3.6.0、12.2.1.2、12.2.1.3、12.1.3.0
2、攻击步骤
2.1 使用nmap扫描:nmap -p 8061 -v -n --script weblogic-t3-info 192.168.137.128,当在真实环境中发现使用t3服务时,则可能存在T3反序列化漏洞
2.2 可以直接使用脚本: https://github.com/zhengjim/loophole/blob/master/CVE-2018-2628/CVE-2018-2628.py 检测是否存在T3反序列化漏洞
3、加固建议
临时解决方法:需要禁用t3协议,但是不能禁死,对于受管节点或有需求的特定节点,需要放开限制,参考官方链接:http://download.oracle.com/docs/cd/E12839_01/web.1111/e13711/con_filtr.htm#i1029357
根本解决方法:由官方提供的过滤器彻底过滤t3和t3s协议,在现有的攻击Poc上从源头阻止构建攻击代码,连接筛选 器填:weblogic.security.net.ConnectionFilterImpl,筛选规则填取: 7001 deny t3 t3s并重启
WebLogic管理端未授权的页面/ws_utc/config.do存在任意上传getshell漏洞,可直接获取权限。利用该漏洞,可以上传任意jsp、php等文件,并获取服务器权限。可能导致:远程执行代码、上传shell文件getshell等危害。
影响版本:Oracle WebLogic Server10.3.6.0、12.2.1.2、12.2.1.3、12.1.3.0
2.1 访问192.168.137.128:8062/hello/file.jsp?path=/etc/password,下载passwd文件
2.2 访问192.168.137.128:8062/hello/file.jsp?path=security/SerializedSystemIni.dat,使用burpsuite抓包,右键copy to file就可以生成一个文件
2.3 访问192.168.137.128:8062/hello/file.jsp?path=config/config.xml,同时开启burpsuite抓包,node-manager-password-encrypted>的值可以看到加密后的管理员密码
2.4 通过解密可以得到密码
2.5 访问http://192.168.137.128:8062/console,输入用户名weblogic,密码N7aDceHG即可登录至后台
2.6 点击base_domain的配置,在“高级”中开启“启用 Web 服务测试页”选项并保存
2.7 访问http://192.168.137.128:8062/ws_utc/config.do,设置Work Home Dir为 /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL _internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css并提交
2.8 点击安全,添加,然后上传webshell,上传时使用burpsuite抓包查看时间戳,放包后可以看到成功上传,需要保存这个时间戳,因为需要在/ws_utc/css/config/keystore/时间戳_文件名才能访问上传的webshell
2.9 访问http://192.168.137.128:8062/ws_utc/css/config/keystore/1595402017324_shell.jsp即可执行shell.jsp文件
2.10 使用冰蝎连接,成功getshell
Weblogic提供uddiexplorer作为应用发布和服务查找,这个功能中存在operator可以写入url地址,但因为没有限制IP信息导致ssrf漏洞。可能导致:敏感数据泄露、内外网主机应用程序漏洞的利用、内外网web站点漏洞的利用等危害。
影响版本:Oracle Weblogic Server 10.0.2 ~ 10.3.6.0
2.1 访问存在漏洞的页面http://192.168.137.128:8063/uddiexplorer/SearchPublicRegistries.jsp,输入内容并进行查询,使用burpsuite抓取提交的数据包
2.2 点击search并使用burpsuite抓包,将operator修改为服务器地址,访问开放的端口8063,返回404说明8063端口开放
2.3 任意访问一个不存在的端口,无法找到该服务,说明该端口未打开
通过上述测试即可发现目标存在ssrf漏洞
Weblogic存在后台管理界面用于进行weblogic管理以及应用管理,若设置成弱口令并且未开启足够的账号防护,则可以进入后台进行管理甚至是上传webshell。可能导致:敏感数据泄露、后台上传shell文件getshell等危害。
影响版本:全版本
2.1 访问http://ip_addr:7001 出现Error 404—Not Found可判定目标是weblogic
2.2 然后访问http://ip_addr:7001/console 进入weblogic后台登录界面,用burp抓取登录数据包
2.3 使用burpsuite的intruder进行密码暴力破解,用户名一般为weblogic、admin、oracle
2.4 登录后台,点击部署-安装进入部署流程
2.5 点击上传文件按钮,选择我们打包好的Webshell的war文件,后续一直下一步直到完成,则完成部署
2.6 直接访问检查是否上传成功,因为是菜刀马使用蚁剑进行连接,检查是否能正常执行