Siempre que se analiza un archivo PE (archivos
ejecutables para sistemas Windows), todo el mundo recomienda hacer un pequeño
análisis estático.
El objetivo
de esto: "intuir" si nos encontramos ante un "bicho
malicioso" o no.
Dentro de los distintos puntos a mirar, siempre hay
que mirar las SECCIONES del archivo.
Pero para entender que es una sección, es necesario entender que es un archivo PE, y para ello se usará la definición dada por el Wikipedia.
NOTA: https://es.wikipedia.org/wiki/Portable_Executable
Según la Wikipedia:
Definición de archivo PE
según la wikipedia.
De manera gráfica, un archivo PE se compone de:
Composición de un archivo PE,
de manera gráfica.
De las secciones existentes, las más comunes e
interesantes.
SECCIÓN
|
DESCRIPCIÓN
|
.text
|
Contiene las instrucciones que la CPU ejecutará y
por lo tanto, debería ser la única sección que contuviera código.
|
.rdata
|
Normalmente contiene los datos de sólo lectura
usados por el ejecutable. Si no existen las secciones: .idata y .edata, está
sección también puede contener funciones a exportar o importar.
|
.data
|
Contienen los datos globales del ejecutable.
|
.idata
|
Si está presente en el ejecutable, almacena
información sobre las funciones a importar.
|
.rdata
|
Si está presente en el ejecutable, almacena
información sobre las funciones a exportar
|
.pdata
|
Sólo está presente en los ejecutables de 64 bits,
y almacena información sobre el manejo de las excepciones.
|
.rsrc
|
Contiene los recursos usados por el archivo PE
que no son considerados partea del ejecutable, tales como: iconos, imágenes,
menús y cadenas.
|
.reloc
|
Contiene información para la recolocación de
librerías.
|
QUÉ BUSCAR
De las anteriores secciones, la sección que dará
más información para determinar si un archivo PE puede ser un archivo malicioso
es la sección: .rsrc.
El motivo es que en dicha sección más utilizada
para embeber/contener otro programa, el cuál podría ser extraído y ejecutado
por el programa anfitrión.
Nos encontramos, por tanto, con una manera de
ocultación.
Para determinar si un archivo trae embebido otro
debemos fijarnos en el tamaño de la sección.
Otros indicios a buscar son las secciones con nombres
no habituales.
COMO BUSCARLO
Todos los archivos PE pueden ser editados
fácilmente mediante editores y editores hexadecimales, pero entonces, se
debería tener un conocimiento profundo sobre la estructura interna de dichos
archivos. Por esto existen ciertos programas que interpretan la información
interna de los archivos PE y la muestran estructurada y fácilmente legible.
En nuestro caso, para poder ver toda la información
de las secciones de las que se compone un archivo PE, deberemos irnos a: IMAGE_SECTION_HEADER.
EJEMPLOS
MD5:
0E066D6FAF758DD2C6CCFBEA1F989973
NOTA: Este
archivo es un conocido ransomware, más concretamente: Cerber
Contiene un sección: .rsrc de 438 bytes
MD5 del archivo a estudiar
Según VT, 42 motores de 57 lo
detectan como malicioso.
Secciones del archivo
analizado - Parte 1
Secciones del archivo
analizado - Parte 2
MD5: B15B187ADA85381027ABE8E30831385
Contiene un sección: .rsrc de 1192 bytes
MD5 del archivo a estudiar
Según VT, 45 motores de 58 lo
detectan como malicioso.
Secciones del archivo
analizado.
MD5: 1EEAE1E6FD62B56B03BA6EA7CE226EF9
Contiene un sección: .rsrc de 384 bytes, además de
una sección de nombre: .gfids
MD5 del archivo a estudiar
Según VT, 48 motores de 62 lo
detectan como malicioso.
Secciones del archivo
analizado.
Lo que hagas con la información es cosa tuya, no
mía ... pero ten conciencia.