Malware Analysis && UnEthical Hacking
inicio hacking WiFu WiBOG MDB

Troyano/Ransomware ODCODC (.odcodc)
General

Troyano del tipo Ransomware que cifra el contenido de los archivos del equipo a través de la operación XOR agregando la extensión .odcodc, para recuperar la información requiere de un pago/rescate de 500 USD.

 

Análisis

Crea los archivos:

» C:\Users\MMD\Documents\readthis.txt
» C:\Users\MMD\AppData\Local\readthis.txt: Archivo de información para el usuario.
» C:\Users\MMD\AppData\Roaming\cript.bat: Instrucciones para la creación del archivo readthis.txt
» C:\Users\MMD\AppData\Roaming\cript.exe: Copia del troyano.

Crea las siguientes llaves de registro:

» HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Crr1 - C:\Users\MMD\AppData\Roaming\cript.bat
» HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Crr2 - C:\Users\MMD\AppData\Roaming\cript.exe


El troyano inicia su ejecución creando un objeto mutex con el nombre Cript_1.0, posteriormente realiza conexiones con el servidor de comando y control (C&C) el cual tiene como dirección IP: 89.45.67.200 (Bulgaria - Sofia (stolitsa) - Fast Serv Inc / AS201133 VERDINA Verdina Ltd.) y nombre de dominio: inststats.com con el fin de notificar la infección y descargar las diferentes llaves que (posiblemente) serán utilizadas para cifrar el contenido de los archivos.

Esta información es recopilada y enviada al servidor a través de los siguientes parámetros:

» message: Información sobre la función que se está llevando a cabo (install / jobdone).
» pcid: Nombre de la maquina infectada.
» winver: Versión tipo de arquitectura del Sistema Operativo instalado en la máquina.
» country: Tipo de lenguaje configurado en el teclado.
» buildid: Versión del troyano.
» disk: Nombre de la unidad de disco a modificar.
» files: Cantidad de archivos (objetivo) a modificar en la unidad especificada en el parámetro anterior.
» size: Tamaño total de todos los archivos a modificar.

Se definen los tipos de archivo que serán modificados:

.1cd, .3dm, .3ds, .3fr, .3g2, .3gp, .7z, .accdb, .accdc, .accde, .accdr, .accdt, .act, .adp, .ai, .arw, .asf, .asm, .asp, .asx, .avi, .backup, .bak, .bay, .bdb, .bik, .blend, .bmp, .c, .cdr, .cdr3, .cdr4, .cdr6, .cdrw, .cfg, .cgm, .ckp, .class, .cpp, .cr2, .cs, .csv, .db, .db3, .dbf, .dc2, .dcs, .ddoc, .dds, .design, .dgc, .djvu, .doc, .docm, .docx, .dot, .dotx, .drw, .dt, .dwg, .dxb, .dxf, .eps, .erf, .fdb, .flac, .fpx, .h, .hbk, .hpp, .iiq, .indd, .java, .jpe, .jpeg, .jpg .kdc, .key, .m4v, .max, .mdb, .mdf, .mos, .mov, .mp3, .mp4, .mpg, .myd, .nrw, .ns2, .ns3, .ns4, .nyf, .obj, .odb, .ods, .odt, .orf, .otg, .ott, .pages, .pas, .pcd, .pct, .pdb, .pdd, .pdf, .pfx, .php, .pl, .pps, .ppt, .pptm, .pptx, .ps, .psd, .ptx, .py, .r3d, .rar, .raw, .rdb, .rm, .rtf, .rw2, .rwl, .sdf, .sql, .sqlite, .sqlilte3, .sqlitedb, .sr2, .srw, .stw, .stx, .svg, .swf, .sxd, .sxg, .sxw, .tex, .tga, .thm, .txt, .vdb, .veg, .wmv, .wpd, .wps, .x3f, .xls, .xlsm, .xlsx, .zip


El archivo de texto MMD.txt será utilizado como prueba para visualizar más fácilmente todas las modificaciones sufridas en cada uno de los caracteres de mismo:

El proceso de cifrado se inicia creando un nuevo archivo para cada uno de los diferentes tipos de archivo objetivo, la estructura del nombre final posee la dirección de correo electrónico con la cual se debe establecer comunicación con el fin de poder recuperar la información: C-email-abennaki@india.com-(NOMBRE_ARCHIVO.ext).odcodc

Se identifica el tamaño del archivo original a través de la función GetFileSize y se extraen/leen 100 bytes del mismo:

La siguiente sección de código (aún bajo análisis) permite que sea dispuesta una sección de memoria en donde posteriormente se almacenara la información de los primeros 100 bytes del archivo por medio de la función sub_402FB0, así mismo la función ubicada en la dirección de memoria 0x00407FD0 parece retornar la información en una secuencia de números previamente codificados, finalmente se inyecta en el archivo una cabecera a través de la función WriteFile.

Los datos codificados anteriormente son cifrados a través de la operación XOR, la función ubicada en la posición 0x00D94B7F (1) permite generar un número aleatorio con el cual cada uno de los caracteres codificados es cifrado (2).

Resultado parcial:

Para el demás contenido del archivo (los demás bytes exceptuando los primeros 100 cifrados previamente) se ejecuta un segundo método de cifrado el cual se describe a continuación:

» Se genera nuevamente un número aleatorio (1).
» Se cifra cada uno de los caracteres del archivo XOR cada uno de los caracteres del mismo almacenados en memoria (2). Esta sección de memoria hace referencia a la separada en pasos anteriores por medio de la función sub_402FB0.
» Se ejecuta nuevamente la función XOR pero esta vez haciendo uso del valor obtenido en el paso anterior y el valor del numero aleatorio creado en el paso 1 (3).
» Finalmente son escritos los nuevos caracteres en el cuerpo del archivo por medio de la función WriteFile.

Este último procedimiento se repite para los demás caracteres, posteriormente sobrescribe el archivo original y lo elimina del sistema, obtenido como resultado únicamente el archivo modificado final:

Al establecer comunicación con los creadores (EMail: abennaki@india.com) es posible identificar el número de cuenta Bitcoin a la cual se debe realizar la transferencia de dinero: 1FzTaM4p6ZHFhKEY35jmHVNAogqWBTZC2S, al día de hoy solo se detectan 2 transacciones exitosas.

 

Decryptor

Gracias a la labor desempeñada por BloodDolly es posible recuperar toda la información modificada (codificada) por este Ransomware, lo anterior a través de la herramienta ODCODC Decoder la cual ofrece dos tipos de opciones (Offline / Online) para regresar los archivos a su estado original dependiendo de las llaves utilizadas por el troyano.

Para identificar la opción a utilizar es necesario consultar el archivo creado por el Ransomware: readthis.txt; dentro de este archivo se puede visualizar el valor del campo PCID el cual determina cual tipo de llave fue utilizada, si este valor posee la letra “X” (y el nombre del equipo no poseía esta letra) significa que el troyano hizo uso del método Offline y que la llave forma parte de las definidas por defecto, de lo contrario se puede concluir que esta llave fue descargada directamente desde el servidor del atacante (método Online); para obtener este dato es necesario contar con las dos versiones del archivo modificado: Original y Cifrado con extensión .doc, .xls o .ppt o se puede consultar el siguiente enlace para más información: BLEEPING COMPUTER link

Opción Offline

Esta alternativa es utilizada cuando la modificación de los archivos es llevada a cabo en una máquina que no cuenta con conexión a Internet, el troyano posee una lista por defecto de 200 llaves para cifrar la información y hace uso de cualquier de ellas (de manera aleatoria) al no lograr contactar al servidor de comando y control C2.


Opción Online

Esta alternativa es utilizada cuando la llave fue obtenida directamente desde el servidor de comando y control por lo que es necesario agregar este valor al programa con el fin de recuperar la información.

 

Descarga

Nombre de archivo: odcodc.exe / Tamaño: 178.5 KB / VT
MD5: 6709b34a638a2ad060616c21fcf343c0
SHA1: 7c70a0f60bb89547cd8e308280db04b71d1041a6
SHA256: 02ff2a1dd7df715e9ddaec1e9e06a43423039d041ef036c51e9e088360bce139

Descargue los archivos únicamente con motivos de investigación y bajo su propia responsabilidad.
ODCODC Files

 

Mosh
@nyxbone
#MalwareMustDie

Inicio       ||       Comunidad       ||      Servicios       ||      Proyectos       ||      Hacking       ||      Contáctenos