Buenas a todos....
Busco un ejemplo de infeccion de ejecutables, que sea facil de entender.
O almenos guiarme.
Gracias por vuestro tiempo.
Hola amigo, yo hace un par de semanas pase por lo mismo.. y el resultado:
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.. ::)
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.
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!!
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!
Cita de: 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.
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!
Cita de: Cromatico en 8 Octubre 2013, 21:53 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:
Interesante... y por lo que veo, no es necesario andar metiéndose en el PEB ni nada de eso...
Cita de: 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...
La PEB la usarias si estuvieras inyectandote (en realidad es util para hacer shellcodes), pero para infectar, debes conocer el formato PE.
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!
Cita de: ||MadAntrax|| en 8 Octubre 2013, 21:56 PM
Ooooo ese ejemplo me suena :rolleyes:
Esta lindo no? Jajaja sos un grande ;)
Saludos!
Muchas gracias a todos.
Lo que busco es modificar el pe.. shellcode y tal. voy a seguir lellendo