网络安全02--负载均衡下的webshell连接

目录

一、环境准备

1.1ubentu虚拟机一台,docker环境,蚁剑

1.2环境压缩包(文件已上传资源):

二、开始复原

2.1上传ubentu:

2.2解压缩

2.3版本20没有docker-compose手动下载,包已上传资源

​编辑 2.4问题:下载无法连接

2.5解决方法:ubentu上做代理,或xftp自己上传,我这里使用ubentu做代理 

2.6再次下载:

2.7转移目录

2.8给个权限

2.9成功页面:

三、环境搭建完毕,开始跑负载均衡

3.1此环境原理:前端反向代理为nginx,后端两台机子为Tomcat

3.2远端拉取环境:

 3.3开始制作:

 3.4成功结果:只能访问nginx后端18080对外没有映射

3.5蚁剑进行连接

四、情况映射出难点

4.1难点一:

4.2难点二:

4.3难点三:

4.4难点四:

​编辑 4.5最终实现结果:

五、.在web层做一次流量转发

5.1先看两个后端是否可以互通

5.2我们的原理也是如下图:

5.3操作:

 


 

我们以默认的「轮询」方式来做演示。演示的环境包已经上传资源叫AntSword-Labs

一、环境准备

1.1ubentu虚拟机一台,docker环境,蚁剑

apt-get install docker.io

96be83ce1d1d43e8902b1453fea3a533.png

1.2环境压缩包(文件已上传资源):

8c1fcdcaba974e8587560834ffae6fcd.png

二、开始复原

2.1上传ubentu:

3ab4bcb841c8407f9998122563b430e2.png

2.2解压缩

unzip AntSword-Labs-master.zip

0fef2cde358f4dc48ea6ec9d4f969346.png 

2.3版本20没有docker-compose手动下载,包已上传资源

dockerfile一次下载一个镜像,docker-compose一次下载多个镜像

81a1d47c8c674678bf3412c551d24436.png 2.4问题:下载无法连接

wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64

e4b2b473a886451ca1e8f3e8374be589.png

2.5解决方法:ubentu上做代理,或xftp自己上传,我这里使用ubentu做代理 

apt-get install proxychains

a2a755d4b3444c968b36c9ac741d6515.png

vim /etc/proxychains.conf

 更换完毕,访问谷歌ok

d11db1aaf0b1495690dff23a4d359522.png

2.6再次下载:

proxychains wget https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64

2.7转移目录

mv docker-compose /usr/bin

2.8给个权限

 chmod +x /usr/bin/docker-compose

2.9成功页面:

face702647bf4a02af1fdd6377a9d3dc.png 

三、环境搭建完毕,开始跑负载均衡

91bb9ed29bd84bb5b64909b678d6500e.png 

3.1此环境原理:前端反向代理为nginx,后端两台机子为Tomcat

b5fa35a8408c4f5994f7526c86aac5a8.png 

3.2远端拉取环境:

4a2b3961b3a944cebff2076645df9d47.png 

 3.3开始制作:

docker-compose up -d

539b7591a310427990f1d528feaa6d55.png

 3.4成功结果:只能访问nginx后端18080对外没有映射

a9b39c0f23494cfcb175d38ae2702cc1.png

 f443b0e803b84ea28ce2b96d3d296292.png

接下来假设我们在真实的业务系统上,存在一个远程连接漏洞,可以让我们获取 WebShell

看一下是否存在,结果自然存在,而且两台机子都已上传

c0a6fd60b24b4467a01b1401ea9c34bf.png

3.5蚁剑进行连接

在刷新的情况下,其实我们访问后端Tomcat已经飘逸了好几次了

a521fb4c6dc94fb5971dda01db69ab4d.png

1ac7219622ee42af8116e7cfc3bb003c.png 什么情况呢,来看,我新建一个hello文件,因为飘逸无法看到

90727a05624b4808832b38aabf8bba97.png

当我刷新在另一台机子又可以看到:

ddfc02415097462dbe86186c1761c8d2.png 当我们点开文件看见明显报错找不到文件,这便是负载均衡的飘逸,而我们怎么向负载均衡的服务器上传我们的代码也就成为了我们现在所要讨论的难点

34a0a253661f4642afaf9b91f0a553ee.png

四、情况映射出难点

4.1难点一:

我们需要在每一台节点的相同位置都上传相同内容的 WebShell

解决方法:多次保存可以解决此问题

4.2难点二

我们在执行命令时,无法知道下次的请求交给哪台机器去执行

虚拟终端明显可以看到,我们的ip通过负载均衡一直在飘逸

831f770ad8f04da88f42b125f22b6ec2.png

解决:多次执行

4.3难点三:

当我们上传文件时候,一些落第一台机子,一台落第二台

我上传的几MB文件一个在第一个机子一个在第二个机子

bb12ffa5e3e74b43998769f808fc9726.png

我删除也全是分片

1e4a4ab6292b4e3cb6a6d206030b19cd.png解决:上传小一点的工具,其实也能忍 

4.4难点四:

由于目标机器不能出外网,想进一步深入,只能使用 reGeorg/HTTPAbs 等 HTTP Tunnel,可在这个场景下,这些 tunnel 脚本全部都失灵了。

好了,任何方法都没用了,那该怎么办呢?

解决方法:

1.关掉对方一台服务器(作死玩法)

关掉一台,无法飘逸,但是后台监控软件直接报警

2.执行前判断要不要执行

以执行bash我们来举例,在执行前判断一下ip,两个docker镜像中都安装nat-tools,以方便可以使用ifconfig

cd /ant/loadbalance/loadbalance-jsp
docker ps -a
docker exec -it a9f8b08bae21 /bin/bash
apt-get update
apt-get install net-tools

d9a7b2e005194a12af3d1c2bf8ef8e00.png 4.5最终实现结果:

7620b79baf1648a3a3055ac42d11ef12.png

接下来写一个脚本,已到达执行前判断需不需要执行

以这个为基础我们来开始写

787f01fcc5bc4a9991c9595a727f001e.png 当然我们写了shell文件是跟第一次方法一样多次上传,我为了方便就直接从服务器写了

57fa74ed0d3e4cd3a1307036ce25028b.png

#!/bin/bashMYIP=$(ifconfig | grep "inet 172" | awk '{print $2}' | cut -d'/' -f1)if [ "$MYIP" = "172.18.0.2" ]; thenecho "allow command"id
elseecho "try again!"
fi

ecbc0f4024f4483f8aaab9aa09354712.png 最终结果: 

 fcd6ffc02c304167b40f6b765b470677.png

勉强能用,可是,上传文件、HTTP 隧道 这些要怎么解决?  又到我们需要思考的地方了

五、.在web层做一次流量转发

5.1先看两个后端是否可以互通

529ad1255307460ba8fc86e65f128540.png

5.2我们的原理也是如下图:

ae7b2ddd79224fcaa6cf440864c34cdc.png 

5.3操作:

我们先上传一个antproxy.jsp的转发包,资源中我已上传 ,改一下转发地址,然后替换先前蚁剑上传的文件

c984433398324a16bae30a6717981317.png

怎么上传?

蚁剑 

会分片,别传,那怎么办,还记得我们第二个方法的新建文件吗?这里就有作用了,去新建吧,多次保存,两个机子上就都有了

b5eafb6ce4e74ac7b33fb324f26219fc.png

接下来换掉连接数据:

808aadda1c42422c89cf151b7e5d8aad.png 

我们的刷新不再跳转,可见流量是被转发走的

82aa2504fbe3414ba59fba54953c1cbe.png 不管我们怎么刷新,流量都走到0.2上

6269bf1d034e46359b46c4a9ec4fe932.png

 

 

至此,我们对于负载均衡下漏洞上传文件,讨论完毕 

 

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

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

相关文章

第2章-神经网络的数学基础——python深度学习

第2章 神经网络的数学基础 2.1 初识神经网络 我们来看一个具体的神经网络示例,使用 Python 的 Keras 库 来学习手写数字分类。 我们这里要解决的问题是, 将手写数字的灰度图像(28 像素28 像素)划分到 10 个类别 中(0…

32GPIO输入LED闪烁蜂鸣器

一.GPIO简介 所有的GPIO都挂载到APB2上,每个GPIO有16个引脚 内核可以通过APB2对寄存器进行读写,寄存器都是32位的,但每个引脚端口只有16位 驱动器用于增加信号的驱动能力 二.具体…

数据结构-线性表

文章目录 数据结构—线性表1.线性表的定义和基本操作线性表的定义线性表的特点线性表的基本操作 2.线性表的顺序存储和链式存储表示顺序存储链式存储单链表循环链表双向链表 数据结构—线性表 1.线性表的定义和基本操作 线性表的定义 定义:线性表是具有相同数据类…

SpringSecurity(16)——OAuth2客户端授权模式

工作流程 基本使用 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>2.3.12.RELEASE</version> </dependency> <dependency><groupId>…

Android发展历程及安装

目录 发展历程 下载网址 安装过程 发展历程 安卓基于Linux内核&#xff0c;Linux内核相当于房屋的地基 开源不等于免费&#xff0c;不能商用 安卓一般每半年小更新&#xff0c;一年大更新 对应API相当于别名 现在安卓安全性越来越高&#xff0c;性能越来越快&#xff0c…

LeNet跟LeNet5详解

1 LeNet结构 主要是为了手写数字识别 具体结构讲解&#xff1a;从图中例子可得 1 先传入一个灰度图像尺寸为1x28x28&#xff0c;通道数为1&#xff0c;尺寸为28x28的灰度图像 2 第一层5x5卷积&#xff0c;经过公式 输入图像尺寸-卷积核尺寸2padding/步长1&#xff0c;&#…

JasperReports渲染报表文件时候,读取图片报错:Byte data not found at:xxx.png.\r\n\tat

目录【知识星球】 1.1、错误描述 1.2、解决方案 1.1、错误描述 最近在工作中&#xff0c;使用JasperReports报表比较多一些&#xff0c;有次线上环境里面运行报错&#xff0c;查看报错日志&#xff0c;如下所示&#xff1a; net.sf.jasperreports.engine.JRException: Byte…

Android源码设计模式解析与实战第2版笔记(五)

第七章 时势造英雄 – 策略模式 策略模式的定义 策略模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式的使用场景 针对同一类型问题的多种处理方式&#xff0c;仅仅…

掌握assert的使用:断言在错误检查和调试中不可或缺

断言在错误检查和调试中不可或缺 一、简介二、断言的基本语法和用法三、错误检查与断言四、 调试与断言五、避免滥用断言六、总结 一、简介 断言是一种在程序中用于检查特定条件是否满足的工具。一般用于验证开发者的假设&#xff0c;如果条件不成立&#xff0c;就会导致程序报…

51-17 视频理解串讲— MViT 论文精读

继TimeSformer模型之后&#xff0c;咱们再介绍两篇来自Facebook AI的论文&#xff0c;即Multiscale Vision Transformers以及改进版MViTv2: Improved Multiscale Vision Transformers for Classification and Detection。 由于本司大模型组最近组织阅读的论文较多&#xff0c;…

ubuntu20.04 安装ROS2 记录

主要参考B站古月居的ROS2入门21讲 和 以下链接&#xff08;基本和视频上一致&#xff09; ubuntu20.04安装ROS2 详细教程_ubuntu20.04 ros2-CSDN博客 但是中间有些需要注意的地方&#xff0c; 1&#xff0c;添加源 步骤中提到 sudo curl -sSL https://raw.githubuserconten…

深入解析HTTPS:安全机制全方位剖析

随着互联网的深入发展&#xff0c;网络传输中的数据安全性受到了前所未有的关注。HTTPS&#xff0c;作为HTTP的安全版本&#xff0c;为数据在客户端和服务器之间的传输提供了加密和身份验证&#xff0c;从而确保了数据的机密性、完整性和身份真实性。本文将详细探讨HTTPS背后的…