Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 70N1 en 7 Octubre 2013, 12:54 pm



Título: Injectar codigo en PE (Portable Ejecutable)
Publicado por: 70N1 en 7 Octubre 2013, 12:54 pm
Buenas a todos....
Busco un ejemplo de infeccion de ejecutables, que sea facil de entender.
O almenos guiarme.

Gracias por vuestro tiempo.


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Vaagish en 7 Octubre 2013, 19:25 pm
Hola amigo, yo hace un par de semanas pase por lo mismo.. y el resultado:

Código:
BOOL InjectDLL(DWORD ProcessID, char *Dll_Name)
{
HANDLE Proc;
HANDLE RemoteThread;
LPVOID RemoteString, LoadLibAddres;
int Retorno;

Proc = OpenProcess(CREATE_THREAD_ACCESS, FALSE, ProcessID);
cout << " " << "OpenProcess: " << Proc << endl;

LoadLibAddres = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
cout << " " << "Base Address of LoadLibraryA: " << LoadLibAddres << endl;

RemoteString = (LPVOID)VirtualAllocEx(Proc, NULL, strlen(Dll_Name)+1, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
cout << " " << "VirtualAllocEx: " << RemoteString << endl;

Retorno = WriteProcessMemory(Proc, (LPVOID)RemoteString, Dll_Name, strlen(Dll_Name)+1, NULL);
cout << " " << "WriteProcessMemory: " << Retorno << endl;

RemoteThread = CreateRemoteThread(Proc, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddres, (LPVOID)RemoteString, NULL, NULL);
cout << " " << "CreateRemoteThread: " << RemoteThread << endl;

CloseHandle(Proc);
cout << " " << "Closing Handle" << endl;

return 0;
}

Con esta función, podes cargar una dll dentro del espacio de memoria de un PE, le tendrías que pasar a esta función como primer parámetro el ID del proceso a inyectar (se puede obtener con GetProcessID(NombreDelProceso) ) y como segundo la ruta completa de la dll (a menos que esta misma se encuentre en la misma carpeta que el inyector) en fin.. espero te sirva de algo,, al menos poder deducir que apis se utilizan..  ::)


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: 70N1 en 8 Octubre 2013, 13:16 pm
Disculpa...

Pero es que no quiero injectar en memoria.
Lo que quiero es introducir codigo dentro del exe para que se ejecute mi codigo y luego siga con el del programa.


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Vaagish en 8 Octubre 2013, 20:34 pm
Modificando el binario? Y bueno, ahi es distinto.. jaja calculo que lo tendrás que abrir como escritura con fopen, de forma binaria.. y ahí hacer algunas modificaciones.. pero según tengo entendido, no es cuestion de cambiar el tamaño de un archivo y esperar que siga funcionando.. deberías cambiar algunos valores en la IMAGE OPTIONAL HEADER, y quizás, alguna otra cosa,, pero, por favor, que alguien me corrija si estoy diciendo cualquier cosa.. yo creo que algo asi es la cosa..

No se cuanto conoces del formato PE, pero creo que hay que tener un buen conocimiento del mismo, al menos para entender lo que se esta haciendo ;)

Saludos!!


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: MCKSys Argentina en 8 Octubre 2013, 21:23 pm
Te recomiendo darte una vuelta por este lado: http://vxheaven.org/vl.php (http://vxheaven.org)

PD: OJO! con lo que haces con esos codigos! Si tienes una AV en la maquina, lo mas probable es que te los borre, asi que toma las medidas necesarias...

Saludos!


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Cromatico en 8 Octubre 2013, 21:53 pm
Disculpa...

Pero es que no quiero injectar en memoria.
Lo que quiero es introducir codigo dentro del exe para que se ejecute mi codigo y luego siga con el del programa.

Aca hay un ejemplo en VB6:
http://foro.elhacker.net/analisis_y_diseno_de_malware/infeccion_de_ejecutables_en_visualbasic_6-t131243.0.html

Muy facil para adaptar, suerte!


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Mad Antrax en 8 Octubre 2013, 21:56 pm
Aca hay un ejemplo en VB6:
http://foro.elhacker.net/analisis_y_diseno_de_malware/infeccion_de_ejecutables_en_visualbasic_6-t131243.0.html

Muy facil para adaptar, suerte!

Ooooo ese ejemplo me suena  :rolleyes:


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Vaagish en 9 Octubre 2013, 05:21 am
Interesante... y por lo que veo, no es necesario andar metiéndose en el PEB ni nada de eso...


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: MCKSys Argentina en 9 Octubre 2013, 19:46 pm
Interesante... y por lo que veo, no es necesario andar metiéndose en el PEB ni nada de eso...

La PEB la usarias si estuvieras inyectandote (en realidad es util para hacer shellcodes), pero para infectar, debes conocer el formato PE.


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Vaagish en 9 Octubre 2013, 20:01 pm
Si, después de escribir, me imagine que en realidad el PEB se carga cuando se carga el PE,, asi que no seria necesario modificarlo, porque lo que se modifica en este caso, es el codigo..

Saludos!


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: Cromatico en 10 Octubre 2013, 22:33 pm
Ooooo ese ejemplo me suena  :rolleyes:

Esta lindo no? Jajaja sos un grande ;)

Saludos!


Título: Re: Injectar codigo en PE (Portable Ejecutable)
Publicado por: 70N1 en 12 Octubre 2013, 15:04 pm
Muchas gracias a todos.

Lo que busco es modificar el pe.. shellcode y tal. voy a seguir lellendo