项目 在 Python 技能树

反向 Shell 控制多个目标

初级

在本项目中,你将学习如何使用 Python 创建一个反向 Shell,从而控制多个被入侵的机器(也称为 bots)。与传统的 Shell 不同,反向 Shell 从 bots 向控制器发起连接,即使目标主机位于防火墙或 NAT 之后,也能实现远程管理。这种方法在网络安全实践中广泛用于渗透测试和安全地管理受控环境。

cybersecuritylinux

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本项目中,你将学习如何使用 Python 创建一个反向 Shell(Reverse Shell),它可以让你控制多台受控机器(通常被称为「肉鸡」或「机器人」)。与传统的 Shell 不同,反向 Shell 是由受控端主动发起连接到控制端,这使得即使目标处于防火墙或网络地址转换(NAT)之后,也能实现远程主机管理。这种方法在网络安全实践中被广泛用于渗透测试,以及以安全的方式管理受控环境。

在深入实现之前,理解反向 Shell 应用背后的基础概念至关重要,包括客户机/服务器(C/S)架构和传输控制协议(TCP)。

C/S 架构涉及请求服务的客户端和提供服务的服务器。在我们的案例中,受控端充当发起连接到服务器的客户端,从而允许我们远程在它们上面执行命令。

我们将使用 TCP 协议在服务器和客户端之间进行可靠的、面向连接的通信。TCP 确保数据准确且按顺序传输,这对于执行命令和接收响应而不产生错误至关重要。

👀 预览

反向 Shell 命令执行

🎯 任务

在本项目中,你将学习:

  • 如何理解作为网络通信基础的客户机/服务器(C/S)架构和传输控制协议(TCP)。
  • 如何搭建一个监听多个客户端(受控端)传入连接的服务器。
  • 如何编写连接到服务器并执行所接收命令的客户端脚本。
  • 如何在服务器上实现命令执行和结果检索功能,以便与连接的客户端进行交互。
  • 如何同时管理多个客户端连接,并在它们之间切换以发布命令。

🏆 成就

完成本项目后,你将能够:

  • 掌握用于可靠网络通信的客户机/服务器模型和 TCP 基础知识。
  • 使用 Python 实现一个支持多客户端的反向 Shell 服务器。
  • 编写能够连接到远程服务器并执行服务器发送命令的客户端脚本。
  • 在受控环境中处理多个连接并管理与多个客户端的通信。
  • 应用网络编程的实践经验,并理解其在网络安全和远程系统管理中的应用。

教师

labby
Labby
Labby is the LabEx teacher.