Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Mr.Blue en 24 Noviembre 2010, 11:10 am



Título: Conexion inversa Teoria
Publicado por: Mr.Blue en 24 Noviembre 2010, 11:10 am
Hola gente!
Bueno, estoy intentando aprender sobre socket y para ello me eh propuesto como meta realizar un troyano de conexion inversa. Pero antes de empezar a tirar codigo sin saber al respecto sobre los troyano (mas aya de la definicion de troyano) intento comprender como funciona y que metodos hay para llegar a mi objetivo.
Y eh aqui donde me surgen las primeras preguntas.

Por lo que estuve leyendo hay 3 tipos de modelos de conexion.

  • Modelo Simple Cliente-Servidor: Conexión Stream
  • Modelo Concurrente Cliente-Servidor: Conexión Stream
  • Modelo Cliente-Servidor: Conexión Datagram


Ahora bien cual de estos modelos es el mas efectivo, y que diferencia hay entre ellos a grandes rasgos.
Se que por ej.

  • el modelo simple: Usa las funciones send y recv
  • el modelo concurrente: Crea un nuevo thread  --> que quiere decir con crear un nuevo thead? crear un nuevo hilo para cada conexion, como se logra esto? Funciones?
  • el modelo datagram: Usa las funciones sendto y rcvfrom. --> que diferencia hay con el modelo simple?


Bueno desde ya gracias, y disculpen mi poca imaginacion en intentar aprender sockets con un troyano  :xD :laugh:


Título: Re: Conexion inversa Teoria
Publicado por: Stelio Kontos en 1 Diciembre 2010, 02:21 am
  • el modelo simple: Usa las funciones send y recv
  • el modelo concurrente: Crea un nuevo thread  --> que quiere decir con crear un nuevo thead? crear un nuevo hilo para cada conexion, como se logra esto? Funciones?
  • el modelo datagram: Usa las funciones sendto y rcvfrom. --> que diferencia hay con el modelo simple?
El modelo simple para que nos entendamos lo único que hace es enviar datos al host con el que haya establecido una conexion (hay lenguajes en los que se usan las funciones send y recv directamente y otros en los cuales puedes cargar un socket que hace trabajar al protocolo TCP sin intervención manual, es decir, lo automatiza, hace funcionar los recursos necesarios para comunicarse)
El modelo concurrente simplemente lo que hace es abrir más hilos como tu dices, o cargar nuevos sockets, puedes imaginarlo como un array de sockets el cual cada conexion recibida carga un socket dentro del array previamente declarado, de forma que si quiere comunicarse con una conexion recibida (pongamos de ejemplo la tercera) se comunicará con el tercer socket (socket(3)).
Y del modelo datagram, sinceramente ni idea, por las funciones que mencionas supongo que solo se comunicara con el host que el quiera, pero vamos, que me da a mi que no.

¿Mi valoración personal? Pues multihilos o un array de sockets.


Título: Re: Conexion inversa Teoria
Publicado por: paju1986 en 8 Diciembre 2010, 02:33 am
En el troyano que estoy desarrollando utilizo la técnica de array de sockets para asi poder tener todos los servidores que quiera conectado al mismo cliente (es de conexión inversa), si te interesa puedes echar un vistazo al código fuente.

http://foro.elhacker.net/programacion_cc/estoy_escribiendo_un_troyano_en_c_y_qt4_de_licencia_gpl-t313180.0.html