• ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)


    ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)

    查看docker的activemq版本命令:
    $ docker ps | grep activemq
    927860512db9 rmohr/activemq:5.15.4-alpine
    从上面可以看到版本是activemq:5.15.4-alpine 在该漏洞修复版本之上,不用担心了。

    -------------------------
    使用 docker 复现该漏洞,搭建环境
    vulhub/activemq at master · vulhub/vulhub · GitHub
    环境会监听 61616 端口和 8161端口,8161端口是控制台。
    搭建好以后,本机访问 http://192.168.0.106:8161 即可。

    ActiveMQ 的控制台分为三个应用:
    admin
    api
    fileserver
    其中1和2需要登录,3不需要登录,fileserver 是一个RESTful API的接口,可以使用 PUT、MOVE 等方法操作文件。

    版本相关:
    5.12.X —— 5.13.X 版本中,默认关闭了 fileserver
    5.14.0 以后的版本,删除了 fileserver
    0x02、漏洞相关

    2.1 漏洞原因
    漏洞成因是 fileserver ,可以使用 PUT、MOVE 等方法对文件进行操作,主要可以搞的方法有以下几点:
    直接写 shell。
    写 cron 定时任务拿 shell,或者写ssh key 文件
    写 jar 或 jetty.xml 等库和配置文件

    2.2 直接写 shell
    写 shell 的话,需要写在 admin 或者 api 中,也就是需要登录,没有密码的话完成不了写 shell 操作。
    该环境默认的口令为 admin/admin。
    访问 http://127.0.0.1:8161/admin/test/systemProperties.jsp

    获得当前系统的路径
    上传jsp,返回204,但是在 fileserver 路径下不解析
    然后移动到 api 目录下,成功的话,返回 204 No Content
    成功执行 webshell

    2.3 利用 cron 定时任务写 shell
    先上传到 fileserver,不需要登录即可。
    然后移动到 /etc/cron.d/root
    保证靶机的定时任务服务正在运行
    /etc/init.d/cron status
    本机监听 9999 端口,一会就反弹 shell 了。

    能够写shell基本上就等于控制了服务器了,通过这个漏洞学习可以看到对服务器文件相关操作的应用接口都要相当谨慎。

  • 相关阅读:
    2016.11.30
    java韩顺平老师视频有需要可以留言
    UESTC 1425 Another LCIS
    hdu 3308 LCIS
    HDU 3308 LCIS 线段树区间更新
    poj crane
    poj1436 Horizontally Visible Segments
    编程习惯记录
    poj 3225 Help with Intervals
    UVA 1513 Movie collection
  • 原文地址:https://www.cnblogs.com/zdz8207/p/docker-activemq-bug-CVE.html
Copyright © 2020-2023  润新知