Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: DrKillador en 2 Noviembre 2012, 13:17 pm



Título: [DUDA] Redirigir salida de CreateProcess (ANSI C Windows) a un string
Publicado por: DrKillador en 2 Noviembre 2012, 13:17 pm
Hola a toda la comunidad,

Me encuentro desarrollando actualmente una PoC de un caballo de troya en C para Windows básico, que realice simplemente las operaciones de ejecutar los comandos que se le ordenen en un CMD. Lo tengo implementado a un 90% a falta de lo siguiente.

En el programa utilizo la función "CreateProcess" para crear un proceso hijo que ejecute cualquier comando que reciba como orden. Funciona correctamente y ejecuta todas las instrucciones que le envío. Pero lo que no se es cómo puedo redirigir la salida del CMD a un string, es decir, el resultado de la ejecución del comando, para después poder reenviar esta información al panel de control del caballo de troya.

Also así:

Código
  1. C:\Documents and Settings\DrKillador>getmac
  2.  
  3. Direccion fisica    Nombre de transporte
  4. =================== ==========================================================
  5. CA-FE-CA-FE-CA-FE   \Device\Tcpip_{**************

Imagino que se podría hacer con pipes por todo lo que he leído por Google y el buscador del foro, pero no he dado con el código exacto para realizar la labor y todos mis intentos son fallidos.

Gracias!  :D


Título: Re: [DUDA] Redirigir salida de CreateProcess (ANSI C Windows) a un string
Publicado por: Karcrack en 2 Noviembre 2012, 15:14 pm
CreateProcess() (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx) recibe como parámetro una estructura llamada: STARTUPINFO (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v=vs.85).aspx). En esta estructura está el elemento hStdOutput que es el handle de salida para los datos, de normal en aplicaciones de consola se establece al handle de lectura del CMD para que éste te pueda mostrar los resultados.

Así pues tendrías que crear un Pipe con CreatePipe() para poder pasárselo a CreateProcess() y así el nuevo proceso utilice tu std para sacar datos.

Saludos


Título: Re: [DUDA] Redirigir salida de CreateProcess (ANSI C Windows) a un string
Publicado por: DrKillador en 24 Noviembre 2012, 13:16 pm
Muchas gracias, me fue de gran utilidad  :D