Dropper que se comunica con su C&C mediante Secure Shell

 

Resumen:

 

El software malicioso "Puppy-pics-67326322.scr" clasificado como "dropper" está compuesto de varios elementos destinados a realizar diferentes tareas. Los más importantes son: "3proxy", un servidor que la muestra usa para "click fraud" (una práctica fraudulenta para generar clics repetidamente en un anuncio alojado en un sitio web con la intención de producir ingresos) y "PuTTY link" un cliente SSH que usa para conectarse al servidor malicioso.

 

 

 

Los "dropper" son programas que terminan su ejecución una vez que han extraído e instalado el software malicioso que tiene adjunto (por lo general en la ruta %temp%), puede abrir imágenes o mostrar mensajes que sirven como señuelo para desviar la atención de las actividades maliciosas, están diseñados para confundir a los usuarios haciendo que se vean como aplicaciones legítimas y puede complicarse su detección dependiendo el tipo de compresión, cifrado o contenedor.

 

 

Análisis estático:

 

 

El archivo ejecutable "Puppy-pics-67326322.scr" tiene las siguientes firmas:

 

·         Md5: dc5dcb4ddf5f019569ca648260560c51

·         Sha1: d8d631e9f2fd585fee5f678299ebd645e686e853

 

 

 

Al revisar el ejecutable con "Exeinfo PE" nos muestra que es de tipo SFX (SelF-eXtracting), un archivo autoextraíble que podemos visualizar o descomprimir con herramientas como WinRar y 7-Zip.

 

 

 

A continuación se muestran los archivos que se generaron al realizar la extracción de forma manual:

 

 

 

El tipo de archivo al que pertenece cada uno de ellos y su firma md5 se especifica a continuación:

 

·         GoogleIndexer.vbe: Script de Visual Basic codificado (e288c540180efa628c95de93d4e0461e).

·         lsass.exe: Ejecutable para Windows de 32 bits (b22229b28f748ac9ecb66c53fabb1052).

·         puppy.jpg: Imagen JPEG (a3d3fe9fe3d053182f71d19af6c7a4a1).

·         ReaderUpdate.lnk: Acceso directo (767199bfe746753c16fe3aac2c8e60e0).

·         winlogon.exe: Ejecutable para Windows de 32 bits (570c12cfb581c4fff9d8de32ad004ce1).

 

 

 

Los archivos que son extraídos tienen una función particular en el proceso de infección, por lo que analizaremos cada uno de ellos.

 

 

GoogleIndexer.vbe

 

 

 

Para decodificar los archivos VBE se pueden utilizar los siguientes métodos:

 

·         Servicio público en línea "GreyMagic"

·         Código en VBS "decovbe.vbs"

·         Programa en C "scrdec18.exe"

 

 

 

Código decodificado con "scrdec18.exe":

 

 

 

En la imagen anterior, las tres primeras líneas corresponden a las variables que definen:

 

·         Dominio del servidor SSH (Command and Control de la botnet).

·         Usuario con el cual se conecta automáticamente al servidor malicioso.

·         Contraseña con la que se autentica el usuario.

 

También aparecen referencias en el script a los archivos ejecutables creados por la muestra:

 

·         lsass.exe

·         winlogon.exe

 

 

lsass.exe

 

Al revisar con "Resource Hacker" la información de versión del archivo lsass.exe obtuvimos las siguientes pistas:

 

·         Nombre interno: Plink

·         Nombre del archivo original: Plink

 

 

 

Plink (PuTTY link) es una aplicación de línea de comandos del cliente SSH PuTTY, por lo que se trata de un archivo legítimo.

 

 

 

A continuación se muestran las opciones del cliente Secure Shell renombrado por el creador del malware:

 

 

 

El script Visual Basic decodificado se ordenó de tal forma que se renombraron y sustituyeron variables para que fuera más sencilla la lectura. Las opciones que se utilizan para conectarse al C&C son las siguientes

 

·         -ssh: se fuerza el uso del protocolo Secure Shell.

·         -R: reenvía la conexión de un puerto remoto a la dirección IP y puerto local.

·         -N: no inicia en el cliente SSH un Shell.

·         -l: recibe como argumento el nombre de usuario con el que se realizará la conexión.

·         -pw: recibe como argumento la contraseña con la que se autenticará el usuario.

 

 

 

La función numérica "Rnd" devuelve un valor menor que 1 pero mayor o igual a 0. La instrucción "Randomize" se utiliza antes de llamar a "Rnd" para inicializar el generador de números aleatorios que utiliza el temporizador del sistema.

 

Para generar aleatoriamente números enteros en un intervalo cerrado (se incluyen ambos valores), se utiliza la siguiente fórmula:

N = Int((límiteSuperior - límiteInferior + 1) * Rnd + límiteInferior)

límiteSuperior: es el número mayor en el intervalo

límiteInferior: es el número menor en el intervalo

 

Sin embargo, en el código malicioso definió los intervalos de la siguiente manera:

límiteSuperior = 2345

límiteInferior = 64928

 

Lo anterior significa que es un intervalo abierto, lo que significa que los números generados no serán 2345 o 64928.

 

 

puppy.jpg

 

Es una imagen de un cachorrito que se muestra al usuario como señuelo para desviar su atención de las acciones maliciosas. La acción anterior puede lograr su objetivo si la víctima solo observó el icono del archivo ejecutable maliciosos (imagen) y no la extensión (scr).

 

 

 

ReaderUpdate.lnk

 

El archivo "ReaderUpdate.lnk" es un acceso directo que se revisó con la herramienta "lslnk.pl", la cual es un script en Perl que puede decodificar el formato binario de los accesos directos de Windows y mostrar la información del archivo al que apuntan.

 

A continuación se muestra la salida que genera "lslnk" sobre el acceso directo malicioso:

 

 

 

El archivo al que apunta es "GoogleIndexer.vbe" localizado en la ruta "C:\PefrLogs\". La información anterior también puede obtenerse al realizar una inspección de cadenas con "BinText".

 

 

 

winlogon.exe

 

Con la herramienta "Bintext" se obtuvieron las cadenas del archivo ejecutable "winlogon.exe", en la salida de la aplicación pueden identificarse los nombres "3proxy" y "Usage" seguido de las opciones y forma de uso del binario, lo que hasta el momento son indicios de cómo utilizar el Proxy.

 

 

 

También se puede apreciar el enunciado "Documentation and sources: http://3proxy.ru/", que hace alusión al sitio oficial de descarga del Proxy.

 

 

 

Accediendo al dominio encontrado en las cadenas de "winlogon.exe", se corroboró que se trata de un sitio oficial cuyo proyecto es un servidor Proxy libre y que el creador del malware está utilizando con otro nombre.

 

 

 

A continuación se muestran las opciones del servidor Proxy renombrado por el creador del malware:

 

 

 

A continuación se muestran las opciones que utiliza script de Visual Basic para conectarse al C&C:

 

·         -d: Ejecución en segundo plano.

·         -t: Modo silencioso (no genera bitácora del servicio).

·         -l: El registro de errores se envía a stderr (standard error).

·         -e: Dirección IP o interfaz externa.

·         -i: Dirección IP o interfaz interna.

·         -p: Puerto en el que va a escuchar el servidor Proxy.

·         -a: Proxy anónimo.

 

 

 

La botnet utiliza servidores Proxy para retransmitir tráfico HTTP y pretender hacer clic en los anuncios de sitios web.

 

Finalmente, la pieza de malware intenta ser persistente al copiar el acceso directo "ReaderUpdate.lnk" pero no se logra el objetivo.

 

·         %homedrive% = C:

·         %homepath% = \Users\[usuario]

·         \Start Menu

·         \Programs

·         \Startup

 

Las rutas para la carpeta Inicio son:

 

·         C:\Users\[usuario]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

·         C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

 

 

Análisis dinámico:

 

 

Al ejecutar el archivo "Puppy-pics-67326322.scr" se inician los siguientes procesos:

 

·         Puppy-pics-67326322.scr (2792): proceso generado al abrir el dropper.

·         wscript.exe (3576):ejecución del script Visual Basic codificado.

·         winlogon (300):instalación del servidor Proxy escuchando en el puerto 8293.

 

A continuación se muestra el árbol de procesos:

 

 

 

En el tráfico de red se muestran las peticiones DNS al dominio donde se encuentra el C&C.

 

 

 

El archivo "puppy.jpg" se muestra al usuario con la finalidad de hacerle creer que en realidad abrió una imagen y no una aplicación maliciosa.

 

 

 

El ejecutable autoextraíble genera los archivos en la carpeta "PefrLogs" que crea con atributo valor "2" que indica "carpeta oculta".

 

 

 

A continuación se muestra la carpeta creada por el software malicioso en la unidad de disco local "C:\":

 

 

 

La salida de "Regshot" indica que los cambios importantes en el sistema de archivos son:

 

·         Creación de la carpeta "PefrLogs".

·         Creación de los archivos "GoogleIndexer.vbe", "lsass.exe", "puppy.jpg", "ReaderUpdate.lnk" y "winlogon.exe".

 

 

 

En intervalos de tiempo se observa en "Process Explorer" la ejecución del programa "lssas.exe", el cual realiza intentos de sincronización al puerto remoto "22" asociado al servicio Secure Shell.

 

 

 

A continuación se muestran las peticiones SYN de cliente SSH "Plink":

 

 

 

Los intervalos de ejecución del archivo renombrado a "lssas.exe" eran de 319,681 milisegundos, es decir, cada 5.32 minutos se establecía conexión con el C&C.

 

 

 

Para el momento del análisis, VirusTotal indica que 33 de 52 motores antivirus detectan a "Puppy-pics-67326322.scr" como malicioso. A continuación el reporte: