Instituto Tecnológico de San Juan del Río
Tópicos de Ciberseguridad
Análisis estático de un malware
P R E S E N T A:
Alexis Daniel García Vizuet 20590243
Sergio Saul Acevedo Méndez 20590225
ISC
PERIODO ene-Jun 2024
1.- Como primer paso entramos a VMwareWorkstation
2.- En segundo paso abrimos la maquina de REMnux y también nuestro W10
1
3.- Entramos a nuestras maquinas virtuales
VM de W10
2
3.1.- posteriormente pondremos nuestras VM en NAT para obtener internet y poder descargar nuestro
virus
3.2.- Verificamos conexión
3.3.-Repetimos los mismo para la VM de REMnux
3.4.-VM de REMnux
3.5.-Igualmente colocamos en NAT para tener acceso a internet
3
3.6.- Verficamos conexión
4.- En ambas maquinas debemos entrar a
[Link] para poder elegir en un virus par
analizar el cual sera el mismo para ambas maquinas
5.- en este caso elegimos a [Link]
4
5.1.-Virus descargado en W10
5.2.-Virus descargado en REMnux
6.- procedemos a descargar algunas aplicaciones que usaremos en W10 mas adelante
PEiD te permite detectar si el archivo malicioso está empaquetado o protegido, lo cual es útil para
determinar si se debe realizar un desempaquetado antes de profundizar en el análisis.
Strings de Sysinternals para extraer todas las cadenas legibles dentro del archivo. Esto puede revelar
información importante como URL, comandos, o claves de registro.
5
7.- al igual descargaremos Radare2 es una herramienta poderosa para desensamblar el código y
analizar la estructura interna de los binarios.
8.- Después de haber descargado las aplicaciones que necesitábamos volvemos activar el modo Host
Only en ambas VM
VM REMnux
VM W10
6
9.-revisamos que tengamos ping entre VM
De W10 a REMnux
De REMnux W10
7
10.-Se descomprimió el malware en REMnux
8
11.-Primero vamos analizar el malware en el software Cutter
12.-comieza a realizar nuestro análisis
9
13.-Como podemos observar vemos el Dashboard principal
• Formato: PE (Portable Executable)
El formato PE es comúnmente utilizado por ejecutables en Windows.
• Arquitectura: x86 (32 bits)
Este ejecutable está diseñado para arquitecturas de 32 bits, lo que es típico para sistemas más
antiguos o compatibles con ese entorno.
• Tamaño: 84 kB
Un tamaño relativamente pequeño para un ejecutable, lo cual puede ser indicativo de su
funcionalidad básica o de técnicas de compresión.
• Fecha de Compilación: Martes, 1 de septiembre
Esta información nos indica la fecha aproximada en que el código fue generado, lo que puede
ser útil para entender el contexto temporal en que fue creado el malware.
• Lenguaje: C
El archivo está escrito en el lenguaje de programación C, comúnmente utilizado para escribir
software de bajo nivel, incluyendo malware.
10
13.1-. Seguridad del Archivo
• NX bit: Desactivado La ausencia del bit NX (No-Execute) permite la ejecución de código en
áreas de memoria que deberían ser solo para datos, facilitando posibles ataques como buffer
overflow.
• Canary y Crypto: Desactivados No se utilizan técnicas avanzadas de protección como los
canaries de pila ni cifrado en el código, lo que sugiere que el archivo puede haber sido diseñado
de forma sencilla o que el atacante no implementó defensas para ocultar su naturaleza
maliciosa.
13.2.- Entropía del Archivo
• Valor de Entropía: 6.35 Un valor de entropía relativamente alto puede indicar que el archivo
está ofuscado, comprimido o incluye algún nivel de encriptación. Este tipo de características
es típico en archivos maliciosos que buscan evitar la detección o dificultar su análisis.
13.3.-. Bibliotecas Utilizadas
El archivo hace uso de varias bibliotecas estándar de Windows:
• [Link]: Manipulación de rutas y cadenas de texto.
• [Link]: Funciones básicas del sistema operativo, como manejo de memoria, procesos y
archivos.
• [Link]: Interacción con el shell de Windows, lo que puede sugerir que el malware podría
estar interactuando con el entorno de usuario o archivos del sistema.
13.4.-. Análisis Hashes y Comparación
• MD5: 1904cad4927541e47d453becbd934bf0
o Utilizamos este hash para comparar el archivo con bases de datos de malware
conocidas.
• SHA1: aafa932eda97859e2b72772a3a8581760e860a46
o Se emplea para verificar la integridad y unicidad del archivo.
El análisis de estos hashes en servicios de análisis de malware podría revelar si este archivo ya ha sido
identificado como parte de una campaña de malware específica.
14.-Observamos también las Stings
11
Análisis de Cadenas del Malware
Las cadenas son representaciones de texto que pueden estar incluidas en el binario por diferentes
razones. En este caso, se extraen varias cadenas del malware, cada una con su dirección en memoria,
tipo, longitud y sección en la que se encuentra dentro del archivo. Aquí te explico algunas cadenas
notables y su posible significado:
14.1.-Cadenas Observadas
• 0x00400044:
String: This program cannot be run in DOS mode. Significado: Esta cadena es muy común en
archivos ejecutables para Windows que no pueden ejecutarse en entornos DOS. Suele ser parte
del encabezado del archivo PE (Portable Executable) y no tiene implicaciones maliciosas en
sí misma.
• 0x004001d8, 0x004001ff, 0x00400227: Strings: .text, .data, @.data Significado: Estas son
referencias a las secciones del archivo binario, las cuales forman parte de la estructura del
ejecutable. La sección .text normalmente contiene el código ejecutable, mientras que .data
suele almacenar datos estáticos.
14.2.- Cadenas Ofuscadas
A partir de la dirección 0x00401029, se observan varias cadenas que parecen estar ofuscadas o
codificadas. Ejemplos incluyen:
• 0x00401029: h/?A
• 0x00401036: b/?A
• 0x004012e7: 4Eil4>HAZ
Estas cadenas parecen ser datos no legibles o resultados de alguna técnica de ofuscación. En algunos
casos, los atacantes utilizan ofuscación para evitar que se identifiquen fácilmente las cadenas clave
que podrían revelar las funciones del malware. Podrían ser rutas, nombres de archivos o incluso
instrucciones, pero requieren mayor análisis para su decodificación.
14.3.- Cadenas Codificadas en Diferentes Formatos
Algunas de las cadenas están codificadas en diferentes formatos, como:
• IBM037: Un conjunto de caracteres que representa datos en formato EBCDIC, que es poco
común en ejecutables modernos y puede indicar el uso de técnicas específicas para manipular
archivos o datos de sistemas más antiguos.
• UTF8 y ASCII: Son formatos de codificación de texto estándar, lo que sugiere que algunas
cadenas pueden contener texto legible o instrucciones interpretables directamente.
12
15.- Ahora pasamos analizar el malware en W10
16.-Antes de descomprimir el codigo tenemos que apagar nuestra proteccion en tiempo real para que
nos deje trabajar con el virus
13
17.- cuando se descomprima nos aparecera de este modo
18.- Tenemos que cambiar el nombre del archivo y agregamos el .exe para poder analizar nuestro
malware.
19.- Como podemos obsevar pegamos nuestro malware en la carpeta
14
20.- En este caso podremos analizar nuestro programa con la siguiente aplicación que se corre
mediante el cmd de windows
• "This program cannot be run in DOS mode."
• Esta cadena es parte del encabezado de los archivos ejecutables de Windows (formato PE o
Portable Executable) que indican que el archivo no es compatible con el sistema DOS (un
sistema operativo más antiguo). Esta cadena es estándar y no necesariamente implica algo
malicioso.
• Rich
• La cadena "Rich" es parte de un marcador de compilador que utiliza Microsoft. Se encuentra
en muchos ejecutables de Windows creados con herramientas como Visual Studio. Aunque es
común en archivos legítimos, también puede aparecer en archivos maliciosos creados con las
mismas herramientas.
• .text, .rdata, @.data
• Estas son secciones del archivo ejecutable:
• .text: Contiene el código ejecutable del programa.
• .rdata: Sección de datos de solo lectura, que suele contener información constante.
• @.data: Contiene datos que pueden ser modificados durante la ejecución del programa.
• Cadenas como "Whh", "h/?A", "FpSP", etc.
• Estas cadenas son más difíciles de interpretar directamente, ya que no tienen un significado
textual claro. Podrían ser datos binarios representados como texto, o ser parte de alguna
estructura interna del programa que no está destinada a ser legible para humanos.
15
21.-Por ultimo usamos la herramienta de PEid la cual es una herramienta utilizada para detectar
empaquetadores o compiladores utilizados en archivos ejecutables, y es útil para identificar si un
archivo está ofuscado o comprimido.
• El entrypoint nos indica la dirección de memoria donde comienza la ejecución del programa
cuando se carga en memoria. En este caso, es el valor hexadecimal 00007444.
• El archivo fue compilado utilizando un linker con versión 9.0.
• La herramienta no encontró ninguna firma o patrón asociado a empaquetadores conocidos.
Esto significa que el archivo no está empacado con herramientas comunes de compresión u
ofuscación como UPX, ASPack, etc. El archivo podría estar sin empaquetar, lo que facilita el
análisis porque el código no está cifrado ni comprimido.
16