A veces, se siente la necesidad de mirar a los ojos de un creador de virus y preguntar: ¿por qué y para qué? Con la respuesta a la pregunta "cómo" nos encargamos nosotros mismos, pero sería muy interesante saber qué pensaba o en qué se basaba ese o aquel creador de software malicioso, especialmente cuando encontramos tales "joyas".
El protagonista del artículo de hoy es un interesante ejemplo de ransomware. Parece haber sido concebido como un nuevo "secuestrador", pero su implementación técnica se asemeja más a una cruel broma. Hablaremos sobre esta implementación hoy.
Desafortunadamente, rastrear el ciclo de vida de este codificador es prácticamente imposible: hay muy pocas estadísticas sobre él, ya que no ha tenido la suerte de difundirse. Por lo tanto, dejaremos de lado su origen, métodos de infección y otras menciones. Solo hablaremos sobre nuestra experiencia de encuentro con Wulfric Ransomware y sobre cómo ayudamos a un usuario a recuperar sus archivos.
I. Cómo comenzó todo
Nuestra laboratorio antivirus recibe frecuentemente a personas que han sido afectadas por ransomware. Brindamos asistencia sin importar qué productos antivirus tengan instalados. Esta vez, se acercó a nosotros una persona cuyos archivos habían sido afectados por un codificador desconocido.
¡Buen día! Se cifraron archivos en un almacenamiento de archivos (samba4) sin contraseña. Sospecho que la infección provino de la computadora de mi hija (Windows 10 con la protección predeterminada de Windows Defender). No hemos encendido la computadora de mi hija desde entonces. Los archivos están en su mayoría cifrados como .jpg y .cr2. La extensión de los archivos tras el cifrado: .aef.
Recibimos del usuario muestras de archivos cifrados, una nota de rescate y un archivo que probablemente sea la clave que el autor del ransomware necesita para descifrar los archivos.
Aquí están todas nuestras pistas:
- 01c.aef (4481K)
- hacked.jpg (254K)
- hacked.txt (0K)
- 04c.aef (6540K)
- pass.key (0K)
Echemos un vistazo a la nota. ¿Cuántos bitcoins hay esta vez?
Traducción:
Atención, sus archivos han sido cifrados!
la contraseña es única para su PC.Pague la suma de 0.05 BTC a la dirección de bitcoin: 1ERtRjWAKyG2Edm9nKLLCzd8p1CjjdTiF
Después del pago, envíeme un correo, adjuntando el archivo pass.key a Wulfric@gmx.com con la notificación de pago.Después de la confirmación, le enviaré el descifrador para los archivos.
Puede pagar bitcoins en línea de varias maneras:
— pago con tarjeta bancaria
Sobre los bitcoins:
Si tienes alguna pregunta, escríbeme a Wulfric@gmx.com
Como bonificación, te contaré cómo fue hackeada tu computadora y cómo protegerla en el futuro.
Un lobo pomposo, destinado a mostrar a la víctima la seriedad de la situación. Sin embargo, podría haber sido peor.

Fig. 1. -Como bonificación, te diré cómo proteger tu computadora en el futuro. –Parece legítimo.
II. Comencemos a trabajar
Primero echamos un vistazo a la estructura del archivo enviado. Curiosamente, no parecía ser un archivo afectado por un ransomware. Abrimos un editor hexadecimal y miramos. En los primeros 4 bytes se encuentra el tamaño original del archivo, los siguientes 60 bytes están llenos de ceros. Pero lo más interesante se encuentra al final:

Fig. 2 Analizando el archivo dañado. ¿Qué resalta de inmediato?
Todo resultó ser sorprendentemente simple: 0x40 bytes del encabezado fueron trasladados al final del archivo. Para recuperar los datos, solo es necesario devolverlos al principio. El acceso al archivo se ha restablecido, pero el nombre, que sigue cifrado, es más complicado.

Fig. 3. El nombre cifrado en Base64 parece un conjunto incoherente de caracteres.
Intentemos desglosar pass.key, enviado por el usuario. En él vemos una secuencia de caracteres de 162 bytes en ASCII.

Fig. 4. 162 caracteres, dejados en el PC de la víctima.
Si observamos detenidamente, podemos notar que los caracteres se repiten en un determinado período. Esto puede indicar el uso de XOR, donde las repeticiones son características y su frecuencia depende de la longitud de la clave. Dividiendo la cadena en grupos de 6 caracteres y aplicando algunas secuencias de XOR, no obtuvimos ningún resultado significativo.

Fig. 5. ¿Ves las constantes repetitivas en el medio?
Decidimos buscar en Google las constantes, porque sí, ¡también se puede hacer! Y todas finalmente condujeron a un único algoritmo − Batch Encryption. Tras estudiar el script, quedó claro que nuestra cadena es nada menos que el resultado de su trabajo. Cabe mencionar que no se trata de un ransomware, sino simplemente de un codificador que reemplaza los caracteres por secuencias de 6 bytes. No hay claves ni otros secretos 🙁

Fig. 6. Un fragmento del algoritmo original de autoría desconocida.
El algoritmo no funcionaría correctamente si no fuera por un detalle:

Fig. 7. Morpheus approved.
Con la sustitución inversa transformamos la cadena en pass.key en un texto de 27 caracteres. Vale la pena destacar el texto humano (probablemente) ‘asmodat’.

Fig.8. USGFDG=7.
Google nos ayudará una vez más. Después de una pequeña búsqueda, encontramos un proyecto interesante en GitHub: Folder Locker, escrito en .Net y que utiliza la biblioteca ‘asmodat’ de otra cuenta en «Git».

Fig. 9. Interfaz de Folder Locker. Se verificó obligatoriamente en busca de malware.
La utilidad es un cifrador para Windows 7 y superior, que se distribuye con código abierto. Al cifrar, se usa una contraseña que es necesaria para la posterior descifrado. Permite trabajar tanto con archivos individuales como con directorios completos.
Su biblioteca utiliza el algoritmo de cifrado simétrico Rijndael en modo CBC. Es notable que el tamaño del bloque se eligió como 256 bits, a diferencia de lo estipulado en el estándar AES. En este último, el tamaño está limitado a 128 bits.
Nuestra clave se forma según el estándar PBKDF2. En este caso, la contraseña es el SHA-256 de la cadena introducida en la utilidad. Solo queda encontrar esta cadena para formar la clave de descifrado.
Bueno, volvamos a nuestro ya descifrado pass.key. ¿Recuerdas aquella línea con un conjunto de números y el texto ‘asmodat’? Intentamos usar los primeros 20 bytes de la cadena como contraseña para Folder Locker.
¡Mira, funciona! La palabra clave fue correcta y todo se descifró perfectamente. Según los caracteres de la contraseña, es una representación HEX de una palabra específica en ASCII. Intentemos mostrar la palabra clave en forma de texto. Obtenemos ‘shadowwolf’. ¿Ya sientes los síntomas de la licantropía?
Echemos un vistazo nuevamente a la estructura del archivo afectado, ahora que conocemos el mecanismo de funcionamiento del locker:
- 02 00 00 00 – modo de cifrado de nombres;
- 58 00 00 00 – longitud del nombre de archivo cifrado y codificado en base64;
- 40 00 00 00 – tamaño del encabezado trasladado.
En rojo y amarillo se destacan el nombre cifrado y el encabezado transferido respectivamente.

Fig. 10. El nombre cifrado se destaca en rojo y el encabezado transferido en amarillo.
Ahora comparemos los nombres cifrados y descifrados en representación hexadecimal.
Estructura de los datos descifrados:
- 78 B9 B8 2E – basura creada por la utilidad (4 bytes);
- 0C 00 00 00 – longitud del nombre descifrado (12 bytes);
- a continuación va, en sí, el nombre del archivo y se completa con ceros hasta la longitud correcta del bloque (padding).

Fig. 11. IMG_4114 se ve mucho mejor.
III. Conclusiones y cierre
Volviendo al principio. No sabemos qué motivó al autor de Wulfric.Ransomware ni cuál era su objetivo. Sin duda, para un usuario promedio, el resultado del trabajo de un criptógrafo de este tipo parecerá un gran desastre. Los archivos no se abren. Todos los nombres han desaparecido. En lugar de una imagen familiar, hay un lobo en la pantalla. Obligan a leer sobre bitcoins.
Sin embargo, esta vez, detrás de la fachada de «un aterrador codificador» se escondía un intento absurdo y torpe de extorsión, donde el delincuente utiliza programas ya listos y deja las claves justo en el lugar del crimen.
Por cierto, sobre las claves. No teníamos un script malicioso o un troyano que pudiera ayudarnos a comprender cómo surgió este pass.key – el mecanismo de aparición del archivo en la PC infectada sigue siendo desconocido. Pero, recuerdo, en su nota, el autor mencionaba la singularidad de la contraseña. Así que, la palabra clave para la descifrado es tan única como lo es el nombre de usuario shadow wolf 🙂
Y aun así, sombra de lobo, ¿por qué y para qué?
Fuente: habr.com
