Un paseo por el ladrón de acridranes: esta es la seguridad de la participación en el mercado de bitcoins de stormshield

Esta sección se centrará en la primera muestra que encontramos de AcridRain en Hybrid-Analysis (7b045eec693e5598b0bb83d21931e9259c8e4825c24ac3d052254e4925738b43). Mirando rápidamente el binario, podemos ver que no está empaquetado, ni rayado en absoluto. Alguna información de depuración está disponible como la ruta PDB c: \ users \ igor1 \ source \ repos \ stealer ar \ release \ladrón ar.pdb (AR significa AcridRain) y otras cadenas que nos ayudarán en el proceso de inversión. Inicialización

La primera información que es robada por el malware son las credenciales, las cookies y las tarjetas de crédito de Chrome, como los navegadores (ver imagen a continuación). Los navegadores dirigidos por AcridRain son los siguientes: Amigo, Google Chrome, Vivaldi, navegador Yandex, Kometa, Orbitum, Comodo, Torch, Opera, MailRu, Nichrome, Chromium, navegador de privacidad Epic, Sputnik, CocCoc y Maxthon5.

Buscando cadenas interesantes encontramos algunas líneas que nos dan información sobre cómo se roban y se comprimen las credenciales. Podemos ver en la imagen a continuación que el autor del malware usa un proyecto llamado browser-dumpwd-master. Si Google el nombre del directorio, podemos encontrar un PoC alojado en Github (https://github.com/wekillpeople/browser-dumpwd) que muestra cómo podemos robar credenciales de Chrome y Firefox. Sin embargo, en este proyecto no hay miniz.h ni zip.c, veremos de dónde vienen más adelante. Como era de esperarse, el autor copió y pegó el código para robar las credenciales de Chrome / Firefox.

El robo de credenciales es bastante trivial. De acuerdo con la entrada dada de DumpChromeCreds (0x4017F0), el malware seleccionará el directorio apropiado de los datos del usuario. Por ejemplo, si se da la entrada 0x1, el malware usará el directorio C: \ Users \ [USER] \ AppData \ Local \ Google \ Chrome \ User Data \ Default, si es 0x3 será C: \ Users \ [USER] \ AppData \ Local \ Yandex \ YandexBrowser \ User Data \ Default, etc. El valor de cada navegador se enumera a continuación:

Como podemos ver en la captura de pantalla anterior, sqlite3_exec usa una devolución de llamada para volcar credenciales. La función chrome_worker (0x401400) se usa para recuperar información específica de los inicios de sesión en la tabla. Para cada fila de la tabla, el malware guardará las siguientes columnas: origin_url, username_value, y password_value. La contraseña se cifra con CryptProtectData, por lo que para obtener el texto sin formato utiliza la función CryptUnprotectData. Luego, si toda la información está allí, la guardará en el archivo (vea la captura de pantalla a continuación).

El volcado de cookies se realiza mediante la función DumpChromeCookies (0x402D10). No hay una función que robe cookies en el navegador del proyecto-dumpwd, por lo que el autor hizo una copia y pega de la función utilizada para las credenciales y la modificó para que funcione con las cookies. El archivo utilizado para guardar la información robada es result_cookies.txt. Al igual que en la función de credenciales, también hay algunos encabezados. Sin embargo, algunos encabezados (no homogeneizar) cambiaron como podemos ver en la imagen a continuación.

La función dedicada a volcar tarjetas de crédito es DumpChromeCreditsCards (0x402970). Al igual que las cookies, el vuelco de las tarjetas de crédito es un copiar y pegar de la función de credencial con algunos cambios menores. Los datos robados se guardan en el archivo result_CC.txt (siempre en el directorio% TEMP%). Los encabezados se utilizan para identificar de qué navegador proviene la información. Una vez que se escribe el encabezado, el malware llama a dump_chromesql_cc (0x4031D0) que crea una copia de Web Data denominada templogik (sic). Después de la carga de esta base de datos, ejecuta la siguiente consulta:

La función DumpFirefoxCreds (0x403600) utilizada para robar credenciales de Firefox es una copia y pega del navegador PoC-dumpwd con una ligera modificación. La primera acción del malware es descargar bibliotecas adicionales del CnC. Esas DLL son de Mozilla y se utilizan para descifrar información de las credenciales guardadas de Firefox. Para contactar al servidor y solicitar esas bibliotecas, el autor utiliza el libcurl 7.49.1. Estos archivos DLL se guardan en la raíz del CnC en un archivo ZIP denominado Libs.zip. Una vez que se descarga este archivo, se guarda en%Directorio TEMP% con el nombre 32.zip (ver imagen a continuación).

Las credenciales de Firefox robadas por AcridRain se almacenan en el mismo archivo que Chrome que es result.txt. Como se esperaba, el proceso es el mismo. Primero escribe un encabezado asociado con el navegador de destino en el archivo de informe. Luego, robó las credenciales (ver a continuación). Los navegadores dirigidos son Firefox, Waterfox, Pale Moon, Cyberfox, Black Hawk y K-Meleon.

Para obtener las credenciales, el malware busca en dos archivos que son logins.json y signons.sqlite. El JSON es analizado por decrypt_firefox_json (0x403930) con el código de parson.c del proyecto browser-dumpwd. El valor recuperado de JSON es nombre de host, nombre de usuario encriptado y contraseña encriptada. El nombre de usuario y la contraseña son descifrados por DecryptedString (0x403430) usando funciones de nss3.dll.

Después de volcar todas las credenciales, el malware comienza a presionar todos los archivos TXT y la sesión de Telegram en el informe ZIP. Para hacerlo, usa la función zip_entry_open para especificar el nombre y la ubicación del archivo una vez en el zip. Por ejemplo, zip_entry_open (zip, “result.txt”) agregará el archivo dado en la raíz del archivo zip con el nombre result.txt y zip_entry_open (zip, “Telegram \ D877F783D5DEF8C1”) creará el archivo D877F783D5DEF8C1 en la carpeta Telegram . Luego usa zip_entry_fwrite para escribir el archivo dado en el zip (ver a continuación).

En esta sección hablaremos sobre las actualizaciones que se realizaron durante unas vueltas de dieciséis días de desarrollo. El ejecutable utilizado para este blogpost fue compilado el 29 de julio de 2018 (769df72c4c32e94190403d626bd9e46ce0183d3213ecdf42c2725db9c1ae960b) y está disponible en Hybrid-Analysis. Para poder detectar las diferencias entre las dos versiones, usamos la herramienta YaDiff para propagar símbolos entre las bases de datos IDA y Diaphora para enlazar los dos IDB. La primera modificación que vimos es la eliminación de registros de depuración como podemos ver a continuación.

Se realizaron modificaciones en las funciones de robo de Chrome. Ahora, el malware no solo está robando el perfil predeterminado sino también los perfiles 1, 2 y 3. También cambió la forma en que almacena esa información. En la versión anterior, todos los datos se almacenaban en tres credenciales diferentes de archivos separados, cookies, tarjetas de crédito. Ahora, se almacenan en un archivo de texto único con el nombre del navegador (por ejemplo, Vivaldi.txt, Vivaldi_Cookies.txt y Vivaldi_CC.txt, ver más abajo).

En esta En la sección hablaremos sobre las actualizaciones de una muestra compilada durante el 21 de agosto de 2018. El ejecutable utilizado es 3d28392d2dc1292a95b6d8f394c982844a9da0cdd84101039cf6ca3cf9874c1c y está disponible en VirusTotal. En esta actualización, se limpió el código y se corrigieron algunos errores (por ejemplo, un error en la generación del camino Monero debido a un ancho de vía, véase la segunda muestra). El nombre de 32.zip (archivo DLL de Mozilla descargado de CnC) ha sido renombrado a opana.zip. Sin embargo, el autor olvidó cambiar el nombre durante el proceso de eliminación (ver a continuación).

Para descargar los archivos ZIP cargados en el CnC, hay una interfaz web disponible. La primera IP utilizada en la naturaleza fue 185.219.81.232 con el dominio asociado akridrain.pro. Alrededor del 2 de agosto de 2018, el servidor estaba caído, pero aparece unos días más tarde (alrededor del 2018-08-08) con el IP 141.105.71.82. Si accedemos al panel con un navegador, seremos redirigidos a la página de inicio de sesión (ver a continuación).

AcridRain es como todos los robadores de contraseñas en el mercado. Sin embargo, la lista de software admitido es realmente limitada. El hilo del foro dice que el malware puede manejar más de 36 navegadores. Pero como vimos en esta publicación de blog, el número de navegadores compatibles es de 22 y para las bifurcaciones de Firefox no hay administración de las cookies ni tarjetas de crédito. Tal como se presenta a lo largo de este blogpost, podemos decir que el autor hizo una copia y pega de múltiples repositorios de Github. Además, con los errores cometidos en el código, podemos decir que el desarrollador parece ser bastante nuevo en el negocio del malware. De acuerdo con diferentes publicaciones sobre hilos de AcridRain, el siguiente gran paso será la implementación de HVNC (Computación en red virtual oculta).

banner