这是一个老漏洞,只用作学习目的。

概要

Apache ActiveMQ 的 61616 端口使用了 OpenWire 协议,这个端口会暴露服务器相关信息 (debug 信息),会返回应用名称,JVM,操作系统以及内核版本等信息。

受影响的版本:

ActiveMQ-5.15.0 ~ ActiveMQ-5.15.2

ActiveMQ-5.14.0 ~ ActiveMQ-5.14.5

环境搭建

构建 docker 镜像,用的是 ActiveMQ 的 5.15.0 版本,官方存档:https://archive.apache.org/dist/activemq/

FROM openjdk:8-jre-slim

ENV ACTIVEMQ_HOME=/opt/activemq

COPY apache-activemq-5.15.0-bin.tar.gz .
RUN tar -xzf apache-activemq-5.15.0-bin.tar.gz --transform='s/apache-activemq-5.15.0/activemq/' -C /opt && rm apache-activemq-5.15.0-bin.tar.gz

WORKDIR ${ACTIVEMQ_HOME}

EXPOSE 61616 8161

CMD ["/bin/sh", "-c", "bin/activemq console"]

构建

sudo docker build -t decoyit/activemq:5.15.0 .

启动

sudo docker run --name activemq5.15.0 -p 61616:61616 -p 8161:8161 -d decoyit/activemq:5.15.0

其中 61616 端口是默认的工作端口,消息在这个端口进行传递,8161 是 Web 管理页面端口

复现

环境成功搭建好后,在另一端通过 telnet 命令 telnet ip 61616 查看返回信息

产生的流量信息

防御措施

升级 ActiveMQ 版本