SpringBoot场景下不出网-内存中的正向代理
SpringBoot场景下不出网-内存中的正向代理
免责声明:由于传播、利用本文所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担
前言
在Tomcat场景下,我们遇到不出网的机器通常上传reGeorg,suo5,这类的正向代理工具,连接后本地开启s5即可连接进入目标的网络场景
这里存在一些问题,有落地文件,这必然是存在被查杀的风险,现在诸多内存代理脚本也被杀毒软件加入了识别,并且安全设备也会有新增文件的感知
这里针对Tomcat只是提一下
当我们目标是SpringBoot场景呢?目标无法上传jsp,有落地脚本的正向代理就完全失去了作用
这样就衍生出了一种新技术,将正向代理写入到内存中去,就如同内存马一样
START
环境准备
SpringBoot靶场
NGINX
JMG
Suo5
Proxifier
这里,是我为后面持续更新搭建的一个靶场
拓扑图如下:
依靠这个靶场,后续我会持续更新相关的文章,并且会不断在这个基础上进行优化与改进
实现
这里使用Fastjson的反序列化漏洞演示
因为目标服务器不出网,自然就用不了JdbcRowSetImpl利用链这种jndi注入的利用方式,就只能选择直接传入恶意代码,而TemplatesImpl利用链虽然原理上也是利用了 ClassLoader 动态加载恶意代码,但是需要开启Feature.SupportNonPublicField,并且实际应用中其实不多见,所以这里使用BasicDataSource链,直接在Payload中直接传入字节码,不需要开启特殊的参数,适用范围较广,目标需要引入tomcat依赖,虽说也是一种限制,但还算是比较常见的。
这里还有一个细节问题,因为jdk8u251之后 bcel被移除,需要留意无法使用BCEL ClassLoader的问题
SpringBoot靶场使用以及一些依赖包的修改就不赘述了,文章核心是演示内存正向代理
访问Fastjson
内存正向代理制作
这里使用jMG(java-memshell-generator)
一款支持高度自定义的 Java 内存马生成工具|A highly customizable Java memory-shell generation tool.
https://github.com/pen4uin/java-memshell-generator
非常叼的工具,免去了手写并且转换为bcel码的过程,并且支持非常多的payload格式
根据自己的需要选择好对应的框架以及各类所需参数
攻击
留意好,在实现处说的信息,然后按照常规打法即可
这里大都是成功了
连接正向代理
留意连接所需的信息,比如这里是需要携带一个 Referer
在suo5中连接
连接成功
测试
使用Proxifier指定程序走的隧道
这都没什么好说的,学到这里的师傅肯定是都知道的
连接成功
至此成功实现了SpringBoot场景下内存的正向代理使用