WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
本环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。分别通过这两种漏洞,模拟对weblogic场景的渗透。
Weblogic版本:10.3.6(11g)
Java版本:1.6
进入相应目录
启动容器
docker-compose up -d
查询端口
docker ps -a
访问登录后台
http://192.168.0.116:7001/console/login/LoginForm.jsp
本环境存在弱口令:
账户 | 密码 |
---|---|
weblogic | Oracle@123 |
假设不存在弱口令,如何对 Weblogic 进行渗透?
本环境前台模拟了一个任意文件下载漏洞,来验证一下。访问http://your-ip:32770/hello/file.jsp?path=/etc/passwd
可见成功读取 passwd 文件:
账户 | 密码 |
---|---|
weblogic | Oracle@123 |
下载并打开 passwd 文件:
AES密码破解
Weblogic 密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于 base_domain下,名为 SerializedSystemIni.dat 和config.xml,在本环境中为 ./security/SerializedSystemIni.dat和./config/config.xml(基于当前目录 /root/Oracle/Middleware/user_projects/domains/base_domain)。
1、SerializedSystemIni.dat 是一个二进制文件,所以一定要用 burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在 Burp 里选中读取到的那一串乱码,右键选择 copy to file 就可以保存成一个文件:
config.xml
是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的
的值,即为加密后的管理员密码:
从 Github 下载 Weblogic 的解密工具,与上述SerializedSystemIni.dat
文件一起保存到本地,如下图所示:
解密密文,获得 Weblogic 后台用户的密码:
拿到 Weblogic 后台的登录账户和密码之后,可以进入后台上传 War 木马文件获得 WebShell。
1、输入账号名、密码登录之后进入后台管理界面 -> 部署 -> 安装:
在安装页面点击上载文件:
然后选择制作好的 war 木马文件包,点击下一步:
War 木马文件包的制作方法:准备一个 JSP 大马文件:xxx.jsp
,将其压缩为 ma1.zip,然后重命名为 ma1.war,test 即为部署成功大马存放的目录:
一直下一步(这里注意点击的是上边的下一步,不要点错了):
然后点击完成-保存:
访问大马文件http://IP:7001/test/JspSpy.jsp
,需要验证密码:
JSP大马文件ma1.jsp
的连接密码:admin
成功连接大马:
1.设置Config.do页面登录授权后访问;
2.IPS等防御产品可以加入相应的特征;
3.升级到官方最新版本