Cuando hacemos referencia a la sofisticación del malware, solemos hablar de implementaciones para sistemas Windows, sin embargo, existen numerosas implementaciones muy interesantes para sistemas Unix.
A pesar de que las versiones de WireNet para Linux no son de reciente creación (existen registros de la amenaza desde 2012), lo cierto es que seguimos viendo nuevas versiones día a día.
Así pues, durante el siguiente artículo, se va a analizar una muestra de WireNet (8ac27ee1e5d02ce9d83ba26c50221ce07cdc378172c87a17ec6ef7fb10544734), haciendo hincapié en los métodos de obtención de las credenciales, así como en sus funcionalidades como RAT y keylogger.
Persistencia
En primer lugar, lleva a cabo la recolección del contexto del equipo, como la hora, los permisos que tiene e identificar si el sistema operativo corresponde a un Red Hat o a un Debian, así como la versión específica del equipo.
En cuanto a la persistencia se lleva a cabo a través del fichero autostart en el directorio ~/.config/, el cual permitirá el arranque del malware en cada inicio de sesión del usuario.
Una vez abierto el fichero, va a incluir la siguiente configuración:
[Desktop Entry]
Type=Application
Exec=’%s
Hidden=false
Name=%s
Provocando que el fichero pueda ser ejecutado como lanzador de Ubuntu.
Funcionalidad de Stealer
Firefox
Para los productos de Mozilla Wirenet lleva a cabo el descifrado de las contraseñas a través de la misma rutina llevada a cabo el software original
Para ello obtiene las credenciales cifradas desde la base de datos signons.sqlite o el fichero logins.json. Este último por ejemplo almacena la información de los logins de los cuales hemos decidido que nuestro navegador nos lo recuerde.
Así pues Wirenet utilizando funciones referenciadas en la API de Mozilla lleva a cabo su descifrado.
Indagando en fuentes abiertas se puede encontrar cómo una implementación muy similar se encuentra disponible como código abierto en el siguiente repositorio:
https://github.com/kholia/mozilla_password_dump
Pidgin
En cuanto al cliente de mensajería instantánea Pidgin éste almacena las credenciales en claro en el fichero /.purple/accounts.xml por lo que vez una vez verifica la existencia del fichero Wirenet lleva a cabo el parseo del mismo y lo remite al servidor CnC.
Opera
Para este navegador verifica únicamente la existencia del fichero y lo sube al servidor Command&Control sin descifrar. A pesar de que las credenciales están cifradas bajo el algoritmo 3-DES la rutina de descifrado ha sido reverseada y publicada e incluso existen herramientas para su descifrado por lo que obtener las credenciales por parte del atacante sería trivial.
Chrome/Chromium
Tanto Chrome como su proyecto asociado de código abierto Chromium almacenan sus contraseñas en una base de datos sqlite3 bajo el directorio HOME/.config/google-chrome/Default/Login Data y HOME/.config/chromium/Default/Login Data.
Wirenet lleva a cabo su obtención y posterior descifrado para finalmente remitir la información al C2.
Funcionalidad de RAT
Wirenet también tiene funcionalidades como RAT a través de la captura de screenshots del escritorio y la subida a un servidor CnC.
Este proceso lo lleva a cabo a través de la explotación de la API del gestor de ventanas X11.
Del mismo modo también incorpora funcionalidad de keylogger donde a través de las función XListInputDevices() busca dispositivos con la etiqueta “System keyboard” de cara a ejecutar XSelectExtensionEvent() y loguear todos los eventos de teclado con XNextEvent().
Command & Control
A través del análisis dinámico podemos ver comunicación contral el host 103.192.226[.]209 la cual se realiza de manera cifrada a través del algoritmo AES.
Parte de la comunicación con el servidor se lleva a cabo utilizando el método GET petición que tiene la siguiente estructura:
GET %s HTTP/1.1
Host: %s
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept: text/html application/xhtml+xml application/xml;q=0.9 image/webp */*;q=0.8
Accept-Language: en-US en;q=0.8
Connection: close
Curiosamente el User-Agent corresponde a Internet Explorer 11 una pequeña incongruencia si tenemos en cuenta que el malware está dedicado a equipos Linux.
En cuanto al servidor Command & Control no se han encontrado más servicios abiertos que el RDP. Echando un ojo a la interfaz del servicio observamos que se trata de un servidor Windows Server 2008 configurado en idioma chino.