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基本上就等於控制了服務器了,通過這個漏洞學習可以看到對服務器文件相關操作的應用接口都要相當謹慎。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM