1.漏洞背景:
ActiveMQ 是 Apache 軟件基金會下的一個開源消息驅動中間件軟件。Jetty 是一個開源的 servlet 容器,它爲基於 Java 的 web 容器,例如 JSP 和 servlet 提供運行環境。ActiveMQ 5.0 及之後版本默認集成了jetty。在啓動後提供一個監控 ActiveMQ 的 Web 應用。web
2016年4月14日,國外安全研究人員 Simon Zuckerbraun 曝光 Apache ActiveMQ Fileserver 存在多個安全漏洞,可以使遠程***者用惡意代碼替代Web應用,在受影響系統上執行遠程代碼(CVE-2016-3088)。
8161端口爲web控制檯端口,本漏洞就出如今web控制檯中。
ActiveMQ的web控制檯分三個應用,admin、api和fileserver,其中admin是管理員頁面,api是接口,fileserver是儲存文件的接口;admin和api都須要登陸後才能使用,fileserver無需登陸。
fileserver是一個RESTful API接口,咱們能夠經過GET、PUT、DELETE等HTTP請求對其中存儲的文件進行讀寫操做,其設計目的是爲了彌補消息隊列操做不能傳輸、存儲二進制文件的缺陷,但後來發現:其使用率並不高並且文件操做容易出現漏洞。
因此,ActiveMQ在5.12.x~5.13.x版本中,已經默認關閉了fileserver這個應用(你能夠conf/jetty.xml中開啓之);在5.14.0版本之後,完全刪除了fileserver應用。shell
2.漏洞利用:
首先 PUT 一個 Jsp 的 Webshell 到 fileserver 目錄
下面添加的是生成一個jsp的***(msfvenom生成的payload)
而後利用 MOVE 方法將 Webshell 移入 admin/ 目錄(也能夠利用相對路徑)
這時訪問http://你的ip:8161/api/發現你的***已經存在了。
而後用kali監聽,網站上執行,就能得到root權限。
api