elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Leer ejecutable e inyectar ????
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer ejecutable e inyectar ????  (Leído 3,389 veces)
Bb-7

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Leer ejecutable e inyectar ????
« en: 5 Julio 2010, 16:21 pm »

Hola. Voy al grano. Un amigo y yo estamos creando un cripter, y yo soy el encargado del stub. Por ahora todo va perfecto, ya que mi stub es capaz de leerse a sí mismo, extraer el ejecutable y las opciones, descifrar el ejecutable, escribirlo, y correrlo.
Ahora, he decidido dar un paso más, y en vez de crear un ejecutable temporal, lo que quiero es inyectar el código directamente en memoria tras haberlo descifrado. Teóricamente no me suponía ninguna dificultad, pero al pasar a la práctica, no me funcionaba. Sé inyectar funciones al estilo de void inyectada(DATOS *str_datos), en un proceso ó DLL, pero leer un ejecutable entero e inyectarlo es lo que llevo tiempo intentando hacer sin éxito, y me gustaría que me ayudarais.
No quiero un código, puesto que no soy de esas personas que copian, pegan y no entienden, no voy por el camino lammeril. Lo que quiero es una explicación teórica de cómo hacerlo, y a partir de ahí seré yo quien cree el código.
Lo que hacía hasta ahora era una vez leído y descifrado el código del ejecutable, meterlo en un puntero void, abrir el proceso notepad.exe, reservar memoria, e inyectarlo allí, y después abrir un thread, pero no pasaba nada, salvo que se cerraba el notepad.
Un saludo y gracias de antemano.
En línea





Lewert

Desconectado Desconectado

Mensajes: 231



Ver Perfil
Re: Leer ejecutable e inyectar ????
« Respuesta #1 en: 8 Julio 2010, 20:28 pm »

Antes que nada mira los posts con chinchetas, puede que ahi esté tu respuesta! :D
Código:
http://foro.elhacker.net/analisis_y_diseno_de_malware/ejecucion_de_archivos_desde_memoria_base_relocation-t264564.0.html
En línea

Crack the bytes, crack yourself
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Leer ejecutable e inyectar ????
« Respuesta #2 en: 8 Julio 2010, 21:18 pm »

Antes de pasar a hacer todo esto has de tener conocimientos sobre el formato PE y, luego saber como ofuscar ejecutables mano a mano. Luego todo esto, lo aplicas al código.

Saludos :P
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Leer ejecutable e inyectar ????
« Respuesta #3 en: 9 Julio 2010, 11:07 am »

Si, es fundamental que conozcas el formato PE para trabajar con el ejecutable, ya que para inyectar un exe en memoria tienes que emular el loader de Windows.

  • Una vez tienes el ejecutable leído y tienes un puntero hacia el, creas un proceso, vacías los datos con los que arranca (en este caso el notepad.exe) con NtUnmapViewOfSections y reservas una cantidad de memoria igual a su SizeOfImage con VirtualAllocEx en la dirección de su ImageBase.
  • Ahora, tienes que ir recorriendo cada sección del ejecutable y copiarla con WriteProcessMemory a su VirtualAddress.
  • Para terminar, sólo te queda crear el hilo de ejecución con CreateRemoteThread hacia su EntryPoint.

Esa es la forma común, hay otras formas, más detectadas o menos detectadas, más complicadas y menos, pero todo se basa en tener clara la estructura de los ejecutables y qué hace windows para arrancarlos cuando el usuario lo desea.

Taller Formato PE by Ferchu

Saludos  ;)

En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines