Hola,
Intel Security ha visto recientemente un nuevo tipo de ransomware, Zcrypt, que puede auto replicarse. Este “virus ransomware” llega por correo electrónico en un archivo adjunto malicioso o usurpando una instalación de Adobe Flash Player. El malware se copia en unidades extraíbles para infectar otras máquinas.
Zcrypt utiliza el Sistema de instalación de secuencias de comandos de Nullsoft, que funciona como un archivo Zip, descomprime y carga el contenido mientras se ejecuta.
- ¿Qué importancia tiene la adquisición de Blue Coat Systems por Symantec por $ 4,65 mil millones?
- ¿Cuál es el vínculo entre el cifrado y el delito cibernético?
- ¿Por qué Kaspersky se actualiza tan lentamente?
- Cómo deshabilitar un archivo de virus .bat en mi computadora
- ¿Cuáles son los pasos efectivos para investigar un virus informático en una red corporativa?
Resumen del archivo Zcrypt original.
Si echamos un vistazo al recurso, podemos ver información relacionada con el instalador. La siguiente ventana, extraída del visor de recursos, está relacionada con el instalador, pero cuando se ejecuta la muestra no aparece ninguna ventana.
Información de recursos para el archivo Zcrypt.
Usando una sencilla herramienta de descompresión, podemos ver el contenido del archivo.
Contenido extraído del ransomware Zcrypt.
Los archivos contenidos en la muestra original:
- $ PLUGINSDIR contiene el archivo system.dll relacionado con el motor Nullsoft.
- Archivo cCS leído por la DLL antes de ejecutar la carga útil final
- 9 archivos leídos por la DLL antes de ejecutar la carga útil final.
- dll es la DLL maliciosa que ejecuta la carga útil final.
Análisis DLL
SetCursor.dll es cargado por el instalador. La siguiente captura de pantalla nos brinda información sobre esta DLL:
Información resumida de SetCursor.dll.
También podemos ver que la fecha de compilación no es correcta e indicar un archivo muy antiguo (1970).
Los metadatos del archivo están relacionados con la herramienta TortoisePlink y el icono de la muestra está relacionado con el software Putty.
Metadatos para SetCursor.dll.
La muestra usa ofuscación para ocultar su comportamiento y evitar el análisis. La tabla de exportación está completamente ofuscada y no se puede leer estáticamente.
Extracto de la tabla de exportación ofuscada.
Comportamiento
El ejemplo crea una clave de ejecución del registro y un archivo LNK en la carpeta de inicio para persistencia. Calcula una suma MD5 de la cadena (nombre de computadora @ nombre de usuario) y la guarda en cid.ztxt. Luego, suelta las claves públicas y privadas y consulta una IP remota para registrar la máquina infectada. Una vez que la máquina está registrada, el malware comienza a cifrar los archivos con la extensión Zcrypt. Una vez que finaliza el cifrado, suelta un archivo HTML en el escritorio, descarga un mensaje de rescate PNG desde 93.174.90.126 y la dirección de Bitcoin para pagar el rescate.
Una vez que se ejecuta la muestra, crea o consulta las siguientes claves de registro:
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \ zcrypt
- HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ ShellCompatibility \ Applications \ zcrypt.exe
- HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Compatibility32 \ zcrypt
- HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Opciones de ejecución de archivos de imagen \ zcrypt.exe
- HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Custom \ zcrypt.exe
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths \ zcrypt.exe
- HKCU \ Software \ Classes \ AppID \ zcrypt.exe
- HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Custom \ zcrypt.exe
Y crea estos archivos:
- C: \ Users \ \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup \ zcrypt.lnk
- C: \ Users \ \ AppData \ Roaming \ zcrypt.exe
- C: \ Users \ \ AppData \ Roaming \ cid.ztxt
- C: \ Users \ \ AppData \ Local \ Temp \ nsr76A8.tmp
- C: \ Users \ \ AppData \ Local \ Temp \ nsr76A9.tmp \ System.dll
- C: \ Users \ \ AppData \ Local \ Temp \ nsm3B6D.tmp
- C: \ Users \ \ AppData \ Local \ Temp \ nsm3B6E.tmp
- C: \ Users \ \ AppData \ Local \ Temp \ nsm3B6E.tmp \ System.dll
- C: \ Users \ \ AppData \ Roaming \ Coalfish.cCS
- C: \ Users \ \ AppData \ Roaming \ Relay.9
- C: \ Users \ \ AppData \ Roaming \ SetCursor.dll
- C: \ Users \ \ Desktop \ SetCursor.DLL
- C: \ Windows \ System32 \ SetCursor.DLL
- C: \ Windows \ system \ SetCursor.DLL
- C: \ Windows \ SetCursor.DLL
- C: \ Users \ \ Desktop \ zcrypt.exe.Local
- C: \ Users \ \ AppData \ Roaming \ public.key
- C: \ Users \ \ AppData \ Roaming \ private.key
Conexión de red
El ejemplo realiza las siguientes solicitudes al sitio Google (93.174.90.126):
Solicitud de clave pública:
OBTENGA http://dedicate-hosting.ml/c8a40… HTTP / 1.1
Solicitud de clave privada:
OBTENGA http://dedicate-hosting.ml/c8a40… HTTP / 1.1
Solicitud de dirección de Bitcoin:
OBTENGA http://dedicate-hosting.ml/c8a40… HTTP / 1.1
Conexión: Keep-Alive
Solicitud de mensaje de rescate PNG:
OBTENER
HTTP / 1.1
Después de una infección exitosa, las víctimas ven el mensaje de rescate:
El mensaje de rescate HTML de Zcrypt.
El mensaje de rescate PNG.
Cavar más profundo
Para analizar más a fondo Zcrypt, cambiamos el campo característico de la muestra para cargarlo en OllyDbg como un ejecutable normal. La DLL utiliza múltiples funciones WriteProcessMemory para escribir la carga útil en el espacio de memoria. (Para más información, consulte https://msdn.microsoft.com/en-us….)
BOOL WINAPI WriteProcessMemory (
_In_ HANDLE hProcess,
_In_ LPVOID lpBaseAddress,
_In_ LPCVOID lpBuffer,
_In_ SIZE_T nSize,
_Out_ SIZE_T * lpNumberOfBytesWritten
);
La función WriteProcessMemory.
Una vez que se completa el paso final WriteProcessMemory, podemos extraer la carga útil de la memoria con la dirección del búfer.
Extrayendo la carga útil de la memoria.
Después de extraer la carga útil, podemos ver el idioma utilizado y la fecha de compilación original, que está cerca de la fecha de infección.
Resumen de la carga útil.
Un archivo de base de datos del programa nos muestra información sobre el nombre original, MyEncrypter2:
La muestra también usa algunos trucos para evitar el análisis:
Los trucos antidebugging de Zcrypt.
Para cifrar los archivos en el sistema, la muestra usa OpenSSL. Podemos encontrar algunas referencias en el código:
Referencias a OpenSSL.
Este código está relacionado con evp_enc.c, que podemos encontrar en github.
Más referencias a OpenSSL.
Todos los archivos se pueden encontrar aquí.
La lista de archivos específicos:
.zip, .mp4, .avi, .mkv, .wmv, .swf, .pdf, .sql, .txt, .jpeg, .jpg, .png, .bmp, .psd, .doc, .docx, .rtf , .xls, .xlsx, .odt, .ppt, .pptx, .xml, .cpp, .asm, .php, .aspx, .html, .conf, .sln, .mdb, .3fr, .accdb,. arw, .bay, .cdr, .cer, .cr2, .crt, .crw, .dbf, .dcr, .der, .dng, .dwg, .dxf, .dxg, .eps, .erf, .indd, .kdc, .mdf, .mef, .mrw, .nef, .nrw, .odb, .odp, .ods, .orf, .p12, .p7b, .p7c, .pdd, .pef, .pem, .pfx , .pst, .ptx, .r3d, .raf, .raw, .rw2, .rwl, .srf, .srw, .wb2, .wpd, .jnt, .pub, .trc, .tar, .jsp,. mpeg, .msg, .log, .vob, .max, .3ds, .3dm, .cgi, .jar, .class, .java, .bak, .pdb, .apk, .sav, .cbr, .pkg, .tar.gz, .fla, .vcxproj, .XCODEPROJ, .eml, .emlx, .mbx, .vcf
Extensiones dirigidas
La muestra también intenta crear autorun.inf en la unidad conectada o en la unidad de red utilizando la función GetDriveType. Con esta capacidad, el malware puede autorreplicarse e infectar a más personas sin la acción humana. (Para más información, consulte https://msdn.microsoft.com/en-gb….)
UINT WINAPI GetDriveType (_In_opt_ LPCTSTR lpRootPathName);
La función GetDriveType.
GetDriveType en la muestra.
El archivo de ejecución automática.
Crear un archivo de ejecución automática en una unidad extraíble.
Para descargar un archivo del servidor, la muestra usa la función URLDownloadToFile y CreateFile para copiar los archivos en la máquina infectada.
Descargar y crear el archivo PNG desde el sitio remoto.
Finalmente, la muestra crea un archivo por lotes para eliminar algunos archivos, como la clave privada. El malware ejecuta el archivo con la función WinExec con la opción CMDShow establecida en “0” para evitar mostrar la ventana de comandos. (Para más información, vea la función ShowWindow)
Crear y ejecutar el archivo por lotes.
Más información: Zcrypt amplía su alcance como ‘Virus Ransomware’ – McAfee
Gracias..