Introdução
Neste projeto, você aprenderá como criar um reverse shell usando Python, o que permite controlar múltiplas máquinas comprometidas, também referidas como "bots". Diferente dos shells tradicionais, um reverse shell inicia uma conexão do bot para o controlador, possibilitando o gerenciamento de hosts remotos mesmo atrás de firewalls ou NAT. Este método é amplamente utilizado em práticas de segurança cibernética para testes de penetração e gerenciamento de ambientes controlados de forma segura.
Antes de mergulhar na implementação, é importante entender os conceitos fundamentais por trás da nossa aplicação de reverse shell, incluindo a arquitetura cliente-servidor (C/S) e o Protocolo de Controle de Transmissão (TCP).
A arquitetura C/S envolve um cliente que solicita serviços e um servidor que fornece serviços. Em nosso caso, os bots atuam como clientes, iniciando conexões com nosso servidor, permitindo que executemos comandos neles remotamente.
Usaremos TCP para comunicação confiável e orientada a conexão entre o servidor e os clientes. O TCP garante que os dados sejam entregues com precisão e em ordem, o que é essencial para executar comandos e receber respostas sem erros.
👀 Visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como entender a arquitetura cliente-servidor (C/S) e o Protocolo de Controle de Transmissão (TCP) como a base para comunicações de rede.
- Como configurar um servidor que escuta por conexões de entrada de múltiplos clientes (bots).
- Como criar scripts de cliente que se conectam ao servidor e executam comandos recebidos.
- Como implementar a execução de comandos e a funcionalidade de recuperação de resultados no servidor para interagir com os clientes conectados.
- Como gerenciar múltiplas conexões de cliente simultaneamente e alternar entre elas para emitir comandos.
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Demonstrar domínio dos fundamentos do modelo cliente-servidor e TCP para comunicação de rede confiável.
- Implementar um servidor de reverse shell multi-cliente em Python.
- Criar scripts de cliente que podem se conectar a um servidor remoto e executar comandos enviados do servidor.
- Lidar com múltiplas conexões e gerenciar a comunicação com múltiplos clientes em um ambiente controlado.
- Aplicar experiência prática em programação de rede e uma compreensão de suas aplicações em segurança cibernética e gerenciamento de sistemas remotos.