Descarga de malware desde sitio falso para consultar CURP

Resumen

En este reporte se describe el análisis de una muestra que se obtuvo de un sitio donde supuestamente se podía consultar y descargar la CURP (Clave Única de Registro de Población) de México. El troyano recolecta información del sistema y la envía cifrada a varios servidores remotos. También utiliza tres métodos distintos para asegurar su persistencia en el equipo infectado.

 

Introducción

Un sitio phishing del Servicio de Administración Tributaria (SAT) de México en donde supuestamente se podía consultar y descargar la CURP de un usuario después de ingresar ciertos datos fue reportado al UNAM-CERT. La URL hxxp://curp.tramitesgob.mx/ mostraba un formulario como el que se observa en la siguiente imagen. Después de llenar el formulario, se descargaba el archivo Curp.jpg.exe.

Al revisar el código fuente de la página se encontró que el formulario era insertado por medio de un iframe desde la URL hxxp://xx.xx.xx.142/servicios/CurpPS_HTML/jsp/CurpTDP.html.

 

De acuerdo con el sitio web scumware.org, que contiene una lista de direcciones IP y URLs relacionadas con actividad maliciosa, la IP del sitio falso de consulta de CURP es 174.136.28.72 y aloja otros dominios tanto de phishing como de descarga de malware.

 

 

Análisis Dinámico

El archivo descargado después de llenar el formulario fue Curp.jpg.exe. La extensión “jpg” se añadió al nombre del archivo para hacer creer al usuario que se trataba de una imagen.

Al ejecutar la muestra en un ambiente controlado se crea el proceso curp.jpg.exe y, a partir de éste, el subproceso explorer.exe.

 

Revisa que el equipo tenga conexión a Internet haciendo peticiones a update.microsoft.com y Microsoft.com. En el tráfico de red también se pueden observar peticiones a los siguientes dominios:

 

Dominios IP País
saludmexico.co 200.58.111.180 Argentina
saludmexico.org 67.227.172.216 Estados Unidos
seniormios.com 184.95.38.195 Estados Unidos
nostalgiamejicana.com 184.95.38.195 Estados Unidos
sinonimex.com 184.95.38.195 Estados Unidos
servidorgob.com 184.168.221.79 Estados Unidos
bogservidor.com 184.168.221.80 Estados Unidos
comentariosgob.com 184.168.221.65 Estados Unidos
tramitandos.com 184.95.38.195 Estados Unidos
contactanosme.com 184.95.38.195 Estados Unidos
tramitandonow.com 184.168.221.79 Estados Unidos
mxtramites.com 50.63.202.75 Estados Unidos

 

 

Después de ejecutar la muestra, ésta se borra a sí misma. Al tratar de detener el proceso desde la herramienta Process Explorer se obtiene un mensaje de error como el que se muestra en la siguiente imagen:

 

Sistema de Archivos

Se crearon dos directorios llamados “Sound Series X”, uno en C:\ProgramData\ y otro en C:\Users\All Users\. Posteriormente se crea una copia del ejecutable en ambos directorios, con un nombre aleatorio formado por 9 minúsculas.

 

 

 

Si se abre Process Explorer con permisos de administrador, se puede detener el proceso explorer.exe, sin embargo, después de unos segundos se ejecuta la muestra de nombre aleatorio creada en el directorio “Sound Series X”, que a su vez genera uno o más subprocesos con el mismo nombre hasta que se vuelve a crear el proceso troyanizado explorer.exe, tal como se muestra en la siguiente imagen.

 

En caso de terminar con el proceso explorer.exe legítimo, el programa malicioso se genera como subproceso de otra aplicación que se encuentre en ejecución en ese momento, en este caso el proceso padre fue regshot.exe.

 

Las técnicas que empleó esta muestra para asegurar su persistencia en el equipo se mencionan a continuación:

1)      Modificación de las subclaves de registro HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\ y HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, agregando el valor “Sound Series X” y la ruta del ejecutable malicioso generado durante la ejecución de Curp.jpg.exe.

 

 

2)      Creación de dos sublclaves de registro en la clave HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\, una con el nombre del ejecutable malicioso generado y la otra con “rstrui.exe”, el nombre de aplicación de Windows para restaurar el sistema. Ejemplo:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\rpeulaaql.exe\DisableExceptionChainValidation: ""

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\rstrui.exe\Debugger: "hemxc.exe"

En la primera subclave de registro se añade “DisableExceptionChainValidation” para deshabilitar la validación de excepciones para el ejecutable que se creó con nombre aleatorio, en este caso “rpeulaaql.exe”.

En la segunda subclave se agrega el valor “Debugger” para que cada vez que se trate de restaurar el sistema, se ejecute “hemxc.exe” en su lugar, que es otro ejecutable malicioso con nombre aleatorio.

 

3)      Windows 7 utiliza un mecanismo DCOM (Distributed Component Object Model) para iniciar Explorer de esta manera: explorer.exe /factory,{GUID}, de tal forma que se pueda dar la comunicación entre procesos en un ambiente Windows. La clase Factory crea una instancia del objeto que se indica en el CLSID. Un CLSID (Class ID) es un número de 128 bits que identifica a una aplicación o componente del sistema sin tener que saber su nombre; por ejemplo, ciertas carpetas importantes de Windows tienen un CLSID asociado, como se puede observar en el siguiente enlace: http://www.autohotkey.com/docs/misc/CLSID-List.htm.

 

C:\Windows\explorer.exe /factory,{682159D9-C321-47CA-B3F1-30E36B2EC8B9} -Embedding

 

En este caso el CLSID es {682159D9-C321-47CA-B3F1-30E36B2EC8B9} e identifica a la clase DesktopExplorerFactory. Esto se puede observar en el campo “Command line” de la siguiente imagen.

 

En el campo “Autostart location” se encuentra la subclave de registro HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\Sound Series X. Debido a esto, cada vez que se cree una nueva instancia de explorer.exe, también se ejecuta la muestra maliciosa.

 

 

Este programa malicioso también realiza las siguientes acciones:

-          Lee el archivo de hosts sin escribir en él.

-          Busca claves de registro que indiquen la instalación de alguno de los siguientes antivirus: Symantec, AVG, Kaspersky, AVP, BitDefender, Trend Micro Titanium, Avast!, Trend Micro Client Framework, G Data, ZoneAlarm, Avira, ESET, Arcabit, Bkav, AhnLab y Baidu.

 

-          Busca claves de registro que indiquen la presencia en el equipo de: Runescape, aplicaciones de Blizzard Entertainment (Diablo, StarCraft, World of Warcraft, etc.), Minecraft, League of Legends, Skype, VMware o Visual Studio.

 

 

Actividad de Red

Después de darle salida a Internet, la muestra de malware intentaba enviar información, utilizando el método POST, a los dominios mencionados anteriormente.

 

Como se puede observar en las siguientes imágenes, los datos se enviaban cifrados y la llave parecía cambiar en cada paquete.

 

 

Análisis Estático

Se utilizó la herramienta Exeinfo PE para saber si la muestra estaba empaquetada, sin embargo, no detectó el uso de algún software de compresión o cifrado de ejecutables (empaquetador).

 

El siguiente paso fue obtener información sobre el tipo de cifrado que tenían los datos que fueron enviados a servidores remotos. Entre las funciones importadas que se obtuvieron durante el análisis estático del ejecutable no se encontró ninguna relacionada con cifrado de datos. Esto nos deja con dos opciones, la muestra puede estar utilizando su propio algoritmo de cifrado o manda llamar las funciones durante su ejecución, es decir, dinámicamente, utilizando las funciones LoadLibrary y GetProcAddress. Con LoadLibrary carga la DLL y con GetProcAddress obtiene la dirección de las funciones. De esta forma se disminuye el tamaño del archivo al no tener que enlazar estáticamente la biblioteca. 

 

Para saber si se están llamando funciones dinámicamente se realizó un volcado de memoria del proceso explorer.exe malicioso con la herramienta LordPE.

 

El archivo que se genera se llama “dumped.exe” y, como se observa en la siguiente imagen, tiene las mismas propiedades que el proceso explorer.exe legítimo.

 

Analizando el archivo con Bintext se pueden observar las siguientes cadenas, que corresponden a algunas de las funciones del módulo Crypt32.dll, utilizado para implementar muchas de las rutinas relacionadas con criptografía de los sistemas operativos Windows y Windows Server. 

 

CryptAcquireContextW: Se utiliza para obtener el manejador de un proveedor de servicios criptográficos (CSP por sus siglas en inglés) y es el primer paso para utilizar esta API.

CryptCreateHash: Crea el objeto hash.

CryptHashData: Con esta función se agregan datos, como por ejemplo una contraseña.

CryptGetHashParam: Se utiliza cuando se requiere el valor del hash.

CryptDestroyHash: Destruye el objeto hash.

CryptReleaseContext: Es el último paso, con esto se libera el manejador del CSP.

 

Ahora sabemos que el malware usa funciones de Windows para cifrar los datos que envía a servidores remotos. Utilizando el plugin FindCrypt para IDA Pro (http://www.hexblog.com/?p=27), que determina si un programa utiliza algoritmos criptográficos o funciones hash con base en las constantes que utilizan, sólo se obtuvo el siguiente resultado:

FindCrypt sólo detectó la tabla de valores del CRC (Cyclic Redundancy Check), que se puede observar en la siguiente imagen.