proyecto in Python Skill Tree

Shell inversa para controlar múltiples objetivos

Principiante

En este proyecto, aprenderás cómo crear una shell inversa utilizando Python, que te permite controlar múltiples máquinas comprometidas, también conocidas como bots. A diferencia de las shells tradicionales, una shell inversa inicia una conexión desde el bot al controlador, lo que permite administrar hosts remotos incluso detrás de firewalls o NAT. Este método se utiliza ampliamente en prácticas de ciberseguridad para pruebas de penetración y la gestión segura de entornos controlados.

PythonLinuxInfoSec

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a crear un shell inverso utilizando Python, el cual te permitirá controlar múltiples máquinas comprometidas, también conocidas como "bots". A diferencia de los shells tradicionales, un shell inverso inicia una conexión desde el bot hacia el controlador, lo que permite la gestión de hosts remotos incluso detrás de firewall o NAT. Este método se utiliza ampliamente en prácticas de ciberseguridad para pruebas de penetración y gestión de entornos controlados de manera segura.

Antes de adentrarnos en la implementación, es importante entender los conceptos fundamentales detrás de nuestra aplicación de shell inverso, incluyendo la arquitectura cliente-servidor (C/S) y el Protocolo de Control de Transmisión (TCP).

La arquitectura C/S implica un cliente que solicita servicios y un servidor que los proporciona. En nuestro caso, los bots actúan como clientes que inician conexiones hacia nuestro servidor, lo que nos permite ejecutar comandos en ellos de manera remota.

Utilizaremos TCP para la comunicación confiable y orientada a conexiones entre el servidor y los clientes. TCP asegura que los datos se entregan de manera precisa y en orden, lo cual es esencial para ejecutar comandos y recibir respuestas sin errores.

👀 Vista previa

Ejecución de comandos de shell inverso

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo entender la arquitectura cliente-servidor (C/S) y el Protocolo de Control de Transmisión (TCP) como la base de las comunicaciones de red.
  • Cómo configurar un servidor que escuche conexiones entrantes de múltiples clientes (bots).
  • Cómo crear scripts de clientes que se conecten al servidor y ejecuten los comandos recibidos.
  • Cómo implementar la funcionalidad de ejecución de comandos y recuperación de resultados en el servidor para interactuar con los clientes conectados.
  • Cómo manejar simultáneamente múltiples conexiones de clientes y cambiar entre ellas para emitir comandos.

🏆 Logros

Después de completar este proyecto, podrás:

  • Demostrar el dominio de los conceptos básicos del modelo cliente-servidor y TCP para una comunicación de red confiable.
  • Implementar un servidor de shell inverso multi-cliente en Python.
  • Crear scripts de clientes que puedan conectarse a un servidor remoto y ejecutar los comandos enviados por el servidor.
  • Manejar múltiples conexiones y gestionar la comunicación con múltiples clientes en un entorno controlado.
  • Aplicar la experiencia práctica en programación de redes y la comprensión de sus aplicaciones en ciberseguridad y gestión de sistemas remotos.

Profesor

labby

Labby

Labby is the LabEx teacher.