漏洞条件
- Oracle WebLogic Server
漏洞原理
在weblogic搭建好之后没有修改进入后台的密码导致弱口令登录获得webshell
常见弱口令
账户 | 密码 |
---|---|
system | password |
weblogic | weblogic |
guest | guest |
portaladmin | portaladmin |
admin | security |
joe | password |
mary | password |
system | security |
wlcsystem | wlcsystem |
wlcsystem | sipisystem |
更多的一些常见弱密码:
weblogic1
weblogic12
weblogic123
weblogic@123
webl0gic
weblogic#
weblogic@
登陆后台
这里使用vulhub:https://vulhub.org/#/environments/weblogic/weak_password/
弱口令
环境启动后,访问http://your-ip:7001/console
,即为weblogic后台。
本环境存在弱口令:
- weblogic
- Oracle@123
这里注意一下不能使用bp抓包去爆破,错误密码5次之后就会自动锁定,这里使用weblogic/Oracle@123登陆后台
任意文件读取漏洞的利用
假设不存在弱口令,如何对weblogic进行渗透?
本环境前台模拟了一个任意文件下载漏洞,访问http://your-ip:7001/hello/file.jsp?path=/etc/passwd
可见成功读取passwd文件。
读取后台用户密文与密钥文件
weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为SerializedSystemIni.dat
和config.xml
,在本环境中为./security/SerializedSystemIni.dat
和./config/config.xml
(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain
)。
SerializedSystemIni.dat
是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,右键copy to file就可以保存成一个文件:
config.xml
是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的<node-manager-password-encrypted>
的值,即为加密后的管理员密码,不要找错了:
{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=
解密密文
然后使用本环境的decrypt目录下的weblogic_decrypt.jar,解密密文
这里没有解密成功,贴一张vulhub的图
后台上传webshell
获取到管理员密码后,登录后台。点击左侧的部署,可见一个应用列表,然后选择安装:
点击上载文件
这里要先制作一个恶意WAR包:
方法一:
- 先编写一个恶意的jsp文件或者使用哥斯拉等工具直接生成,如test.jsp;
- 将test.jsp压缩成zip格式的压缩文件,如test.zip;
- 直接修改zip压缩文件的后缀名为war即可,如test.war;
方法二:
直接使用如下命令打包当前文件夹下的所有文件
jar -cvf aaa.war .
在部署档案中上传恶意WAR包文件后,点击位于上方的下一步:
继续默认点击位于上方的下一步,直至遇到并点击完成:
正常启动之后,如下:
此时访问:http://ip:7001/shell/shell.jsp
即可访问到webshell
这里的shell是war名,而shell.jsp 是war里面的文件