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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  [Taller en construcción]Secciones en archivos PE.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 [6] Ir Abajo Respuesta Imprimir
Autor Tema: [Taller en construcción]Secciones en archivos PE.  (Leído 44,705 veces)
COND0R

Desconectado Desconectado

Mensajes: 3


puff Kevin Mitnick?? un poroto!! xD


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #50 en: 21 Noviembre 2012, 06:19 am »

Muy bueno tu tutorial!! gracias a vos me inicie en la infectacion de PEs!!


PD: El tamaño de Characteristics en IMAGE_FILE_HEADER es de 2 bytes no de 4, aqui tienen la web de microsoft (http://msdn.microsoft.com/en-us/library/ms809762.aspx)
donde aparece el tamaño  ;D
« Última modificación: 29 Noviembre 2012, 17:53 pm por COND0R » En línea

El lenguaje global tendría que ser C++ xD...
COND0R

Desconectado Desconectado

Mensajes: 3


puff Kevin Mitnick?? un poroto!! xD


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #51 en: 29 Noviembre 2012, 17:49 pm »

Tengo una duda... AddressOfEntryPoint es la direccion relativa donde empieza el codigo? si lo cambio por la direccion de mi sección... empesaria el programa en mi sección de codigo?? y si fuera asi luego de ejecutar mi codigo malisioso puedo hacer un salto a la sección .text donde esta el codigo del programa?? gracias de antemano  :rolleyes:
En línea

El lenguaje global tendría que ser C++ xD...
limiaspasdaniel

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #52 en: 29 Agosto 2013, 14:36 pm »

Hola.. perdonar por reabrir el tema pero he estado mirando y no me queda claro lo del 0x17 , porque exactamente ese tamaño? De verdad que me he repasado el Taller unas cuantas veces y no encuentro el porque. Muchas gracias :D
En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #53 en: 30 Agosto 2013, 19:11 pm »

Hola.. perdonar por reabrir el tema pero he estado mirando y no me queda claro lo del 0x17 , porque exactamente ese tamaño? De verdad que me he repasado el Taller unas cuantas veces y no encuentro el porque. Muchas gracias :D

porque el es tamaño que tiene la cadena TALLER DE SECCIONES EHN

23 decimal = 0x17 Hexadecimal.

saludos
En línea

magicboiz

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #54 en: 17 Enero 2014, 11:06 am »

Hola "The Swash"

soy un novatillo en esto. El caso es que me estoy haciendo un script en python para "expandir" la sección .text, y siguiendo tus pasos (que seguramente no los haya seguido al 100%) no me funciona.

El problema que me encuentro, es que los DATA_DIRECTORIES que hay dentro del PE, hacen referencia a distintas secciones (.data, .idata, .rss, etc) que claro, al verse desplazadas por el incremento de .text, pues cambian sus direcciones. Eso por no hablar de los jodido que es navegar por dentro de los resource directories, sus subdirectorios....

¿Qué pista me das para resolver este tema de los DATA_DIRECTORIES y las refencias a las secciones?


gracias majo.
« Última modificación: 17 Enero 2014, 11:08 am por magicboiz » En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #55 en: 17 Enero 2014, 21:09 pm »

Hola "The Swash"

soy un novatillo en esto. El caso es que me estoy haciendo un script en python para "expandir" la sección .text, y siguiendo tus pasos (que seguramente no los haya seguido al 100%) no me funciona.

El problema que me encuentro, es que los DATA_DIRECTORIES que hay dentro del PE, hacen referencia a distintas secciones (.data, .idata, .rss, etc) que claro, al verse desplazadas por el incremento de .text, pues cambian sus direcciones. Eso por no hablar de los jodido que es navegar por dentro de los resource directories, sus subdirectorios....

¿Qué pista me das para resolver este tema de los DATA_DIRECTORIES y las refencias a las secciones?


gracias majo.

Para expandir la sección de codigo ( .text normalmente ) que es la primera sección además, y que la imagen del ejecutable quede totalmente funcional debes de incrementar a todos campos en el PE header,instrucciones que hacen referencia a las posteriores secciones de la sección objectivo el valor a incrementar a la sección alineado por SectionAlignement. Un simple ejemplo, Tenemos una imagen PE que contiene dos secciones ( .text y .data ):


Código:
        Virtual size    Virtual address     Raw size    Raw Offset
.text   0x1000          0x1000              0x1000      0x400
.data   0x1000          0x2000              0x1000      0x1400

Así, si incrementados 0x1000 bytes a la sección de codigo (.text) debes actualizar todas las secciones posteriores a esta, en este caso solo es .data.
de lo contrario se estaria generando una malformacion en la estructura ya que la primera sección tendria un nuevo tamaño de 0x2000 bytes y la sección .data se supondria que estaria cargandose desde la direccion 0x2000 lo cual es incorrecto. así debemos actualizar el Campo Virtual Address de la sección .data ( 0x2000 ) y sumarle ese valor alineado ( 0x1000 ) quedando como resultado 0x3000. Con eso actualizamos los IMAGE_SECTION_HEADER's pero en
la imagen del PE no solo se deben actualizar esas estructuras sino también DATA_DIRECTORIES->VirtualAddress, y todas las referencias que se hagan en la sección objetivo a las posteriores secciónes, por ejemplo si en la sección .text existe un instruccion como esta:

PUSH dword ptr [0x2000]

Lo cual "pushearia" los primeros cuatro bytes de la sección .data entonces tambíen se tendria que actualizar esta instrucción y todas las instrucciones que hacen referencia como dije antes. Realmente esto no es una tarea facil ya que se require una reprogramación total de la imagen y analisis del codigo tomando en cuenta además punteros a punteros:

MOV eax, dword ptr [0x2000] ; 0x2000 = 0x2000
XXX Reg,dword ptr [eax+Off]
XXX Reg,dword ptr [eax+Off]
....

Lo que podria ayudar es si la imagen PE tiene tabla de relocalización asi de evita el analisis de codigo en busca de referencias a las posteriores secciones,
así tomando la tabla de relocalización y actualizandola. A pesar de eso no realmente asegura que se obtendra una imagen totalmente funcional ya que
si el programa no esta bien estructura y por alguna razon toma en cuenta cierto campos de la imagen del PE que han sido modificados entonces tambien se tendrian que actualizar. A pesar de todo eso puedo decir que es posible.











En línea

MixGammers

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #56 en: 19 Enero 2014, 17:52 pm »

Excelente el taller, espero mas con ansias
En línea

magicboiz

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #57 en: 20 Enero 2014, 15:14 pm »

x64Core

gracias por tu respuesta. Estoy intentando añadir el espacio al final de la sección .text, por lo que el código entiendo que no debiera presentar problemas no? ¿O me podría encontrar código ejecutable en las secciones .data/.idata/.rsc/etc?

Mi objetivo es simplemente hacer un hueco grande al final de la sección .text.

¿Cómo lo ves?


Para expandir la sección de codigo ( .text normalmente ) que es la primera sección además, y que la imagen del ejecutable quede totalmente funcional debes de incrementar a todos campos en el PE header,instrucciones que hacen referencia a las posteriores secciones de la sección objectivo el valor a incrementar a la sección alineado por SectionAlignement. Un simple ejemplo, Tenemos una imagen PE que contiene dos secciones ( .text y .data ):


Código:
        Virtual size    Virtual address     Raw size    Raw Offset
.text   0x1000          0x1000              0x1000      0x400
.data   0x1000          0x2000              0x1000      0x1400

Así, si incrementados 0x1000 bytes a la sección de codigo (.text) debes actualizar todas las secciones posteriores a esta, en este caso solo es .data.
de lo contrario se estaria generando una malformacion en la estructura ya que la primera sección tendria un nuevo tamaño de 0x2000 bytes y la sección .data se supondria que estaria cargandose desde la direccion 0x2000 lo cual es incorrecto. así debemos actualizar el Campo Virtual Address de la sección .data ( 0x2000 ) y sumarle ese valor alineado ( 0x1000 ) quedando como resultado 0x3000. Con eso actualizamos los IMAGE_SECTION_HEADER's pero en
la imagen del PE no solo se deben actualizar esas estructuras sino también DATA_DIRECTORIES->VirtualAddress, y todas las referencias que se hagan en la sección objetivo a las posteriores secciónes, por ejemplo si en la sección .text existe un instruccion como esta:

PUSH dword ptr [0x2000]

Lo cual "pushearia" los primeros cuatro bytes de la sección .data entonces tambíen se tendria que actualizar esta instrucción y todas las instrucciones que hacen referencia como dije antes. Realmente esto no es una tarea facil ya que se require una reprogramación total de la imagen y analisis del codigo tomando en cuenta además punteros a punteros:

MOV eax, dword ptr [0x2000] ; 0x2000 = 0x2000
XXX Reg,dword ptr [eax+Off]
XXX Reg,dword ptr [eax+Off]
....

Lo que podria ayudar es si la imagen PE tiene tabla de relocalización asi de evita el analisis de codigo en busca de referencias a las posteriores secciones,
así tomando la tabla de relocalización y actualizandola. A pesar de eso no realmente asegura que se obtendra una imagen totalmente funcional ya que
si el programa no esta bien estructura y por alguna razon toma en cuenta cierto campos de la imagen del PE que han sido modificados entonces tambien se tendrian que actualizar. A pesar de todo eso puedo decir que es posible.












En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #58 en: 20 Enero 2014, 18:36 pm »

x64Core

gracias por tu respuesta. Estoy intentando añadir el espacio al final de la sección .text, por lo que el código entiendo que no debiera presentar problemas no? ¿O me podría encontrar código ejecutable en las secciones .data/.idata/.rsc/etc?

Mi objetivo es simplemente hacer un hueco grande al final de la sección .text.

¿Cómo lo ves?



Todo depende de como sea la estructura del diseño del programa y sí yo podria facilmente almacenar código/bytes en cualquier sección
y tener un puntero/dirección absoluta que indicara el inicio del código o bien guiandome en la estructura PE y tener un offset hacia el código.
De hecho la primera opción es bien usada por los compiladores cuando almacenamos datos y hacemos referencia a ellos desde la sección de código.
La segunda podria ser implementada por el programador, por lo que todo estos asuntos debes de estar considerando a la hora de modificar las secciónes de lo
contrario generarias una imagen del PE invalidad.
En línea

kisk

Desconectado Desconectado

Mensajes: 55



Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #59 en: 2 Abril 2017, 05:11 am »

Buenas alguien sabe que archivo uso The Swash en la pirmera parte dice que es un archivo que pesa 1.5kb alguien sabe si uso c++( si usaron c++ como hizo un archivo tan pequeño ) y la api MessageBoxA o fasm? gracias
Saludos
En línea

La vieja escuela me da nostalgia la nueva me da naucias dime cual es la escuela si ambas me deprimen (8)
Páginas: 1 2 3 4 5 [6] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nuevas secciones en el foro
Sugerencias y dudas sobre el Foro
Maikfield 6 2,862 Último mensaje 30 Agosto 2005, 11:12 am
por programatrix
Secciones en php
PHP
keype 4 7,323 Último mensaje 28 Mayo 2007, 00:29 am
por dominioswww
un par de secciones mas
Sugerencias y dudas sobre el Foro
peib0l 4 2,856 Último mensaje 25 Mayo 2007, 18:07 pm
por -Elkiot-
Taller de Vic_Thor: PROTOCOLO 802.11. TALLER WiFi « 1 2 »
Hacking Wireless
ChimoC 10 60,554 Último mensaje 8 Agosto 2009, 12:04 pm
por ChimoC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines