Win32/KanKan. El drama chino

El siguiente post es una traducción y adaptación de la publicación “Win32/Kankan – Chinese Drama” escrita por Pierre-Marc Bureau y disponible en el blog de ESET We Live Security.

En este post se analiza un código malicioso detectado por los productos de ESET comoWin32/Kankan. Este malware nos pareció interesante debido a los siguientes motivos:

  • Registra un plugin de Office que no añade ninguna funcionalidad a la suite ofimática, sino para persistir en el sistema.
  • Instala silenciosamente aplicaciones móviles para Android. Esto lo hace cuando se conecta un teléfono inteligente que tenga la opción de USB debugging (depuración USB, en los sistemas operativos en español) activada al computador infectado.
  • El ejecutable está firmado por una conocida empresa china llamada Xunlei Networking Technologies, que se destaca particularmente por desarrollar uno de los clientes torrent más famosos del mundo

Primero se analizará el contexto que involucra este código malicioso y se explicará por qué su descubrimiento impactó a tantos usuarios chinos. Luego se realizará un análisis técnico de sus funcionalidades en profundidad y la evidencia que sugiere que Xunlei Networking Technologies está implicada en este caso.

Contexto

Esta historia comienza el pasado junio cuando aparecieron varios informes de usuarios chinos que publicaban en foros sobre la aparición de una aplicación sospechosa que estaba firmada por la compañía antes mencionada. Rápidamente el tema se convirtió en noticia de portada de varios sitios web chinos.

Para entender este interés mediático, debemos comprender un contexto que para muchos usuarios que no sean chinos es totalmente desconocido. El principal desarrollo de Xunlei Networking Technologies es Xunlei, un software cuyo propósito es acelerar la descarga de varios tipos de archivos (de forma similar a Orbit Downloader) y cuyo uso es bastante popular en China.

Para explicar esta popularidad, es necesario mencionar cómo funciona esta herramienta. Explicado de forma sencilla, Xunlei mantiene una lista de sitios para cada archivo conocido. Cuando el usuario inicia la descarga de alguno de esos ficheros en su navegador o cliente torrent, el programa elige el servidor más rápido para la descarga de dicho archivo. Para implementar este proceso, Xunlei Networking Technologies desarrolló un complejo ecosistema de software que consta de un buscador de archivos compartidos, un cliente torrent multiprotocolo y un protocolo peer-to-peer personalizado. Para aquellos interesados en profundizar sobre este tema, es posible consultar la publicación “Measurement Study of Xunlei: Extended Version” escrita por Dhungel y otros autores en 2012.

Como se mencionó previamente, Xunlei es extremadamente popular entre usuarios chinos. Un estudio publicado en 2009 por TorrentFreak posicionó este software como el cliente de torrent más utilizado del mundo con más de 100 millones de nodos ID mientras uTorrent registra un pico de 92 millones de nodos ID. Por otro lado, este software no es utilizado en ninguna otra parte del mundo y su sitio web tampoco ha sido traducido a otros idiomas. Cabe destacar que la herramienta ha sido traducida solo por terceros de forma no oficial. En base a lo anterior se puede especular que esto obedece a una estrategia intencionada por parte de la empresa involucrada.

Análisis

INPEn.dll comienza instalando una copia de sí mismo llamada esta vez INPEnh.dll y que actúa como un plugin para Word, Excel y PowerPoint. Para lograr este objetivo, crea una llave en el registro de Windows que provoca que esta DLL sea cargada como plugin. Algunas de estas llaves pueden ser observadas en la siguiente captura:

image1

  • Carga el archivo conf.kklm.n0808.com/tools.ini. Parte del contenido es el siguiente:

numbers-1024x449

Este fichero contiene varios parámetros como, por ejemplo, una lista de herramientas de seguridad cifradas en base64.

  •    Comprueba si se está ejecutando alguna de las herramientas mencionadas. De ser así, el pluginde Office termina el proceso. La lista decodificada es la siguiente: 

taskmgr.exe|procexp.exe|procmon.exe|devenv.exe|windbg.exe|

filemon.exe|ollyice.exe|ollydbg.exe|processspy.exe|spyxx.exe|cv.exe|

wireshark.exe

Cabe destacar que dicha lista solo contiene herramientas como el Administrador de Tareas de Windows, OllyDebugger y una aplicación de manejo de Wi-Fi y no soluciones de seguridad. Se puede inferir que esta funcionalidad está destinada a evitar el análisis de la muestra.

  •  Comprueba si existe una conexión a Internet contactando a dominios chinos como baidu.com y qq.com. Cuando no existe conexión, se mantiene buscando una constantemente.

Si todos los puntos son ejecutados, el plugin envía información a StatServer como la versión de Windows y el nombre de la aplicación (por ejemplo, WINWORD.exe). Luego, ejecuta el archivo INPEnhUD.exe.

  • Finalmente, entra en un bucle constante de administración de tareas (procesos). Este procedimiento es realizado por otra pieza de este puzle.

Actualizador

La ejecución la continúa INPEnhUD.exe que puede ser descrito como un actualizador. Particularmente, consulta la URL update.kklm.n0808.com/officeaddinupdate.xml. En ese momento, el contenido del archivo era el siguiente:

image2

Este fichero XML incluye una lista de direcciones y hashes MD5. Luego, el actualizador descarga cada archivo, verifica el MD5, y, si corresponde, lo ejecuta. Tal como se aprecia en la captura anterior, la URL apunta a un archivo llamado Uninstall.exe. La descripción de tal componente será explicada en este post más adelante.

Servicio

INPEnhSvc.exe, el que será nombrado como “el servicio”, es el núcleo de este programa compuesto por tres componentes. Después de realizar la misma prueba que el plugin de Office para determinar la ejecución de herramientas de seguridad, el servicio obtiene un archivo de configuración XML que contiene varios comandos, cada uno con cierto número de parámetros. Los comandos pueden ser divididos en dos grupos:

  • Comandos locales: scanred, scandesktop y scanfavorites.
  • Comandos “externos”: installpcapp, installphoneapp, setdesktopshortcut, addfavorites y setiestartpage.

Como el propio nombre indica, los comandos locales están implementados en el mismo servicio: scanred busca llaves de registro específicas e informan de su presencia o ausencia al servidor. Scandesktop y scanfavorites buscan archivos .lnk (accesos directos) y .url (archivos de enlace de red) en la carpeta escritorio y favoritos respectivamente. Por otro lado, cuando un comando externo es recibido, el programa se comunica con el plugin de Office que es el responsable de ejecutar dicha acción. Esta comunicación pasa mediante un archivo de configuración llamado tasklist.ini que contiene tres secciones diferentes: DoingDone y DoneByDate. Ambos binarios contienen también una lista única de identificadores (GUIDs), siendo cada uno procesado por una tarea. La comunicación ocurre de la siguiente manera:

  • Cuando se recibe un comando externo, el servicio simplemente escribe la GUID asociada en la sección Doing con sus parámetros (URLs, etc.)
  • Durante el bucle de administración de tareas, el plugin de Office lee el GUID, luego comprueba si el GUID no está presente en las secciones Done y DoneByDate del archivo tasklist.ini. Si el GUID solo está en la sección Doing, se ejecuta la lógica de programa asociada. 
  • Una vez finalizado, el plugin de Office escribe el GUID en la sección Done. Asimismo, las GUID para los comandos installpcap e installphoneapp también son escritas en la secciónDoneByDate. Esto se debe a que probablemente los comandos son ejecutados regularmente

La arquitectura completa se resume a continuación. Los rectángulos azules representan procesos y los amarillos archivos:

kankanIPdrawing

El nombre de los comandos externos se explican por sí solos y no requieren mayor explicación exceptuando el comando installphoneapp.

Aplicaciones para móviles

Como es de suponer, el comando installphoneapp provoca que el plugin descargue una aplicación para Android (archivos .APK) que luego son instalados a cualquier dispositivo Android que sea conectado al ordenador. Para hacer esto, el servicio descarga el binario Android Debug Bridge (ADB) – que es parte de Android SDK – más las librerías que necesita. Posteriormente, el plugin de Office descarga el APK en concordancia a las URL especificadas en el archivo XML de comandos. Finalmente, lista los dispositivos Android conectados al ordenador utilizando el comando de ADB “devices” y luego instala cada APK utilizando la sentencia “install”.

De todos modos, la instalación solo funcionará si el dispositivo Android tiene la opción USB debugging activada dentro del menú de opciones del teléfono. Oficialmente esta característica está destinada para propósitos de desarrollo, sin embargo, también es necesaria para el funcionamiento de algunas aplicaciones y por la mayoría de técnicas de root o para instalar ROMs personalizadas. Cabe destacar que la instalación mediante esta técnica no muestra nada en el dispositivo del usuario, es decir, es un proceso completamente transparente para la persona.

Durante la investigación, las aplicaciones de Android no pudieron ser descargadas, no obstante, se pudieron conseguir cuatro de ellas en algunos foros chinos de seguridad. A continuación se muestra la captura de esas aplicaciones para móviles:

APKs

De acuerdo al análisis, todas esas aplicaciones son de utilidad para el usuario. Tres de estas son repositorios de Android que le permiten al usuario descargar otros programas. No se pudo encontrar ninguna característica específicamente maliciosa. Lo que sí llama la atención es que el código está bastante ofuscado. La última aplicación, todavía disponible en Google Play en el momento de la escritura de este post, le permite al usuario realizar llamadas con una tarificación especial. De todos modos, este programa exhibe un comportamiento sospechoso al contactar con diversas direcciones conocidas por distribuir Adware para Android. Esta aplicación es detectada por los productos de ESET como una variante de Android/SMSreg.BT, que corresponde a un Programa Potencialmente Indeseable (PUA). En términos generales, el motivo detrás de la instalación de estas aplicaciones para móviles es desconocido.

La confesión de Xunlei Networking Technologies

La última pregunta que se debe responder es qué rol tuvo Xunlei Networking Technologies en toda esta historia. No solo el ejecutable está firmado con el certificado de la compañía, sino que el subdominio kankan.com corresponde al servicio de vídeo bajo demanda que ofrece dicha empresa. En agosto pasado y frente a la molestia de varios usuarios, la compañía admitió oficialmente durante una conferencia de prensa, que algunos de sus empleados utilizaron los recursos de la empresa para desarrollar y distribuir el programa. La compañía afirmó que el programa fue creado por una subdivisión sin la autorización correspondiente. Asimismo, se afirma que las cinco personas responsables fueron despedidas y que se pidieron disculpas públicamente.

Por otra parte, el archivo uninstaller – (firmado por la misma compañía) – ha sido detectado a partir de comienzos de agosto. Cualquier ordenador infectado descargará este archivo gracias al actualizador. De acuerdo a nuestros análisis, la desinstalación funciona correctamente eliminando todos los componentes del programa. El final de la propagación de Kankan puede ser verificado contrastando los números de archivos detectados por ESET durante agosto y septiembre:

DetectionStat

Se puede observar que la propagación del programa ha disminuido considerablemente tras del pico registrado el 8 de agosto (el desinstalador fue firmado el 9 de agosto). Finalmente, la distribución geográfica de las infecciones puede ser obtenida gracias al sistema de ESET Virus Radar:

geo

Sin ninguna sorpresa, China ha sido el único país realmente afectado por este programa.

Conclusión

El uso de un plugin falso para Office como forma de obtener persistencia, la habilidad de instalar aplicaciones para Android, y las capacidades de backdoor, confirman la validez de la preocupación mostrada por usuarios chinos y es el motivo de que ESET detecte este programa malicioso comoWin32/Kankan. Todavía quedan preguntas abiertas como el vector original de propagación y el motivo para instalar aplicaciones para Android. Finalmente, determinar con exactitud el grado de implicación de Xunlei Networking Technologies en todo este caso es difícil de comprobar. Como nota al margen recordamos que hasta donde sabemos, ningún otro sitio que no sea chino, ha mencionado esta historia.

Agradecimientos

Gracias a Jean-Ian Boutin, Sieng Chye Oh y Alexis Dorais-Joncas por la ayuda durante el análisis de este código malicioso.

Ficheros analizados:

Dropper

A059D6851013523CDC052A03A91D71D3246A14C2
DB59E003D9F5EBF84EB895B2EE7832AF94D0C93E
722773145CB38249E96CC6A7F0FBC7955ACC5D56
 

Plugin de Office

688B5B319F0E2F5DCD2EDE7BBE39FAE29B5ED83F
B221B71CF14E14FEBC4636DE624A2C6CEE3CE725
089A3BB51C5D5218DF47831489F1D8227E73F4B3

Actualizador

1EFD454130A658DB83A171A8DCB944CAEADC8D8F
4F29B2A9778C02F6FDB63F9041DC4D2F4668B484

Servicio

1C223DA59F4BE7907A2FB00FF756083342166A5B
2D00B2DF8B1CEE7411B2D7B8201B382E2896708C

Aplicaciones de Android

A439B1EA45769EC2FA0EFC4098EC263662EF40AE (market)
693E15A00B4934EE21A6423DE62C4A01947CE06A (market)
0A1813FB3D1DD8B871D0575B15124543FF2313E1 (market)
C6013DE01EC260DC5584FAA2A35EF0580B3BDC89 (llamadas)

Comentar

Acerca de las cookies en este sitio

Este sitio web utiliza cookies propias y de terceros para mejorar tu experiencia de usuario y obtener información estadística. Para poder seguir navegando pulsa en "Sí, estoy de acuerdo". Podrás retirar este consentimiento en cualquier momento a través de las funciones de tu navegador. Ver nuestra política de cookies..