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

目录

一、环境准备

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

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

二、开始复原

2.1上传ubentu:

2.2解压缩

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

[​编辑 2.4问题:下载无法连接](#编辑 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最终实现结果:](#编辑 4.5最终实现结果:)

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

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

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

5.3操作:


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

一、环境准备

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

复制代码
apt-get install docker.io

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

二、开始复原

2.1上传ubentu:

2.2解压缩

复制代码
unzip AntSword-Labs-master.zip

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

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

2.4问题:下载无法连接

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

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

复制代码
apt-get install proxychains
复制代码
vim /etc/proxychains.conf

更换完毕,访问谷歌ok

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成功页面:

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

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

3.2远端拉取环境:

3.3开始制作:

复制代码
docker-compose up -d

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

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

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

3.5蚁剑进行连接

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

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

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

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

四、情况映射出难点

4.1难点一:

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

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

4.2难点二

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

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

解决:多次执行

4.3难点三:

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

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

我删除也全是分片

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

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

4.5最终实现结果:

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

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

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

复制代码
#!/bin/bash

MYIP=$(ifconfig | grep "inet 172" | awk '{print $2}' | cut -d'/' -f1)

if [ "$MYIP" = "172.18.0.2" ]; then
    echo "allow command"
    id
else
    echo "try again!"
fi

最终结果:

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

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

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

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

5.3操作:

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

怎么上传?

蚁剑

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

接下来换掉连接数据:

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

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

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

相关推荐
九硕智慧建筑一体化厂家8 小时前
直流智能照明|一站式低碳照明解决方案,安全、节能、降本、全场景适配
安全
admin and root12 小时前
「移动安全」安卓APP 反编译&frida脱壳技巧分享
android·开发语言·python·web安全·微信小程序·移动安全·攻防演练
小程故事多_8013 小时前
算力工厂与安全沙箱,企业AI规模化落地的两条核心生命线
人工智能·安全
云水一下13 小时前
零基础玩转bWAPP靶场(十四):SQL 注入(GET/选择型)
web安全·sql注入·bwapp
牛马工作号14 小时前
Zigbee 专业详解:从协议到排障
网络·物联网·安全
延凡科技14 小时前
智慧燃气解决方案:管道煤气监管应用管理系统(三维GIS+IoT+大数据落地实战)
大数据·人工智能·科技·物联网·安全
spear80014 小时前
高压绝缘测试安全指南:击穿保护、燃弧定位、快速放电、抗干扰滤波详解
安全·绝缘电阻·三级承装承修承试资质公司设备·电缆绝缘电阻
sbjdhjd15 小时前
SQL 注入零基础详解:原理、手工注入流程与 Sqli-Labs 靶场实战1~5关和第9关思路
数据库·sql·计算机网络·web安全·网络安全·网络攻击模型·安全架构
liukuang11015 小时前
Zara“夺命裤”风波,白晨铭的安全大考
安全
Android小码家16 小时前
OWASP 移动应用安全之授权(MASTG-DEMO-0090)
android·安全·frida