Buer, ein neuer Loader taucht im Untergrund auf

Überblick

Seit mehreren Jahren verfolgen die Forscher von Proofpoint die Verwendung von First-Stage-Downloadern, die von Bedrohungsakteuren zur Installation anderer Formen von Malware während und nach ihren bösartigen E-Mail-Kampagnen verwendet werden. Vor allem in den letzten zwei Jahren sind diese Downloader immer robuster geworden und bieten fortschrittliche Profiling- und Targeting-Funktionen.

Noch wichtiger ist, dass Downloader und andere Malware wie Botnets und Banking-Trojaner Ransomware als primäre Nutzlast verdrängt haben und Bedrohungsakteuren die Flexibilität geben, eine Reihe von Malware in sekundären Infektionen einzusetzen. Einer der am weitesten verbreiteten, Smoke Loader, wurde beispielsweise ausgiebig genutzt, um Nutzlasten wie Ursnif und The Trick-Bankentrojaner abzuwerfen, sowie seine eigenen Module für Anmeldeinformationen und andere Informationen und Datendiebstahl, neben anderen bösartigen Funktionen, zu verwenden.

Seit Ende August 2019 haben die Forscher von Proofpoint die Entwicklung und den Verkauf eines neuen modularen Loaders namens Buer durch seine Autoren verfolgt. Buer verfügt über Funktionen, die mit Smoke Loader konkurrieren, wird aktiv auf bekannten Untergrundmarktplätzen verkauft und ist für Anwender gedacht, die eine schlüsselfertige Lösung von der Stange suchen.

Kampagnen

August 28, 2019

Am 28. August beobachteten Proofpoint-Forscher bösartige E-Mail-Nachrichten, die scheinbar auf frühere legitime E-Mail-Konversationen antworten. Sie enthielten Microsoft-Word-Anhänge, die Microsoft-Office-Makros verwenden, um die Nutzlast der nächsten Stufe herunterzuladen.

Abbildung 1: Beispiel für einen Microsoft-Word-Anhang, der in der Kampagne vom 28. August 2019 verwendet wurde

Wir beobachteten, dass die Nutzlast der nächsten Stufe von URLs heruntergeladen wurde, darunter:

hxxp://jf8df87sdfd.yesteryearrestorationsnet/gate.php

hxxp://93345fdd.libertycolegioscom/gate.php

Die abgelegte Nutzlast trug den Namen verinstere222.xls oder verinstere33.exe (eine Namenskonvention, die der Akteur in dieser Zeit verwendete). Anstelle der Dreambot-Variante von Ursnif, die häufig mit diesem Akteur in Verbindung gebracht wird, handelte es sich bei der Nutzlast um einen undokumentierten Lader, der zuvor noch nie in freier Wildbahn beobachtet wurde.

In den folgenden Wochen im September und Oktober beobachteten die Forscher von Proofpoint und andere Mitglieder der Infosec-Community mehrere Kampagnen desselben Akteurs, die entweder die Dreambot-Variante von Ursnif oder diesen neuen Lader abwarfen.

Oktober 10, 2019

Am 10. Oktober beobachteten Proofpoint-Forscher eine Malvertising-Kampagne in Australien, die auf das Fallout Exploit Kit (EK) umleitete und den neuen Loader ablegte.

Abbildung 2: HTTP-Netzwerkverkehrsspur mit dem Fallout-EK, das anfällige Browser ausnutzt

Der Loader warf dann mehrere Malware-Nutzlasten der zweiten Stufe ab, darunter KPOT-Stealer, Amadey und Smoke Loader.

Oktober 21, 2019

Seit Anfang Juli beobachteten die Forscher von Proofpoint etwa 100 Kampagnen, bei denen Ostap fast ausschließlich mehrere Instanzen von The Trick lud. Am 21. Oktober beobachteten die Proofpoint-Forscher jedoch bösartige E-Mail-Nachrichten mit Betreffzeilen wie „Penalty Notice # PKJWVBP“, die Microsoft Word-Anhänge enthielten. Die Dokumente enthielten Makros, die, falls aktiviert, Ostap ausführen würden. Wir beobachteten, dass Ostap diesen Loader von

hxxps://185.130.104187/nana/kum.php?pi=18b&

herunterlud, der wiederum den Trick „ono22“ von seinem C&C: garrisontxus

Abbildung 3: Netzwerkverkehr, der beobachtet wird, sobald das Makro in den bösartigen Dokumenten aktiviert ist.

Abbildung 4: Beispiel für einen Microsoft Word-Anhang, der in der Kampagne vom 21. Oktober verwendet wurde

Marktplatz &Funktionsanalyse

Da wir den Einsatz dieses neuen Loaders in mehreren unterschiedlichen Kampagnen beobachteten, gingen wir davon aus, dass er auf einem Untergrundmarkt an mehrere Akteure verkauft wurde. Darüber hinaus entdeckten wir in einem Untergrundforum eine Anzeige vom 16. August, in der ein Loader namens „Buer“ beschrieben wurde, der mit der Funktionalität der in den oben genannten Kampagnen beobachteten Malware übereinstimmte.

Die in den folgenden Wochen hinzugefügten und beworbenen Funktionen stimmen genau mit der Entwicklung des in diesen Kampagnen gefundenen Loaders überein.

Wir fanden einen Text aus einem Bulletin-Board-Posting des Autors in russischer Sprache, in dem er eine Zahlung von 400 US-Dollar für die Malware forderte und seine Dienste bei der Einrichtung der Software für potenzielle Kunden anbot, um sie zum Laufen zu bringen. Der Autor weist auch darauf hin, dass Updates und Fehlerkorrekturen kostenlos sind, aber ein Aufpreis von 25 Dollar für die „Wiederherstellung neuer Adressen“ erhoben wird.

Der folgende Text, den Proofpoint ebenfalls aus dem Untergrundmarktplatz extrahiert hat und von dem angenommen wird, dass er vom Autor der Malware stammt, ist eine Zusammenfassung der Funktionalität des Loaders, wie sie im russischen Original beschrieben wird:

Abbildung 5. Text aus einem Beitrag im Untergrundforum, in dem die Funktionalität des Buer Loader-Bots beschrieben wird

In ähnlicher Weise werden in der Anzeige auch die Funktionen des Kontrollpanels aufgeführt. Der Autor merkt an, dass der modulare Bot vollständig in C geschrieben ist und ein in .NET Core geschriebenes Bedienfeld verwendet, wobei er die höhere Leistung sowohl des Clients als auch des Servers aufgrund der Wahl der Programmiersprache hervorhebt.

  • Der Beschreibung zufolge hat der Bot eine Gesamtnutzlast von 55 bis 60 Kilobyte, funktioniert als native ausführbare Windows-Datei und dynamische Link-Bibliothek, läuft vollständig im residenten Speicher und ist mit 32-Bit- und 64-Bit-Betriebssystemen von Microsoft Windows kompatibel.
  • Der Bot kommuniziert über eine HTTPS-Verbindung und kann sowohl nach der Entschlüsselung als auch nach dem Rebuild aus der Ferne über das Kontrollpanel aktualisiert werden.
  • Der Autor weist außerdem darauf hin, dass der Loader als Ersatzprozess einer vertrauenswürdigen Anwendung läuft und mit Rechten auf Benutzerebene arbeitet.
  • Vor allem läuft die Software nicht in den GUS-Staaten (ehemalige Sowjetstaaten wie Russland).

Die Anzeige beschreibt die folgenden Funktionen für den Server und das Kontrollpanel:

  • Das Kontrollpanel wird damit beworben, dass es auch in .NET Core geschrieben ist, und weist auf die einfache Installation auf Ubuntu / Debian Linux Server Systemen hin.
  • Der Server bietet eine breite Palette von Statistiken, einschließlich Zählern für online, lebende, tote und gesamte Bots; ein Echtzeit-Update für die Liste der Bots; ein Dateidownload-Zähler; und eine Möglichkeit, Systeme nach Art des Betriebssystems, Zugriffsrechten der installierten Bots und Anzahl der logischen CPU-Kerne zu filtern.
  • Die von den infizierten Systemen heruntergeladenen Dateien werden in verschlüsselter Form auf dem Server gespeichert, wobei der Zugriff durch ein Token gewährt wird.
  • Außerdem weist der Autor darauf hin, dass der Server – wie die Bots selbst – keine API-Anfragen verarbeitet, die aus GUS-Mitgliedsländern gesendet werden.

Der Forenbeitrag enthielt auch technische Versionshinweise für den Buer-Loader und das Kontrollpanel (Version 1.1.2). In der Einleitung wies der Autor darauf hin, dass der Start des Loaders nun aus drei Schritten besteht – wenn die ersten beiden Schritte auf dem infizierten System nicht erfolgreich sind und die Injektion in den Surrogatprozess fehlschlägt (z.B. aufgrund von Inkompatibilität mit der Krypto selbst), wird der Loader stattdessen unter seinem eigenen Prozess ausgeführt.

In den Versionshinweisen wird für den Lader Folgendes genannt:

  • Der Lader verwendet eine FastFlux-Architektur.
  • Der Lader arbeitet unter einem vertrauenswürdigen Prozess in Microsoft Windows. Der MemLoadEx-Prozess unterstützt jetzt x64-Exe als vertrauenswürdige Anwendung.
  • MemLoad wurde aktualisiert und unterstützt jetzt native x32-Exe.

In den Versionshinweisen werden die folgenden Funktionen für das Control Panel genannt:

  • Der API-Zugriff erfolgt über HTTPS mit Unterstützung für selbstsignierte Zertifikate.
  • Unterstützung für die Bearbeitung von Aufgaben im Panel. Der Benutzer kann die Aufgabe während der Ausführung stoppen und die Nutzlast und die Anzahl der Ausführungen ändern.
  • Die Möglichkeit, eine Aufgabe nach Bot-ID zu erstellen, wurde hinzugefügt. Sehr geeignet für Punktlasten.
  • Ein Schritt-für-Schritt-Fenster für die Erstellung von Aufgaben.
  • Eine Benachrichtigung, die es ermöglicht, sich über die benötigten Bots online zu informieren.
  • Die Eindeutigkeit der Bot-ID wurde erhöht.
  • Tags wurden dem Panel hinzugefügt, die es ermöglichen, Bots für spätere Aktionen mit ihnen zu sortieren.
  • Der Computername wird in der Tabelle angezeigt.
  • Verbesserte Krypto-Kompatibilität.
  • Hinzugefügt wurde eine Bot-Historie.
  • „Das Panel erweitert sich jetzt auf Docker“ (Unterstützung von Docker-Containern).
    • Anmerkung eines Proofpoint-Forschers: Wir vermuten, dass diese Funktion der einfachen Integration in geleaste Docker-Hosts dient und die Installation vereinfacht, obwohl das Panel/C&C möglicherweise auf einem kompromittierten Docker-Host installiert werden könnte.
  • Validierung der Datei auf dem Panel. Jetzt wird das Panel die Datei, die der Lader nicht herunterladen kann, nicht mehr übersehen und den Client darüber benachrichtigen.
  • Aufgaben können jetzt wiederholt werden.

Abschließend beschrieb der Autor die folgenden technischen Änderungen für Version 1.1.9. Diese sind bemerkenswert, da sie zeigen, dass die Malware aktiv und professionell weiterentwickelt wird.

  • Der Loader hat eine neue Methode zum Starten von Extern für lokale Dateien erhalten. Die Vorteile der Methode sind Einzigartigkeit und kein CreateProcess / ShellExecute durch den Lader. Der Start erzeugt einen vertrauenswürdigen Prozess ohne irgendwelche Befehle an ihn.
  • Das Panel hat die Möglichkeit, alle Bots zu markieren, die eine bestimmte Aufgabe ausgeführt haben. Dies ermöglicht es dem Benutzer, die Nutzlast an bestimmte Gruppen von Bots zu verteilen.
  • Implementierte Integrations-API. Verfügbare Dokumentation dafür.
  • Die Möglichkeit, eine Datei per Referenz im Proxy-Modus zu senden, wurde hinzugefügt. Die Datei wird in verschlüsselter Form an den Bot übertragen.
  • Der Fehler bei der Zählung von Bots nach Land wurde behoben und andere Verbesserungen wurden hinzugefügt.

Screenshots des Kontrollpanels

Die folgenden Screenshots des Kontrollpanels wurden in die unterirdische Werbung aufgenommen und zeigen einige der Backend-Funktionen, die Kunden zur Verfügung stehen, einschließlich Telemetrieüberwachung, Hostfilterung und mehr.

Abbildung 6: Bedienfeld-Anmelde-UX für den Buer Loader C&C

Abbildung 7: Bot-Telemetrie-Überwachungsbildschirm für das Buer Bedienfeld.

Abbildung 8: Bot-Telemetrie-Überwachungsbildschirm im dunklen Modus für das Buer-Kontrollzentrum.

Abbildung 9: Kontrollzentrum-Filteransicht, die nach Microsoft Windows-Architektur gefilterte Remote-Bots zeigt.

Abbildung 10: Ansicht des Bedienfelds mit Dateiverwaltung für Loader-Aufgaben

Abbildung 11: Ansicht des Bedienfelds mit entfernten Bots, sortiert nach Benutzerrechten.

Abbildung 12: Ansicht des Kontrollpanels, Aufgabenstatus

Abbildung 13: Ansicht des Kontrollpanels, Erstellung einer Aufgabe

Malware-Analyse

Buer Loader ist eine neue Downloader-Malware, die zusätzliche Nutzlasten herunterlädt und ausführt.

Anti-Analyse-Funktionen

Der Loader enthält einige grundlegende Anti-Analyse-Funktionen:

  • Überprüfung auf Debugger durch Inspektion des NtGlobalFlags im Process Environment Block (PEB) und Thread Environment Block (TEB)
  • Überprüfung auf virtuelle Maschinen unter Verwendung der Red Pill , No Pill und verwandter Mechanismen
  • Überprüfung der Locale, um sicherzustellen, dass die Malware nicht in bestimmten Ländern ausgeführt wird (Abbildung 14)

Abbildung 14: Malware-Prüfung, um sicherzustellen, dass sie nicht in bestimmten Ländern ausgeführt wird

Persistenz

Die Persistenz wird durch die Konfiguration eines Registrierungseintrags „RunOnce“ eingerichtet. Je nach Version führt der Registry-Eintrag die Malware direkt aus oder plant eine Aufgabe zur Ausführung.

Verschlüsselte Zeichenketten

Dieses Beispiel enthält eine Funktion zur Verschlüsselung von Zeichenketten.

Abbildung 15: Entschlüsselungssequenz für Strings

Die folgende Funktion ist ein Beispiel dafür, wie man die verschlüsselten Strings in Ghidra mit Jython entschlüsselt:

Abbildung 16: Entschlüsselungssequenz für Strings (Python-Version)

Abbildung 17: Beispiel für die Entschlüsselung von Strings

Windows-API-Aufrufe

Dieses Beispiel verwendet einen Hashing-Algorithmus, um die meisten seiner Windows-API-Aufrufe aufzulösen. Der Hash-Algorithmus stellt sicher, dass jedes Zeichen des API-Namens ein Großbuchstabe ist. Dann wird jedes Zeichen um 13 nach rechts gedreht (ROR) und addiert.

Abbildung 18: Hashing-Algorithmus zur Auflösung von Windows-API-Aufrufen

Die folgende Funktion ist ein Beispiel dafür, wie Python zur Auflösung von API-Aufrufen verwendet werden kann.

Abbildung 19: Beispiel für ein Python-Skript, das zur Unterstützung bei der Auflösung von gehashten Windows-API-Aufrufen verwendet wird

Die folgende Tabelle enthält eine Liste einiger ausgewählter verwendeter Hashes und der entsprechenden Windows-API-Namen:

CreateMutexW

0xed619452

OpenMutexW

0x7bffe25e

CreateProcessW

0xb4f0f46f

WinHttpOpen

0xaf7f658e

WinHttpCrackUrl

0x8ef04f02

WinHttpConnect

0x9f47a05e

WinHttpOpenRequest

0x1dd1d38d

Tabelle 1: Windows-API-Aufrufe mit ausgewählten Hashes

Befehl und Steuerung

Befehls- und Steuerungsfunktionen (C&C) werden über HTTP(S)-GET-Anfragen abgewickelt. Ein Beispiel-Befehls-Bake sieht wie in Abbildung 20 aus:

Abbildung 20: Beispiel-Befehls-Bake

Diese Anfragen gehen an die „Update API“ und enthalten einen verschlüsselten Parameter. Dieser Parameter kann entschlüsselt werden durch:

  1. Base64-Entschlüsselung
  2. Hex-Entschlüsselung
  3. RC4-Entschlüsselung (der in den analysierten Beispielen verwendete Schlüssel war „CRYPTO_KEY“)

Ein Beispiel für den Klartextparameter ist

88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYYOI

Es enthält Pipe-begrenzte Daten, bestehend aus:

  • Bot-ID (SHA-256-Hex-Hash verschiedener Systemparameter wie Hardwareprofil-GUID und -Name, Computername, Volume-Seriennummer, und CPUID)
  • Ein SHA-256-Hash des eigenen ausführbaren Abbilds
  • Windows-Version
  • Architektur-Typ
  • Anzahl der Prozessoren
  • Benutzerrechte
  • Computername

Eine Beispiel-Befehlsbeacon-Antwort ist in Abbildung 21 dargestellt:

Abbildung 21: Beispiel für eine Befehls-Baken-Antwort

Sie kann ähnlich wie der obige Anforderungsparameter entschlüsselt werden, mit der Ausnahme, dass die hexcodierten Bytes durch Bindestriche getrennt sind. Ein Beispiel für eine Klartext-Antwort ist in Abbildung 22 dargestellt:

Abbildung 22: Klartext-Befehls-Baken-Antwort

Der entschlüsselte Text ist ein JSON-Objekt, das verschiedene Optionen für das Herunterladen und Ausführen einer Nutzlast enthält:

  • type – es gibt zwei Typen:
    • update – update self
    • download_and_exec – download and execute
  • options – gibt Optionen für die herunterzuladende Nutzlast an:
    • Hash – gilt nur für den Typ „update“, um festzustellen, ob ein neues Update verfügbar ist
    • x64 – gibt an, ob die Nutzlast 64-bit ist
    • FileType – wird in den analysierten Samples nicht verwendet
    • AssemblyType – wird in den analysierten Samples nicht verwendet
    • AssemblyType – wird in den analysierten Samples nicht verwendet
    • AssemblyType – wird in den analysierten Samples nicht verwendet. wird in den analysierten Beispielen nicht verwendet
    • AccessToken – wird zum Herunterladen der Nutzlast verwendet (siehe unten)
    • External – gibt an, ob die Nutzlast von der C&C oder einer externen URL heruntergeladen wird
  • method – Methode der Ausführung:
    • exelocal – Prozess erstellen
    • memload – Nutzlast injizieren und manuell laden
    • memloadex – Nutzlast injizieren und manuell laden
    • loaddllmem – Nutzlast injizieren und manuell laden
  • parameters – Parameter, die in der Befehlszeile übergeben werden
  • pathToDrop -. wird in den untersuchten Beispielen nicht verwendet
  • autorun – gibt an, ob die Registry RunOnce Persistenz für die Nutzlast einrichten soll
  • modules – siehe Abschnitt Module weiter unten
  • timeout – wird in den untersuchten Beispielen nicht verwendet

Nutzlasten, die vom C&C Server heruntergeladen werden, werden über Anfragen an die „Download API“ durchgeführt, wie in Abbildung 23 zu sehen ist:

Abbildung 23: Herunterladen von Nutzdaten von C&C

Ein Beispiel für den Klartext-Anforderungsparameter ist unten dargestellt:

88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74

Er enthält die ID des Bots und den „AccessToken“ aus der Beacon-Antwort. Wenn die Nutzlast vom C&C heruntergeladen wird, wird sie mit RC4 verschlüsselt. In den analysierten Beispielen war der Schlüssel „CRYPTO_KEY“.

Module

Die Command Beacon-Antwort enthält eine „Module“-Liste. Proofpoint-Forscher haben noch nicht beobachtet, dass Buer-Module in freier Wildbahn verwendet werden, aber basierend auf dem Code wird diese Liste Module AccessTokens enthalten. Der Name der Moduldatei wird abgefragt, indem ein AccessToken an die „Modul-API“ des C&C gesendet wird. Das Modul wird dann über die „downloadmodule API“ heruntergeladen. Sobald es heruntergeladen und entschlüsselt ist, wird es mit der „loaddllmem“-Methode geladen.

Schlussfolgerung

Ein neuer Downloader, Buer, ist in letzter Zeit in einer Reihe von Kampagnen aufgetaucht, und zwar über Malvertising, das zu Exploit-Kits führt; als sekundäre Nutzlast über Ostap; und als primäre Nutzlast, die Malware wie den Banking-Trojaner The Trick herunterlädt.

Der neue Loader verfügt über robuste Geotargeting-, Systemprofilierungs- und Anti-Analyse-Funktionen und wird derzeit in Untergrundforen mit Mehrwert-Setup-Diensten vermarktet. Der russischsprachige Autor bzw. die Autoren entwickeln den Downloader aktiv mit ausgefeilten Control Panels und einem reichhaltigen Funktionsumfang weiter, was die Malware auf den Untergrundmärkten wettbewerbsfähig macht.

Der Downloader ist in C geschrieben, während das Control Panel in .NET Core verfasst ist, was auf eine Optimierung der Leistung und einen geringen Download-Footprint sowie auf die Möglichkeit hinweist, das Control Panel problemlos auf Linux-Servern zu installieren – die integrierte Unterstützung für Docker-Container wird die Verbreitung auf gemieteten Hosts, die für bösartige Zwecke genutzt werden, und möglicherweise auch auf kompromittierten Hosts weiter erleichtern. Die letztgenannte Fähigkeit ist in den angekündigten Funktionen und Versionshinweisen enthalten.

https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/

https://www.proofpoint.com/us/threat-insight/post/ostap-bender-400-ways-make-population-part-with-their-money

https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt

https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt

Indikatoren für Kompromittierung (IOCs)

IOC

IOC Type

Description

fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce

sha256

http[://45.76.247[.177:8080/api/update/

URL

Buer C&C callback

6c694df8bde06ffebb8a259bebbae8d123effd58c9dd86564f7f70307443ccd0

sha256

197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90

sha256

https[://173.212.204[.171/api/update/

URL

Buer C&C callback

9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73

sha256

(Fallout Drop)

http[://134.0.119[.53:8080/api/update/

URL

Buer C&C callback

ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f

sha256

(Ostap drop)

https[://garrisontx[.us/api/update/

URL

Buer C&C callback

https[://185.130.104[.187/nana/kum.php?pi=18b

URL

Ostap-Instanz dropping Buer – 2019-10-.21

753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e

sha256

Buer 2019-.11-28

ffload01[.top|185.125.58[.11

ffload01[.top|185.186.141[.129

Domain|IP

Buer C&C 2019-11-.28

ET und ETPRO Suricata/Snort Signaturen

2029077 || ET TROJAN Buer Loader Update Request

2029079 || ET TROJAN Buer Loader Response

2029078 || ET TROJAN Buer Loader Download Request

2839684 || ET TROJAN Buer Loader Successful Payload Download

2029080 || SSL/TLS Certificate Observed (Buer Loader)

Schreibe einen Kommentar