La primera de malware para Mac de 2017 fue traído a mi atención por un administrador de TI, que vio algo de tráfico de red saliente extraña desde un Mac en particular. Esto llevó al descubrimiento de una pieza de malware parece a nada que haya visto antes, que parece que realmente han estado en existencia, sin detectar, desde hace algún tiempo y que parece tener como objetivo los centros de investigación biomédica.
El malware fue extremadamente simplista en la superficie, que consta de sólo dos archivos:
~ / .client
SHA256: ce07d208a2d89b4e0134f5282d9df580960d5c81412965a6d1a0786b27e7f044
 
~ / Library / LaunchAgents / com.client.client.plist
SHA256: 83b712ec6b0b2d093d75c4553c66b95a3d1a1ca43e01c5e47aae49effce31ee3
El agente de lanzamiento .Plist presentar en sí no podría haber sido mucho más sencillo, basta con mantener el .client funcionando en todo momento.
<? Xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE plist PÚBLICA "- // // DTD de Apple PLIST 1.0 // EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<Plist version = "1.0"?>
<Dict>
 <Tecla> KeepAlive </ key>
 <True />
 <Tecla> Etiqueta </ ​​key>
 <Cadena> com.client.client </ string>
 <Clave> ProgramArguments </ key>
 <Array>
 <Cadena> /Users/xxxx/.client </ string>
 </ Array>
 <Tecla> RunAtLoad </ key>
 <True />
 <Tecla> NSUIElement </ key>
 <Cadena> 1 </ string>
</ Dict>
</ Plist>
El archivo .client era donde las cosas se pusieron realmente interesante. Tomó la forma de un script en perl minified y ofuscado.
El script Perl, entre otras cosas, se comunica con los servidores siguientes de comando y control (C & C):
99.153.29.240
eidk.hopto.org
Este último es un nombre de dominio administrado por el servicio de DNS dinámico no-ip.com.
El script también incluye algo de código para tomar capturas de pantalla a través de comandos de la shell. Curiosamente, se tiene código para hacer esto tanto con el comando Mac "screencapture" y el Linux "Xwd" comando. También tiene código para obtener el tiempo de funcionamiento del sistema, con el comando Mac "tiempo de actividad" o el comando de Linux "cat / proc / uptime".
La parte más interesante de la secuencia de comandos se la encuentra en la sección __DATA__ al final. Encontramos que hay un binario Mach-O, una segunda secuencia de comandos Perl y una clase Java, que extrae la secuencia de comandos, escribe en el tmp / carpeta / y ejecuta. En el caso del archivo de clase Java, que se ejecuta con apple.awt.UIElement establece en true, lo que significa que no aparece en el Dock.
quimitchin-perl-script
El binario en sí parece interesado principalmente en las capturas de pantalla y el acceso de cámaras, pero, curiosamente, utiliza algunas llamadas al sistema verdaderamente antiguos para esos propósitos, tales como:
SGGetChannelDeviceList
SGSetChannelDevice
SGSetChannelDeviceInput
SGInitialize
SGSetDataRef
SGNewChannel
QTNewGWorld
SGSetGWorld
SGSetChannelBounds
SGSetChannelUsage
SGSetDataProc
SGStartRecord
SGGetChannelSampleDescription
Estas son algunas de las funciones verdaderamente antiguos, por lo que el mundo de la tecnología se refiere, que data de pre-OS X días. Además, el binario también incluye el código de fuente abierta libjpeg, que se actualizó por última en 1998.
La clase Java parece ser capaz de recibir órdenes para realizar diversas tareas, que incluyen un nuevo método de captura de la pantalla, obtener la posición y el tamaño de la pantalla del cursor del ratón, el cambio de la posición del ratón, la simulación de clics del ratón, y la simulación de pulsaciones de teclas. Este componente parece estar destinado a proporcionar un tipo de funcionalidad de control remoto rudimentario.
quimitchin-java-clase
También observamos que el malware descarga de un script en Perl, llamado "macsvc", desde el servidor C & C. Esta secuencia de comandos utiliza mDNS para construir un mapa de todos los demás dispositivos de la red local, con información acerca de cada dispositivo, incluyendo sus direcciones IPv6 e IPv4, nombre de la red y el puerto que está en uso. También parece estar haciendo intentos de conexión a dispositivos que encuentra en la red.
macsvc SHA256: b556c04c768d57af104716386fe4f23b01aa9d707cbc60385895e2b4fc08c9b0
Otro archivo descargado desde el servidor C & C fue nombrado "afpscan", y parece que tratar de conectarse a otros dispositivos de la red.
SHA256 afpscan: bbbf73741078d1e74ab7281189b13f13b50308cf03d3df34bc9f6a90065a4a55
La presencia de los comandos de Linux en el guión original nos llevó a intentar ejecutar este malware en una máquina Linux, donde se encontró que - con la excepción de la Mach-O binario - todo funcionó muy bien. Esto sugiere que puede ser una variante de este malware que está diseñado expresamente para funcionar en Linux, tal vez incluso con un ejecutable de Linux en lugar del ejecutable Mach-O. Sin embargo, no hemos encontrado una muestra de este tipo.
Hemos sido capaces de localizar a un par archivos ejecutables de Windows en VirusTotal que se comunican con el mismo servidor C & C. Además, uno contiene secuencias que indican que utiliza la misma biblioteca libjpeg de 1998 como el binario Mac Mach-O. Cada una de estas muestras fueron sometidas solamente siempre a VirusTotal una vez, en junio y julio de 2013, y se detectan solamente por algunos motores de bajo nombres genéricos.
SHA256: 94cc470c0fdd60570e58682aa7619d665eb710e3407d1f9685b7b00bf26f9647
SHA256: 694b15d69264062e82d43e8ddb4a5efe4435574f8d91e29523c4298894b70c26
Hay otros indicios de que este malware ha estado circulando sin ser detectados por un largo tiempo. En uno de los Macs infectados, el archivo de agente de lanzamiento tenía una fecha de creación en enero de 2015. Eso no es una fuerte evidencia de la verdadera fecha de creación, sin embargo, como esas fechas se pueden cambiar fácilmente.
Además, hay un comentario en el código en el archivo macsvc que indica que se realizó un cambio de Yosemite (Mac OS X 10.10), que fue lanzado en octubre de 2014. Esto sugiere que el malware ha existido por lo menos algún tiempo antes a la liberación de Yosemite.
si (/ _ (tcp | udp) \ T * \ s + (_ \ S +) $ /) {$ s = "$ 2 ._ $ 1"; }
 elsif (. /icloud\.com \ \ s + (_ [^ \.] + \ ._ (tcp |.. UDP)) \ \ d + \ miembros \ .btmm $ /)
    {$ S = $ 1; } # Cambió en Yosemite
 elsif (/icloud\.com \ \ s + \ \ s + _autotunnel6 $ /..) {próximo; }
Otra pista, por supuesto, es la edad de algunos de los códigos, lo que podría sugerir que este malware se remonta a décadas. Sin embargo, no hay que tomar la edad del código como demasiado fuerte una indicación de la edad de los programas maliciosos. Esto también podría significar que los hackers detrás que realmente no conocen el Mac muy bien y confiaban en la documentación antigua. También podría ser que están usando viejo sistema llama a evitar la activación de cualquier tipo de detecciones de comportamiento que podría estar esperando un código más reciente.
Irónicamente, a pesar de la edad y la sofisticación de este malware, utiliza la misma técnica antigua poco sofisticado para la persistencia que tantas otras piezas de malware para Mac hacen: un archivo oculto y un agente de puesta en marcha. Esto hace que sea fácil de detectar, dado ninguna razón para mirar de cerca la máquina infectada (tales como el tráfico de red inusual). También hace que sea fácil de detectar y fácil de quitar.
La única razón que se me ocurre que este malware no ha sido visto hasta ahora es que está siendo utilizado en ataques muy bien dirigidos, lo que limita su exposición. Ha habido una serie de historias en los últimos años acerca de China y los hackers rusos de orientación y el robo de la investigación científica europea y estadounidense. Aunque no hay evidencia en este punto que une este malware a un grupo específico, el hecho de que ha sido visto específicamente a las instituciones de investigación biomédica sin duda parece que podría ser el resultado de exactamente ese tipo de espionaje.
Malwarebytes detectarán este malware como OSX.Backdoor.Quimitchin. (¿Por qué el nombre? Debido a que el quimitchin eran espías aztecas que se infiltren otras tribus. Dada la "antigua" de código, pensamos que el nombre apropiado.) Apple llama este malware Mosca del y ha publicado una actualización que se descargarán automáticamente en segundo plano para proteger contra futuras infecciones.