• Jueves 2 de Mayo de 2024, 23:30

Autor Tema:  Re: troyano c (server-client)  (Leído 1825 veces)

joaquinrg

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: troyano c (server-client)
« en: Martes 23 de Septiembre de 2003, 21:54 »
0
Hola, q tal? Alguien ha visto por ahi algun tutorial sobre como programar un pequeño troyano en c? lo he visto en vb pero no en c. Hace poco aprendi algo de programar con sockets programas cliente/servidor. Hice un programa que ejecutaba el comando q escribieras (en el cliente) en el server, pero no se como ver  el resultado de dicho comando en el cliente. Me dijeron q tengo q utilizar pipes o algo asi, pero no he encontrado informacion buena para windows. Alguien tiene algo? Gracias

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: troyano c (server-client)
« Respuesta #1 en: Miércoles 24 de Septiembre de 2003, 08:46 »
0
Mira a ver si tienes la funcion popen() (esta en C de linux, no se si windows la tiene.)

Esta funcion ejecuta un programa y te permite leer su salida. Algo asi como esto

FILE *salida;
salida = popen ("ejecutable.exe parametros", "r");

leyendo salida, lees la salida del ejecutable.

Esa salida tendrias que enviarsela al cliente a través del socket.

Se bueno.

joaquinrg

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: troyano c (server-client)
« Respuesta #2 en: Miércoles 24 de Septiembre de 2003, 11:20 »
0
Muchas gracias chuidiang, lo que me has puesto funciona bien en windows tambien. Este codigo funciona bien:
 
Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. FILE *salida;
  7. salida = popen ("dir", "r");
  8. char linea[200];
  9. while( ! feof(salida) )
  10. {
  11.     fgets(linea, sizeof(linea), salida);
  12.     fputs(linea, stdout);
  13. }
  14. getchar();
  15. }
  16.  

Ahora que tendria q hacer?enviar salida al cliente por sockets,no? como? la forma que yo conozco es

send(socket, cadena, strlen(cadena), 0);
recv(socketcliente, cadena, 100, 0);

como puedo enviar salida, puesto q no es una cadena verdad? Gracias

joaquinrg

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: troyano c (server-client)
« Respuesta #3 en: Miércoles 24 de Septiembre de 2003, 11:53 »
0
Bueno, ya lo he conseguido, aunque un poco chapucero. He ido enviando y recibiendo cada linea cada vez q se escribia. Lo q pasa q antes de enviarlo tengo q saber cuantas lineas son para q el cliente sepa cuantas lineas tiene q recibir...

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: troyano c (server-client)
« Respuesta #4 en: Miércoles 24 de Septiembre de 2003, 14:55 »
0
Hay varias formas de hacerlo, como enviar una cadena especial que signifique fin de fichero.

Si quieres algo más serio, mira en www.geocities.com/chuidiang un apartado de cómo hacer mensajes para enviar por sockets. Deberías hacerte un mensaje de ida "ejecuta_comando" y un par de vuelta "toma_linea" y "fin_fichero".

Se bueno.

joaquinrg

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
troyano c (server-client)
« Respuesta #5 en: Jueves 25 de Septiembre de 2003, 00:26 »
0
Gracias, ahora le doy un vistazo