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:

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.

Referencias

https://www.webroot.com/blog/2012/09/14/wirenet-the-password-stealing-trojan-lands-on-linux-and-os-x/

Compartir
Artículo anteriorSothis runs S/4HANA Cloud
Artículo siguienteSecurity Made In LU: The Hive Project Workshop
mm
Ingeniero de Seguridad trabajando en el sector de la ciberseguridad desde hace más de 2 años. Amplia experiencia en la detección de amenazas mediante diferentes técnicas y aplicaciones: Snort, Suricata, Wazuh, Ossec, SIEM (Qradar), Honeypots. Apasionado por la seguridad, dedica su tiempo libre al estudio de las nuevas amenazas y su detección (Threat Intelligence).