Über unsMediaKontaktImpressum
Dennis Schwarz 05. September 2017

LockPoS wird Teil der Malware-Familie

Es ist zurzeit nicht sicher, ob es sich bei LockPoS um eine exklusive Malware handelt. © Tomasz Zajda / Fotolia.com
© Tomasz Zajda / Fotolia.com

Bei der erneuten Analyse einer Flokibot-Kampagne, die Anfang des Jahres gegen brasilianische Kassensysteme (Point of Sale/ PoS) gerichtet war, wurde festgestellt, dass einer der lange inaktiven C2-Server (Command & Control) plötzlich wieder aktiv geworden war und damit begonnen hatte, eine neue Familie von PoS-Malware zu verteilen. Diese wird als LockPoS bezeichnet.

Loader und Injectoren

Das analysierte Sample hat ein relativ neues Kompilierungsdatum (24.06.2017) [1]. Es löst zunächst einige Windows-Funktionen mithilfe von API-Hashing auf (CRC32 wird als Hashfunktion verwendet). Dies sind einige der Funktionen und die entsprechenden Hashwerte:

  • FindResourceW – 0xcad4de2b
  • CryptDecrypt – 0x9c2d8fb5
  • RtlDecompressBuffer – 0x52fe26d8

Wie die obigen Funktionen vermuten lassen, schließen sich folgende Aktionen an:

  • Entpacken einer Ressource mit der Bezeichnung "CORE"
  • Entschlüsselung dieser Ressource mit AES-256 im CBC-Modus und einem Initialisierungsvektor (IV), der nur aus Nullbytes besteht
  • Dekomprimieren des Klartexts

Die Ergebnisdatei ist eine ausführbare Datei [2] mit der folgenden Debugzeichenfolge:

C:\Users\Admin\Desktop\key\dropper\Release\dropper.pdb

Die ausführbare Datei wird manuell geladen und ausgeführt. Der so genannte Dropper extrahiert nun eine Ressource mit der Bezeichnung "XXXX" aus seinem Archiv. Die Ressourcendatei enthält mehrere Komponenten, die in explorer.exe injiziert werden. Sobald sie in explorer.exe ausgeführt wird, verhält sie sich ähnlich wie der oben erwähnte Loader, d. h., sie entschlüsselt, dekomprimiert und lädt das endgültige LockPoS-Schadprogramm.

Zusammenfassung des Lade- und Injektionsprozesses:

  1. Ausführbare Originaldatei lädt ausführbaren Dropper
  2. Dropper injiziert einen Second-Stage-Loader und das endgültige LockPoS-Schadprogramm in explorer.exe
  3. Loader in explorer.exe lädt die endgültige LockPoS-DLL

LockPoS-Komponente

Die analysierte LockPoS-DLL [3] hat die folgende Debugzeichenfolge:

C:\Users\Admin\Desktop\key\lock\Release(DLL)\lock.pdb

LockPoS verwendet die reguläre registry run-Methode, um möglichst lange ausgeführt zu werden. Es verschleiert wichtige Zeichenfolgen mit XOR und dem Schlüssel "A". Eine Anfangskonfiguration (einschließlich der C2-URL) wird unverschlüsselt als Ressource mit der Bezeichnung "XXXX" gespeichert:

Abb.1: Eine Anfangskonfiguration (einschließlich der C2-URL) wird unverschlüsselt als Ressource mit der Bezeichnung „XXXX“ gespeichert. © Dennis Schwarz
Abb.1: Eine Anfangskonfiguration (einschließlich der C2-URL) wird unverschlüsselt als Ressource mit der Bezeichnung „XXXX“ gespeichert. © Dennis Schwarz

Die Konfiguration wird als binäre Struktur gespeichert, wobei das erste DWORD-Element (in diesem Beispiel: 5) die Anzahl der nachfolgenden Dateneinträge angibt. Jeder Dateneintrag setzt sich wie folgt zusammen:

  • Typ (DWORD)
  • Datenlänge (DWORD)
  • Daten

Diese Struktur wird als "Datenblock" bezeichnet, um spätere Referenzen zu erleichtern.

Die C2-Kommunikation erfolgt über HTTP und verwendet einen sehr aufschlussreichen User Agent. In Abb.2 ist eine Beispielanforderung zu sehen.

Abb.2: Beispielanforderung. © Dennis Schwarz
Abb.2: Beispielanforderung. © Dennis Schwarz

Die POST-Daten sind eine Struktur aus "Datenblöcken" mit dem folgenden Format:

  • Anzahl der Datenblöcke (DWORD)
  • Größe von Datenblock 1
  • Datenblock 1
  • Größe von Datenblock 2
  • Datenblock 2

Das obige Beispiel enthält einen Datenblock mit den folgenden neun Einträgen:

  • Typ 0: Nachrichtentyp (0)
  • Typ 3: Zeichenfolge mit Benutzername, Computername und Bot-ID
  • Typ 1: Wert aus der Konfiguration
  • Typ 2: Bot-Version (1.0.0.6)
  • Typ 8: CPU
  • Typ 9: Physischer Speicher
  • Typ 10: Anzeigegeräte
  • Typ 4: Windows-Version und Architektur
  • Typ 6: MD5-Hashwert des zurzeit ausgeführten Samples
IT-Tage 2017 - Security
Abb.3: Beispielantwort des C2-Systems. © Dennis Schwarz
Abb.3: Beispielantwort des C2-Systems. © Dennis Schwarz

Die Beispielantwort des C2-Systems ist in Abb.3 zu sehen. Genau wie die angeforderten Daten, sind die zurückgegebenen Daten strukturiert und enthalten in diesem Fall eine aktualisierte Konfiguration.

LockPoS unterstützt die folgenden Befehle:

  • Konfiguration aktualisieren
  • Herunterladen und ausführen
  • Datendatei wechseln
  • Sich selbst aktualisieren
  • Ausführbare Datei in explorer.exe injizieren

Die Funktion zum Entwenden von Kreditkartendaten aus dem Kassensystem in dieser Malware arbeitet ähnlich wie bei anderer PoS-Malware – sie durchsucht den Speicher von anderen aktiven Programmen nach Daten, die Spurdaten von Kreditkarten sein könnten. Das folgende Code-Snippet zeigt die Abgleichfunktion:

Abb.4: Das Code-Snippet zeigt die Abgleichfunktion. © Dennis Schwarz
Abb.4: Das Code-Snippet zeigt die Abgleichfunktion. © Dennis Schwarz

Abb.5 zeigt das Auslesen von Kreditkartendaten durch LockPoS anhand einiger Beispieldaten von Spur 2 der Kreditkarte [4].

Abb.5: Auslesen von Kreditkartendaten durch LockPoS. ©
Abb.5: Auslesen von Kreditkartendaten durch LockPoS. ©

Dieses Beispiel enthält zwei Datenblöcke. Der erste ähnelt dem vorangegangenen "Phone Home"-Beispiel. Der zweite Datenblock umfasst die folgenden sieben Einträge:

  • Typ 0: Nachrichtentyp (2)
  • Typ 113: Kontrollzähler
  • Typ 111: Festcodierte Null
  • Typ 112: Spurdaten der Kreditkarte und Anwendung, aus der sie stammen
  • Typ 3: Zeichenfolge mit Benutzername, Computername und Bot-ID
  • Typ 1: Wert aus der Konfiguration
  • Typ 114: Index des Eintrags

Fazit

Bisher wurde LockPoS über ein Flokibot-Botnetz verteilt [5]. Beide nutzen einen gemeinsamen C2-Host (treasurehunter[.]at). Sie werden deshalb vermutlich vom selben Angreifer gesteuert. Wie weiter oben erwähnt, war die Flokibot-Kampagne gegen Brasilien gerichtet. Daher liegt die Vermutung nahe, dass dies auch bei LockPoS der Fall sein wird.

Bei dem analysierten C2-Server (treasurehunter[.]at) fällt auf, dass es eine Namensüberschneidung mit einer anderen PoS-Malware gibt, die Treasurehunt heißt, über die FireEye im Jahr 2016 berichtet hat [6]. Basierend auf der Untersuchung der jeweiligen C2-Kommunikation, Panel und anderer IoCs (Indicators of Compromise), scheint es sich bei LockPoS und Treasurehunt um separate Malware-Familien zu handeln.

Es ist zurzeit noch nicht sicher, ob es sich bei LockPoS um eine exklusive Malware von einem Angreifer handelt oder ob es (ähnlich wie Flokibot) in Untergrundforen verkauft wird. Basierend auf den Detailinformationen zu der in diesem Beitrag beschriebenen Malware scheint LockPoS gut und stabil programmiert zu sein. Es ist jedoch kein weiterer Schritt in Richtung "ultrakomplexe Malware". Angesichts des Chaos, das PoS-Malware in den letzten Jahren im Bereich von Hotels, Restaurants und im Einzelhandel angerichtet hat, lässt sich nicht eindeutig klären, ob LockPoS tatsächlich keine neuen Eigenschaften hat.

nach Oben
Autor

Dennis Schwarz

Dennis Schwarz ist Research Analyst bei Arbors ASERT Team. Zu seinen Aufgaben gehören Analyse von akuten Bedrohungen für die Internetsicherheit, Reverse Engineering von Schadcode- und Kommunikationsprotokollen.
>> Weiterlesen
botMessage_toctoc_comments_929