Analisis estático del Ransomware Wannacry usando SSMA

Primero vamos a descargar el ransomware WannaCry desde algun repositorio de malware y validamos con un algoritmo HASH tipo MD5 o SHA1 para validar que el archivo sea el correcto y no haya sido modificado:

Image for post
Image for post

Luego vamos usar una herramienta llamada SSMA (Simple Static Malware Analyzer) que ha sido desarrollada por un colega de Seguridad del CERT de Georgia, llamado: Lasha Khasaia, Malware Researcher / Reverse Engineer, Tbilisi.

Image for post
Image for post

Instalando SSMA sobre una maquina con Linux, debemos tener Python para poder correr sin problemas::

  • Installar: #git clone https://github.com/secrary/SSMA
  • # sudo pip3 install -r requirements.txt
  • You are using pip version 9.0.1, however version 10.0.1 is available.
  • You should consider upgrading via the ‘pip install — upgrade pip’ command.
  • # pip install — upgrade pip

Para poder usarlo desde Kali:

  • #sudo apt install pyhton3-pip ( Desde KALI)
  • # sudo pip3 install -r requirements.txt

Para ejecutarlo desde línea de comando:

# python3 ssma.py -h

Como pre-requisito se necesita tener instalado: Python, PIP3, https://www.python.org/

Ahora vamos a ejecutar en análisis del ransomware utilizando SSMA, primero se valida el archivo, tipo, MD5 y SHA de acuerdo al archivo descargado luego las secciones y tiene un nivel alto de Entropia PE File: 7.995470941164686. Entropia se podría definir como una medida de la “aleatoriedad” de los datos en un archivo, medida en una escala de 1 a 8 (8 bits en un byte), donde los archivos de texto típicos tendrán un valor bajo y los archivos cifrados o comprimidos tendrá una gran medida.

Image for post
Image for post

Funciones, llamadas y DLLs del sistemas Operativo Windows, que frecuentemente son usadas por código malicioso:

  • CreateFileA — Creates a new file or opens an existing file.
  • GetTempPathW — Returns the temporary file path.
  • LoadResource — Loads a resource from a PE file into memory
  • LoadLibraryA — Loads a DLL into a process that may not have been loaded when the program started.
  • GetProcAddress — Retrieves the address of a function in a DLL loaded into memory.
  • CreateProcessA — Creates and launches a new process. If malware creates a new process, you will need to analyze the new process as well.
  • FindResourceA — Used to find a resource in an executable or loaded DLL.
  • CreateServiceA — Creates a service that can be started at boot time

Reglas Yara que tienen como objetivo detectar técnicas anti-depuración y anti-virtualización utilizadas por el malware para evadir el análisis automatizado.

  • win_registry — Affect system registries
  • win_files_operation — Affect private profile

Reglas Yara tienen como objetivo detectar empaquetadores de sofware bien conocidos, que el malware puede usar para ocultarse:

  • IsPE32
  • IsWindowsGUI
  • IsPacked — Entropy Check
  • HasRichSignature — Rich Signature Check

Dominios y correos electrónicos usados:

Image for post
Image for post

Reglas de Yara apuntan a detectar la existencia de algoritmos criptográficos usados por el ransomware para encriptar los archivos locales:

  • CRC32, Codigo de redundancia ciclica, frecuentemente usado para validar la no alteración de los datos.
  • AES Advanced Encryption Standard, algoritmo simetrico que se usa frecuentemente para encriptar.
Image for post
Image for post

Written by

Blog de Ciberseguridad, Hacking, Recomendaciones de Protección y Buenas Practicas para las Empresas.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store