渗透测试-Weblogic后台部署War大马

环境搭建

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应用并绑定域名。

环境 版本
Weblogic 10.3.6(11g)
Java 1.6

漏洞环境基于 Ubuntu 虚拟机的 Vulhub 集成靶场,执行命令docker-compose up -d启动靶场容器:
渗透测试-Weblogic后台部署War大马_第1张图片

后台爆破

环境启动后,访问 http://your-ip:7001/console,即为 Weblogic 后台:
渗透测试-Weblogic后台部署War大马_第2张图片

本环境存在弱口令:

账户 密码
weblogic Oracle@123

成功登录 Weblogic 后台:
渗透测试-Weblogic后台部署War大马_第3张图片

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

文件读取

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

任意文件下载

本环境前台模拟了一个任意文件下载漏洞,来验证一下。访问http://your-ip:7001/hello/file.jsp?path=/etc/passwd可见成功读取 passwd 文件:
渗透测试-Weblogic后台部署War大马_第4张图片
下载并打开 passwd 文件:
渗透测试-Weblogic后台部署War大马_第5张图片或者直接 BurpSuite 读取也行:
渗透测试-Weblogic后台部署War大马_第6张图片
那么,该漏洞如何进一步利用从而获得登录账户信息呢?下面将利用上述任意文件下载漏洞读取 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 就可以保存成一个文件:
渗透测试-Weblogic后台部署War大马_第7张图片2、config.xml 是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的的值,即为加密后的管理员密码:
渗透测试-Weblogic后台部署War大马_第8张图片3、从 Github 下载 Weblogic 的解密工具,与上述SerializedSystemIni.dat文件一起保存到本地,如下图所示:
渗透测试-Weblogic后台部署War大马_第9张图片
4、解密密文,获得 Weblogic 后台用户的密码:
渗透测试-Weblogic后台部署War大马_第10张图片

后台传马

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

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

Tomcat

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

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

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

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

你可能感兴趣的:(渗透测试)