环境搭建

WebLogic 是美国 Oracle 公司出品的一个 Application server,确切的说是一个基于 JAVA EE 架构的中间件,WebLogic 是用于开发、集成、部署和管理大型分布式 Web应用、网络应用和数据库应用的 Java应用服务器。将 Java 的动态功能和 Java Enterprise 标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

本环境模拟了一个真实的 Weblogic 环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。漏洞复现的过程分别通过利用这两种漏洞获得 Weblogic 管理后台登录的账号,最终通过 Weblogic 后台应用部署功能上传War包(JSP 大马)获得 WebShell

War 包 是用来进行 Web 开发时一个网站项目下的所有代码,包括前台HTML/CSS/JS 代码,以及后台 JavaWeb 的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成 War 包进行发布。Weblogic 部署 Web 应用的过程可参见:WebLogic部署Web应用并绑定域名

环境版本
Weblogic10.3.6(11g)
Java1.6

漏洞环境基于 Ubuntu 虚拟机的 Vulhub 集成靶场,执行命令docker-compose up -d启动靶场容器:
在这里插入图片描述

后台爆破

环境启动后,访问 http://your-ip:7001/console,即为 Weblogic 后台:
在这里插入图片描述

本环境存在弱口令:

账户密码
weblogicOracle@123

成功登录 Weblogic 后台:
在这里插入图片描述

Weblogic 弱口令批量检测工具: WeblogicWeakPwd

文件读取

假设不存在弱口令,如何对 Weblogic 进行渗透?

任意文件下载

本环境前台模拟了一个任意文件下载漏洞,来验证一下。访问http://your-ip:7001/hello/file.jsp?path=/etc/passwd可见成功读取 passwd 文件:
在这里插入图片描述
下载并打开 passwd 文件:
在这里插入图片描述或者直接 BurpSuite 读取也行:
在这里插入图片描述
那么,该漏洞如何进一步利用从而获得登录账户信息呢?下面将利用上述任意文件下载漏洞读取 Weblogic 后台的用户密码密文与密钥文件。

AES密码破解

Weblogic 密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于 base_domain下,名为 SerializedSystemIni.datconfig.xml,在本环境中为 ./security/SerializedSystemIni.dat和./config/config.xml(基于当前目录 /root/Oracle/Middleware/user_projects/domains/base_domain)。

1、SerializedSystemIni.dat 是一个二进制文件,所以一定要用 burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在 Burp 里选中读取到的那一串乱码,右键选择 copy to file 就可以保存成一个文件:
在这里插入图片描述2、config.xml 是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的<node-manager-password-encrypted>的值,即为加密后的管理员密码:
在这里插入图片描述3、从 Github 下载 Weblogic 的解密工具,与上述SerializedSystemIni.dat文件一起保存到本地,如下图所示:
在这里插入图片描述
4、解密密文,获得 Weblogic 后台用户的密码:
在这里插入图片描述

后台传马

拿到 Weblogic 后台的登录账户和密码之后,可以进入后台上传 War 木马文件获得 WebShell。

1、输入账号名、密码登录之后进入后台管理界面 -> 部署 -> 安装:
在这里插入图片描述2、在安装页面点击上载文件:
在这里插入图片描述3、然后选择制作好的 war 木马文件包,点击下一步:
在这里插入图片描述4、War 木马文件包的制作方法:准备一个 JSP 大马文件(Githhub下载)xxx.jsp,将其压缩为 test.zip,然后重命名为 test.war,test 即为部署成功大马存放的目录:
在这里插入图片描述
5、一直下一步(这里注意点击的是上边的下一步,不要点错了):
在这里插入图片描述6、然后点击完成-保存:
在这里插入图片描述在这里插入图片描述7、部署完成:
在这里插入图片描述8、访问大马文件http://IP:7001/test/JspSpy.jsp,需要验证密码:
在这里插入图片描述9、查看JSP大马文件JspSpy.jsp的连接密码:
在这里插入图片描述10、成功连接大马:
在这里插入图片描述11、使用大马进行命令执行、内网端口扫描:
在这里插入图片描述12、最后使用大马进行内网端口扫描:
在这里插入图片描述至此,利用 Weblogic 弱口令、任意文件下载,已成功上传大马获得 WebShell,攻击结束。

Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

Tomcat7 + 支持在后台部署 War 文件,可以直接将 Webshell 部署到 Web 目录下。当然,有个前提条件,那就是需要能登录后台,且对应用户有相应权限。War 包可以放在Tomcat下的 webapps 或 word 目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。

1、假设能访问到某系统的 Tomcat 管理后台且存在弱口令,暴力破解得之:
在这里插入图片描述2、输入弱密码 tomcat:tomcat,进入后台,找到 War 部署:
在这里插入图片描述3、先将 jsp 大马压缩为zip,再将zip后缀改名为war,然后上传war包:
在这里插入图片描述
4、点击上传:
在这里插入图片描述
5、可以发现已经上传成功!尝试访问:http://192.168.0.132:8080/bmjoker/bmjoker.jsp,成功访问上传的 jsp 大马:
在这里插入图片描述
本文参考文章:

1、Vulhub官方教程
2、Weblogic漏洞系列-后台上传文件getshell
3、Weblogic漏洞总结
4、WebLogic部署Web应用并绑定域名

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐