En la red ha aparecido un nuevo cifrador, Nemty, que se presume es un sucesor de GrandCrab o Buran. Este malware se distribuye principalmente desde un sitio web falso de PayPal y cuenta con varias características interesantes. Más detalles sobre el funcionamiento de este ransomware a continuación.

Nuevo cifrador Nemty detectado por el usuario 7 de septiembre de 2019. El malware se propagaba a través de un sitio, , también hay posibilidad de que el ransomware penetre en el ordenador a través del kit de exploits RIG. Los delincuentes optaron por métodos de ingeniería social para inducir al usuario a ejecutar el archivo cashback.exe, que aparentemente recibe desde el sitio de PayPal. Curiosamente, en Nemty se indica un puerto incorrecto para el servicio proxy local de Tor, lo que impide que el malware envíe datos a su servidor. Por tanto, el usuario tendrá que subir los archivos cifrados a la red Tor por su cuenta, si desea pagar el rescate y esperar la descifrado de los delincuentes.
Varios datos curiosos sobre Nemty sugieren que fue desarrollado por las mismas personas o relacionados con los cibercriminales de Buran y GrandCrab.
- Al igual que en GandCrab, en Nemty hay un easter egg: un enlace a una foto del presidente ruso Vladimir Putin con un chiste obsceno. En el cifrador obsoleto GandCrab había una imagen con el mismo texto.
- Los artefactos lingüísticos de ambos programas indican que son de los mismos autores de habla rusa.
- Este es el primer cifrador que utiliza una clave RSA de 8092 bits. Aunque no tiene sentido: una clave de 1024 bits es bastante suficiente para protegerse contra descifrado.
- Al igual que Buran, el cifrador está escrito en Object Pascal y compilado en Borland Delphi.
Análisis estático
La ejecución del código malicioso ocurre en cuatro etapas. El primer paso es ejecutar cashback.exe, un archivo ejecutable PE32 para MS Windows con un tamaño de 1,198,936 bytes. Su código está escrito en Visual C++ y compilado el 14 de octubre de 2013. Contiene un archivo comprimido que se descomprime automáticamente al iniciar cashback.exe. El software utiliza la biblioteca Cabinet.dll y sus funciones FDICreate(), FDIDestroy() y otras para obtener archivos del archivo .cab.


SHA-256: A127323192ABED93AED53648D03CA84DE3B5B006B641033EB46A520B7A3C16FC
Después de descomprimir el archivo, aparecerán tres archivos.

Luego se inicia temp.exe, un archivo ejecutable PE32 para MS Windows de 307,200 bytes. El código está escrito en Visual C++ y empaquetado con el compresor MPRESS, un empaquetador similar a UPX.

SHA-256: EBDBA4B1D1DE65A1C6B14012B674E7FA7F8C5F5A8A5A2A9C3C338F02DD726AAD
El siguiente paso es ironman.exe. Después de ejecutar temp.exe, descompone los datos incrustados en temp y los renombra a ironman.exe, un archivo ejecutable PE32 de 544768 bytes. El código está compilado en Borland Delphi.
![]()
SHA-256: 2C41B93ADD9AC5080A12BF93966470F8AB3BDE003001492A10F63758867F2A88
El último paso es reiniciar el archivo ironman.exe. Durante su ejecución, transforma su código y se inicia desde la memoria. Esta versión de ironman.exe es maliciosa y se encarga del cifrado.
Vector de ataque
Hasta ahora, el ransomware Nemty se distribuye a través del sitio pp-back.info.

La cadena completa de infección se puede ver en sandbox.
Instalación
Cashback.exe es el inicio del ataque. Como se mencionó anteriormente, cashback.exe descomprime el archivo .cab que contiene. Luego crea una carpeta TMP4351$.TMP del tipo %TEMP%IXxxx.TMP, donde xxx es un número del 001 al 999.


A continuación, se establece la clave del registro que se ve así:
[HKLMSOFTWAREWOW6432NodeMicrosoftWindowsCurrentVersionRunOncewextract_cleanup0]
“rundll32.exe” “C:Windowssystem32advpack.dll,DelNodeRunDLL32 «C:UsersMALWAR~1AppDataLocalTempIXPxxx.TMP»”
Se utiliza para eliminar los archivos descomprimidos. Finalmente, cashback.exe inicia el proceso temp.exe.

Temp.exe es la segunda etapa de la cadena de infección
Es un proceso iniciado por el archivo cashback.exe, el segundo paso en la ejecución del virus. Intenta descargar AutoHotKey, una herramienta para ejecutar scripts en Windows, y ejecutar el script WindowSpy.ahk, ubicado en la sección de recursos del archivo PE.

El script WindowSpy.ahk descompone el archivo temp en ironman.exe, utilizando el algoritmo RC4 y la contraseña IwantAcake. La clave de la contraseña se obtiene mediante el algoritmo de hash MD5.
Luego, temp.exe invoca el proceso ironman.exe.
![]()
Ironman.exe es el tercer paso
Ironman.exe lee el contenido del archivo iron.bmp y crea un archivo iron.txt con el criptolocker que se iniciará a continuación.


Después de esto, el virus carga iron.txt en la memoria y lo reinicia como ironman.exe. Luego, iron.txt se elimina.
ironman.exe es la parte principal del ransomware NEMTY que cifra los archivos en la computadora comprometida. El malware crea un mutex llamado hate.

Primero, determina la ubicación geográfica de la computadora. Nemty abre un navegador y descubre la IP en . En el sitio [IP]/countryName se determina el país por la IP obtenida, y si la computadora se encuentra en alguna de las regiones mencionadas a continuación, la ejecución del código malicioso se detiene:
- Rusia
- España
- Ucrania
- Kazajistán
- Tayikistán
Probablemente los desarrolladores no quieren atraer la atención de las autoridades en sus países de residencia, por lo que no cifran los archivos en sus jurisdicciones 'nativas'.
Si la dirección IP de la víctima no está en la lista anterior, el virus cifra la información del usuario.

Para evitar la recuperación de archivos, se eliminan sus copias de sombra:

Luego se crea una lista de archivos y carpetas que no serán cifrados, así como una lista de extensiones de archivos.
- windows
- $RECYCLE.BIN
- rsa
- NTDETECT.COM
- ntldr
- MSDOS.SYS
- IO.SYS
- boot.ini AUTOEXEC.BAT ntuser.dat
- desktop.ini
- CONFIG.SYS
- BOOTSECT.BAK
- bootmgr
- programdata
- appdata
- osoft
- Common Files
log LOG CAB cab CMD cmd COM com cpl
CPL exe EXE ini INI dll DDL lnk LNK url
URL ttf TTF DECRYPT.txt NEMTY Ofuscación
Para ocultar las URL y los datos de configuración incrustados, Nemty utiliza un algoritmo de codificación base64 y RC4 con la frase clave fuckav.

El proceso de descifrado utilizando CryptStringToBinary es el siguiente

Cifrado
Nemty utiliza cifrado en tres capas:
- AES-128-CBC para archivos. Se genera una clave AES de 128 bits al azar y se utiliza la misma para todos los archivos. Se almacena en el archivo de configuración en la computadora del usuario. IV se genera aleatoriamente para cada archivo y se almacena en el archivo cifrado.
- RSA-2048 para cifrar los archivos IV. Se genera un par de claves para la sesión. La clave privada de la sesión se almacena en el archivo de configuración en la computadora del usuario.
- RSA-8192. La clave pública principal está integrada en el programa y se utiliza para cifrar el archivo de configuración, que contiene la clave AES y la clave secreta para la sesión RSA-2048.
- Primero Nemty genera 32 bytes de datos aleatorios. Los primeros 16 bytes se utilizan como clave AES-128-CBC.

El segundo algoritmo de cifrado es RSA-2048. El par de claves es generado por la función CryptGenKey() e importado por la función CryptImportKey().

Una vez que se ha generado el par de claves para la sesión, la clave pública se importa al Proveedor de Servicio Criptográfico de Microsoft.

Ejemplo de clave pública generada para la sesión:

Luego la clave privada se importa al CSP.

Ejemplo de clave privada generada para la sesión:
Y por último está el RSA-8192. La clave pública principal se almacena en forma cifrada (Base64 + RC4) en la sección .data del archivo PE.

La clave RSA-8192 después de ser decodificada en base64 y descifrada con RC4 utilizando la contraseña fuckav se ve así.

Como resultado, todo el proceso de cifrado se ve de la siguiente manera:
- Generación de una clave AES de 128 bits que se utilizará para cifrar todos los archivos.
- Creación de un IV para cada archivo.
- Creación de un par de claves para la sesión RSA-2048.
- Descifrado de la clave existente RSA-8192 utilizando base64 y RC4.
- Cifrado del contenido de los archivos utilizando el algoritmo AES-128-CBC del primer paso.
- Cifrado del IV con la clave pública RSA-2048 y codificación en base64.
- Adición del IV cifrado al final de cada archivo cifrado.
- Adición de la clave AES y de la clave privada de la sesión RSA-2048 en la configuración.
- Los datos de configuración se describen en la sección sobre la computadora infectada, se cifran utilizando la clave pública RSA-8192 principal.
- El archivo cifrado se ve de la siguiente manera:
Ejemplo de archivos cifrados:
Recolección de información sobre la computadora infectada
El ransomware recolecta claves para descifrar los archivos infectados, de modo que el atacante realmente pueda crear un descifrador. Además, Nemty recopila datos del usuario, como nombre de usuario, nombre de la computadora y perfil de hardware.

Llama a las funciones GetLogicalDrives(), GetFreeSpace(), GetDriveType() para recopilar información sobre las unidades de la computadora infectada.
La información recopilada se almacena en un archivo de configuración. Decodificando la cadena, obtenemos una lista de parámetros en el archivo de configuración:

Ejemplo de configuración de la computadora infectada:

El formato de la plantilla de configuración se puede representar de la siguiente manera:
{«General»: {«IP»:»[IP]»,«País»:»[Country]’,«NombreDeLaComputadora»:»[ComputerName]’,«NombreDeUsuario»:»[Username]’,«SO»:»[OS]’,«esRU»:false,«versión»:«1.4’,«CompID»:»{[CompID]}’,«FileID»:»_NEMTY_[FileID]_’,«UserID»:»[UserID]’,«clave»:»[key]’,«pr_key»:»[pr_key]”
Los datos recopilados por Nemty se almacenan en formato JSON en el archivo %USER%/_NEMTY_.nemty. El FileID de 7 caracteres se genera aleatoriamente. Por ejemplo: _NEMTY_tgdLYrd_.nemty. El FileID también se añade al final del archivo cifrado.
Mensaje de rescate
Después de cifrar los archivos, aparece un archivo en el escritorio llamado _NEMTY_[FileID]-DECRYPT.txt con el siguiente contenido:

Al final del archivo hay información cifrada sobre la computadora infectada.

Comunicación en red
El proceso ironman.exe descarga el instalador del navegador Tor desde la dirección y trata de instalarlo.
Luego, Nemty intenta enviar los datos de configuración a la dirección 127.0.0.1:9050, donde espera encontrar un servidor proxy de navegador Tor en funcionamiento. Sin embargo, por defecto, el servidor proxy de Tor escucha en el puerto 9150, mientras que el puerto 9050 es utilizado por el demonio Tor en Linux o la Expert Bundle en Windows. Por lo tanto, los datos no se envían al servidor del atacante. En cambio, el usuario puede cargar el archivo de configuración manualmente, visitando el servicio de descifrado de Tor a través del enlace proporcionado en el mensaje de rescate.
Conexión al proxy Tor:

![]()
HTTP GET crea una solicitud a 127.0.0.1:9050/public/gate?data=

Aquí puede ver los puertos TCP abiertos que utiliza el proxy TORlocal:

Servicio de descifrado Nemty en la red Tor:

Se puede cargar una foto encriptada (jpg, png, bmp) para probar el servicio de descifrado.

Después de esto, el atacante solicita un rescate. Si no se paga, el precio se duplica.

Conclusión
Actualmente, no es posible descifrar archivos encriptados por Nemty sin pagar el rescate. Esta versión del ransomware tiene similitudes con los cifradores Buran y el obsoleto GandCrab: compilado en Borland Delphi y contiene imágenes con el mismo texto. Además, es el primer cifrador que utiliza una clave RSA de 8092 bits, lo cual, hay que repetir, no tiene sentido, ya que una clave de 1024 bits es más que suficiente para la protección. Por último, curiosamente, intenta utilizar un puerto incorrecto para el servicio proxy local de Tor.
Sin embargo, las soluciones y no permiten que el cifrador Nemty acceda a las PC y datos de los usuarios, y los proveedores pueden proteger a sus clientes con . Completa no solo proporciona copias de seguridad, sino también protección mediante , una tecnología especial basada en inteligencia artificial y heurística conductual, que permite neutralizar incluso malware aún desconocido.
Fuente: habr.com
