Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: x64core en 29 Septiembre 2011, 18:01 pm



Título: Que es un RunPE?
Publicado por: x64core en 29 Septiembre 2011, 18:01 pm
buenas tengo esa duda :P pensaria que se encuentra facil en google pero busque por una hora y no encontre nada :S es mas encontre codigos y todo eso pero exactamente quiero saber caracteristicas detalles osea lo principal que es lo que hace :P gracias
espero no haberme equivocado en la sección siempre e visto el tema creo que es de malware no :P


Título: Re: Que es un RunPE?
Publicado por: el-brujo en 29 Septiembre 2011, 20:53 pm
Tu pregunta es más de Ingeniería Inversa, pero en Malware también vale.

Los dos moderadores Karcrack (http://foro.elhacker.net/profiles/hocicos-u90456.html) y    [Zero] (http://foro.elhacker.net/profiles/edusv-u246162.html) les gusta el tema xD

Abril Negro 2008: Taller de Formato PE by Ferchu
http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2008_taller_de_formato_pe_by_ferchu-t208278.15.html

[Documento]Formato PE bajo Windows - Español
http://foro.elhacker.net/windows/documentoformato_pe_bajo_windows_espanol-t332157.0.html

Qué es CFF Explorer?
http://foro.elhacker.net/ingenieria_inversa/que_es_cff_explorer-t335659.0.html

[Taller] Así funcionan los crypters: cifrando malware a mano  
http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_asi_funcionan_los_crypters_cifrando_malware_a_mano-t262806.0.html

[Taller] Introduccion al Diseño de Rutinas de Encriptacion
http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_introduccion_al_diseno_de_rutinas_de_encriptacion-t273035.0.html

Modificando cabeceras "for Fun and Profit"
¿Que es el formato PE?
http://foro.elhacker.net/hacking_avanzado/modificando_cabeceras_for_fun_and_profit-t181258.0.html

Para más adelante:

Abril Negro 2008: Taller de ASM
http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2008_taller_de_asm-t208188.0.html

Ejecución de Archivos desde Memoria [Base Relocation]
http://foro.elhacker.net/analisis_y_diseno_de_malware/ejecucion_de_archivos_desde_memoria_base_relocation-t264564.0.html

[Taller] Api Hooking en modo usuario
http://foro.elhacker.net/analisis_y_diseno_de_malware/taller_api_hooking_en_modo_usuario-t262962.0.html


Título: Re: Que es un RunPE?
Publicado por: skapunky en 29 Septiembre 2011, 21:16 pm
No es que sea de malware, pero va relacionado por su úso, aquí te dejo un documento impresionante sobre RunPe, lo recomiendo a todo el mundo ya que se explica todo.

(http://img197.imageshack.us/img197/3948/runpe.jpg) (http://imageshack.us/photo/my-images/197/runpe.jpg/)

Descargar ebook "Formato Portable executable bajo windows" (http://ns2.elhacker.net/timofonica/manus/Formato_de_ficheros%20ejecutables%20_Formato%20PE_.pdf)


Título: Re: Que es un RunPE?
Publicado por: el-brujo en 29 Septiembre 2011, 21:47 pm
me has leído el pensamiento xDD

He puesto ese mini libro en el segundo enlace:

[Documento]Formato PE bajo Windows - Español
http://foro.elhacker.net/windows/documentoformato_pe_bajo_windows_espanol-t332157.0.html

Lo publicaron en el foro de Windows y ni lo ví xD

Lo he añadido a la web y su descarga sin esperas:

http://ns2.elhacker.net/timofonica/manus/Formato_de_ficheros%20ejecutables%20_Formato%20PE_.pdf


Título: Re: Que es un RunPE?
Publicado por: x64core en 29 Septiembre 2011, 22:44 pm
andenle gracias tios ;D


Título: Re: Que es un RunPE?
Publicado por: The Swash en 30 Septiembre 2011, 01:39 am
Buena tarde,
Con respecto a las respuestas, todas están erradas, pero vamos no del todo y no es por desmeritarles. En realidad el RunPE obviamente tiene estrecha relación con el Formato PE, pero no es exactamente eso.
El famoso RunPE es una técnica la cual permite ejecutar archivos ("on the fly" - Karcrack), es decir sin necesidad de que el archivo ocupe tamaño físico, esto se hace porque el archivo está plasmado en un buffer en memoria. Esta técnica es usada en malware generalmente en Cifradores, los cuales tienen en su cuerpo el archivo cifrado, luego en memoria lo descifran y lo ejecutan, y esto no llamará mucho la atención.

Como funciona un RunPE:
  • Comprobar que es un ejecutable válido (MZ & PE/x0/x0 Signature).
  • Crear un nuevo proceso suspendido (Generalmente con el mismo ejecutable).
  • Desasignar la proyección del archivo en ese proceso, ImageBase. (Limpiar el ejecutable del proceso).
  • Obtener contextos (Registros).
  • Reservar en memoria la dirección del ImageBase del ejecutable con un tamaño del campo SizeOfImage. (ImageBase y SizeOfImage del archivo a ejecutar).
  • Escribir la cabecera y las secciones alineadas por el campo SectionAlignment.
  • Editar EAX en los registros leídos por la dirección del punto de entrada del archivo a ejecutar.
  • Editar EBX + 8 por el ImageBase del ejecutable a cargar (Cambiar base de la imagen del nuevo proceso).
  • Editar con el nuevo contexto (Escribir registros).
  • Iniciar el proceso suspendido.

Un saludo.


Título: Re: Que es un RunPE?
Publicado por: x64core en 30 Septiembre 2011, 06:01 am
:o interesante
sera que es posible cargar solamente trozos de codigos desifrados para que los AVs no los detecten tan facil? y si fuera asi pero en vb no se puede verdad :P solo en c++
y asm ? :P
aunq noce pero e visto varios codigos en vb :P


Título: Re: Que es un RunPE?
Publicado por: kisk en 30 Septiembre 2011, 06:18 am
:o interesante
sera que es posible cargar solamente trozos de codigos desifrados para que los AVs no los detecten tan facil? y si fuera asi pero en vb no se puede verdad :P solo en c++
y asm ? :P
aunq noce pero e visto varios codigos en vb :P
Claro que es posible y en vb si se puede verda karcrack ?pero es mucho mas lio es mejor hacerlo en asm o c++ a esta tecnica se le llama inyeccion de codigo en memoria algo complejo para empezar por ahi dejame decirte
Mahazar dejo unos tutos espectaculares si lo encuentro te los subo
Saludos


Título: Re: Que es un RunPE?
Publicado por: x64core en 30 Septiembre 2011, 06:32 am
Claro que es posible y en vb si se puede verda karcrack ?pero es mucho mas lio es mejor hacerlo en asm o c++ a esta tecnica se le llama inyeccion de codigo en memoria algo complejo para empezar por ahi dejame decirte
Mahazar dejo unos tutos espectaculares si lo encuentro te los subo
Saludos


ok se te agradeceria tio ;D ya veo que es muy buena tecnica esta  >:D


Título: Re: Que es un RunPE?
Publicado por: kisk en 30 Septiembre 2011, 06:40 am
A claro que es muy buena el Poison Ivy usa esta tecnica y mira uno de los mejores rats que existe
Saludos


Título: Re: Que es un RunPE?
Publicado por: Karcrack en 30 Septiembre 2011, 13:39 pm
Una gran explicación Swash ;-)

Se puede hacer en VB6 lo del cifrado facilmente... pero habría que perder algunas funcionalidades propias del lenguaje... o bien toquetear el linker :P


Título: Re: Que es un RunPE?
Publicado por: [Kayser] en 16 Octubre 2011, 11:29 am
Buena tarde,
Con respecto a las respuestas, todas están erradas, pero vamos no del todo y no es por desmeritarles. En realidad el RunPE obviamente tiene estrecha relación con el Formato PE, pero no es exactamente eso.
El famoso RunPE es una técnica la cual permite ejecutar archivos ("on the fly" - Karcrack), es decir sin necesidad de que el archivo ocupe tamaño físico, esto se hace porque el archivo está plasmado en un buffer en memoria. Esta técnica es usada en malware generalmente en Cifradores, los cuales tienen en su cuerpo el archivo cifrado, luego en memoria lo descifran y lo ejecutan, y esto no llamará mucho la atención.

Como funciona un RunPE:
  • Comprobar que es un ejecutable válido (MZ & PE/x0/x0 Signature).
  • Crear un nuevo proceso suspendido (Generalmente con el mismo ejecutable).
  • Desasignar la proyección del archivo en ese proceso, ImageBase. (Limpiar el ejecutable del proceso).
  • Obtener contextos (Registros).
  • Reservar en memoria la dirección del ImageBase del ejecutable con un tamaño del campo SizeOfImage. (ImageBase y SizeOfImage del archivo a ejecutar).
  • Escribir la cabecera y las secciones alineadas por el campo SectionAlignment.
  • Editar EAX en los registros leídos por la dirección del punto de entrada del archivo a ejecutar.
  • Editar EBX + 8 por el ImageBase del ejecutable a cargar (Cambiar base de la imagen del nuevo proceso).
  • Editar con el nuevo contexto (Escribir registros).
  • Iniciar el proceso suspendido.

Un saludo.

Buenas reabro el tema porque yo tambien tengo dudas sobre el RunPE...
Alguien mas puede arrojar algo mas de luz sobre el tema?
Alguien puede explicarme que se entiende por obtener los contextos de un proceso? Tampoco entiendo porque hay que editar el ebx+8...