Buhtrap: Backdoor und Ransomware über Advertising‑Plattform verbreitet | WeLiveSecurity

Buhtrap: Backdoor und Ransomware über Advertising‑Plattform verbreitet

ESET-Forscher dokumentieren, wie Cyberkriminelle das Ad-Netzwerk der führenden Suchmaschine Russlands für die Verbreitung von Malware missbrauchten.

ESET-Forscher dokumentieren, wie Cyberkriminelle das Ad-Netzwerk der führenden Suchmaschine Russlands für die Verbreitung von Malware missbrauchten.

Welch besseren Weg gäbe es, Accountants ins Visier zu nehmen, als während ihrer Suche nach hilfreichen Formatvorlagen für die Arbeit? Über den Zeitraum von mehreren Monaten tat eine cyberkriminelle Gruppierung genau das. Dabei verbreitete sie zwei sehr bekannte Backdoors: Buhtrap und RTM sowie Ransomware und kleine Programme zum Stehlen von Kryptowährung. Die Cyberkriminellen attackierten hauptsächlich Unternehmen aus Russland.

Die Opfer fielen auf bösartige Anzeigen herein, die über Yandex.Direct geschalten wurden. Die potenziellen Ziele wurden auf eine Webseite umgeleitet, die schädliche Downloads, getarnt als Dokumentvorlagen, bereithielt.

Yandex ist die größte Internet-Suchmaschine in Russland. Das dazugehörige Online-Advertising-Netzwerk ist Yandex.Direct. ESET setzte sich mit Yandex in Verbindung, woraufhin das Unternehmen die „Malvertising“-Kampagne beendete.

Im Vergleich zum Buhtrap Malware-Quellcode ist der von RTM nach unserem Wissen noch nicht öffentlich aufgetaucht. Dieser Beitrag erläutert zunächst, wie die Cyberkriminellen ihre Schadsoftware mit Hilfe von Yandex.Direct und GitHub verbreiteten. Danach folgt die technische Analyse der verwendeten Malware-Komponenten.

Verteilungsmethode von Buhtrap und RTM und deren Opfer

Die unterschiedlichen Payloads von Buhtrap und RTM verbindet die Tatsache, wie sie verbreitet wurden. Die Cyberkriminellen hosteten alle Schad-Dateien auf zwei verschiedenen GitHub- Repositorien.

Normalerweise konnte immer nur eine Schadsoftware aus einem Repositorium geladen werden. Welche das war, änderte sich regelmäßig. Durch die Versionshistorie des GitHub-Repositoriums können wir genau nachvollziehen, welche Malware man zu welchem Zeitpunkt verbreitet.

Eine Möglichkeit, die potenziellen Opfer zum Malware-Download zu bewegen, bestand durch die Webseite blanki-shabloni24[.]ru, Abbildung 1 zeigt das Design der Seite:

Abbildung 1: Landing Page von blanki-shabloni24[.]ru

Abbildung 1: Landing Page von blanki-shabloni24[.]ru

Das Webseiten-Design und der Deckname der Schadsoftware waren sehr aufschlussreich. Alles handelte von Formularen, Vorlagen und Verträgen. Die Fake-Software trägt aus dem Russischen übersetzt den Namen: “Vorlagen-Sammlung 2018: Formulare, Vorlagen, Verträge, Muster“.

Angesichts der Tatsache, dass Buhtrap und RTM bereits in der Vergangenheit gegen Buchhaltungsabteilungen zum Einsatz kamen, war uns bewusst, dass es sich um einen ähnlichen Fall handeln muss. Uns beschäftigte nun die Frage, wie die Opfer auf die Webseite mit der schädlichen Fake-Software gelangten.

Kompromittierungskampagne

Wenigstens ein paar Opfer sind auf die Malvertising-Kampagne der Cyberkriminellen hereingefallen. Hier kann man die exemplarische Redirect-URL zur bösartigen Webseite begutachten:

https://blanki-shabloni24.ru/?utm_source=yandex&utm_medium=banner&utm_campaign=cid|{blanki_rsya}|context&utm_content=gid|3590756360|aid|6683792549|15114654950_&utm_term=скачать бланк счета&pm_source=bb.f2.kz&pm_block=none&pm_position=0&yclid=1029648968001296456

Wir können in der URL sehen, dass eine Banneranzeige auf bb.f2[.]kz ausgespielt wurde. Das ist ein legitimes Forum für Fragen rund ums Accounting. An dieser Stelle möchten wir anmerken, dass Banner auf verschiedenen Webseiten mit der gleichen Kampagnen-ID (blanki_rsya) und die meisten von ihnen im Zusammenhang mit Buchhaltungs- oder Rechtshilfediensten erschienen.

Der URL können wir auch entnehmen, nach was mit Hilfe der Yandex-Suchmaschine gesucht wurde: “скачать бланк счета” bzw. “Rechnungsvorlage herunterladen”. Das bestärkt unsere Hypothese, dass die Angriffe auf Unternehmen abzielten. Tabelle 1 zeigt eine Liste von Webseiten, auf denen das Banner auftauchte.

Search term RUSearch term EN (Google Translate)Domain
скачать бланк счетаdownload invoice templatebb.f2[.]kz
образец договораcontract exampleIpopen[.]ru
заявление жалоба образецclaim complaint example77metrov[.]ru
бланк договораcontract formblank-dogovor-kupli-prodazhi[.]ru
судебное ходатайство образецjudicial petition examplezen.yandex[.]ru
образец жалобыexample complaintyurday[.]ru
образцы бланков договоровexample contract formsRegforum[.]ru
бланк договораcontract formassistentus[.]ru
образец договора квартирыexample apartment contractnapravah[.]com
образцы юридических договоровexamples of legal contractsavito[.]ru

Tabelle 1 – Verwendete Suchbegriffe und Domains, auf denen das schädliche Banner angezeigt wurde

Die blanki-shabloni24[.]ru Webseite wurde wahrscheinlich deshalb eingerichtet, um grundlegende Sicherheitsprüfungen zu überstehen. Eine Werbeanzeige, die auf eine professionell aussehende Webseite mit Link zu GitHub verlinkt, ist auf den ersten Blick nichts Schlechtes. Außerdem wurden die schädlichen Files nur periodisch online auf GitHub zur Verfügung gestellt – Möglicherweise auch nur für den Zeitraum der Ad-Kampagne. Meistens enthielten die Repositorien bloß eine leere ZIP-Datei und eine saubere EXE.

Zusammenfassend gesagt, waren die Cyberkriminellen in der Lage, über Yandex.Direct Werbeanzeigen auf verschiedenen Webseiten zu platzieren, die in der Suche für bestimmte Suchbegriffe auftauchen. Hier hat es eine cyberkriminelle Vereinigung wahrscheinlich auf Buchhalter vorwiegend russischer Unternehmen abgesehen.

Im Folgenden wird auf die verschiedenen Payloads der Malwares genauer eingegangen.

Payload-Analyse

Zeitlicher Verlauf der Ausbreitung

Die Malware-Kampagne startete Ende Oktober 2018 und war bis zum Entstehen dieses Beitrags noch aktiv. Da das gesamte Repositorium auf GitHub öffentlich verfügbar war, konnten wir einen genauen Zeitverlauf der verbreiteten Malware-Varianten aufstellen (siehe Abbildung 2). Im beobachteten Zeitraum wurden sechs verschiedene Malware-Familien auf GitHub gehostet. Die unterste Zeile veranschaulicht, wann die Banner-Links (basierend auf der ESET-Telemetrie) aktiv waren. Auf diese Weise lässt sich anschaulich darstellen, wann Payload-Verbreitung über GitHub und die Malvertising-Kampagne gleichzeitig stattfanden. Die Lücke im Zeitverlauf Ende Februar erklärt sich durch das verpasste Abrufen der Daten aus GitHub, bevor Repository 1 gelöscht wurde.

Abbildung 2: Zeitverlauf der Malware-Verbreitung

Abbildung 2: Zeitverlauf der Malware-Verbreitung

Codesignaturzertifikate

Für die Verbreitung der Malware-Kampagne wurden mehrere Codesignaturzertifikate benutzt. Einige der Zertifikate wurden wiederum zum Signieren mehrerer Malware-Familien verwendet – für uns ein zusätzlicher Indikator für die Verknüpfung von Buhtrap und RTM. Die Malware-Operatoren signierten die Binaries auch nicht systematisch bevor sie sie in das Git-Repository verschoben.

Es ist überraschend, dass die Cyberkriminellen Zugriff zu den privaten Schlüsseln der Zertifikate hatten, damit aber nicht alle signierten. Ende Februar 2019 begannen sie außerdem, ungültige Signaturen mit einem Zertifikat von Google zu erstellen, für das sie keinen privaten Schlüssel besaßen.

Alle an dieser Kampagne beteiligten Zertifikate und die von ihnen signierten Malware-Familien werden in Tabelle 2 angezeigt.

Cert’s CNThumbprintSigned malware family
TOV TEMA LLC775E9905489B5BB4296D1AD85F3E45BC936E7FDCWin32/ClipBanker
TOV "MARIYA"EE6FAF6FD2888A6D11DD710B586B78E794FC74FCWin32/ClipBanker
"VERY EXCLUSIVE LTD"BD129D61914D3A6B5F4B634976E864C91B6DBC8EWin32/Spy.Buhtrap
"VERY EXCLUSIVE LTD."764F182C1F46B380249CAFB8BA3E7487FAF21E2AWin32/Filecoder.Buhtrap
TRAHELEN LIMITED7C1D7CE90000B0E603362F294BC4A85679E38439Win32/Spy.RTM
LEDI, TOV15FEA3B0B839A58AABC6A604F4831B07097C8018Win32/Filecoder.Buhtrap
Google Inc1A6AC0549A4A44264DEB6FF003391DA2F285B19FWin32/Filecoder.Buhtrap
MSIL/ClipBanker

Tabelle 2 – Liste der von den Cyberkriminellen signierten Zertifikate und Malware-Familien

Anhand der Codesignierungszertifikate wollten wir feststellen, ob eine Verbindung zu anderen Malware-Familien besteht. Für die meisten Zertifikate fanden wir keine Malware, die nicht mit Hilfe von GitHub verteilt wurde. Das TOV-Zertifikat „MARIYA“ wurde allerdings zum Signieren von Malware verwendet, welche dem Wauchos-Botnet zuzuordnen ist, sowie Adware und Coin Minern. Als sehr unwahrscheinlich gilt, dass diese Malware-Varianten mit der von uns analysierten Kampagne verknüpft waren. Es ist wahrscheinlicher, dass man das betreffende Zertifikat auf einem Online-Schwarzmarkt kaufte.

Win32/Filecoder.Buhtrap

Die Komponente, die unsere Aufmerksamkeit als erstes erregte, war die bis dato uns unbekannte Win32/Filecoder.Buhtrap. Es handelt sich um eine Delphi Binary, die gelegentlich auch gepackt ist. Die Ransomware wurde hauptsächlich im Februar und März 2019 verteilt. Der Schadcode erkennt lokale Laufwerke und Netzwerkfreigaben und verschlüsselt darauf alle gefundenen Dateien.

Eine Internetverbindung ist dazu nicht notwendig, da keine Verschlüsselungsschlüssel durch einen C&C-Server kommuniziert werden. Stattdessen wird ein „Token“ am Ende der Lösegeldforderung angehängt. Die Opfer müssen die Cyberkriminellen per E-Mail oder Bitmessage kontaktieren. Die Lösegeldforderung findet man im Appendix A.

Damit möglichst viele Dateien verschlüsselt werden können, startet Filecoder.Buhtrap einen Thread, der wesentliche Softwareprozesse beendet, die den Zugriff auf möglicherweise wichtige Daten blockieren und so eine Verschlüsselung behindern. Im Visier stehen dabei hauptsächlich Datenbankmanagementsysteme (DBMS). Darüber hinaus entfernt Filecoder.Buhtrap Protokolldateien und Backups, um Opfern ohne Offline-Backup die Wiederherstellung von Dateien so schwer wie möglich zu gestalten. Dazu wird das Batch-Skript in Abbildung 3 ausgeführt:

Abbildung 3 – Skript zum Entfernen von Backups und Protokolldateien

Filecoder.Buhtrap benutzt einen legitimen IP-Logger Online-Dienst. Damit kann nachvollzogen werden, welche IP-Adressen eine Webseite aufrufen. Auf diese Weise versuchen die Cyberkriminellen die Übersicht über die Opfer ihrer Ransomware zu behalten. Die Malware-Entwickler realisieren das durch folgenden Code:

Abbildung 4: iplogger.org-Abfrage

Dateien, die nicht verschlüsselt werden sollen, werden anhand von drei Kriterien ausgewählt. Als erstes werden Dateien mit Folgenden Dateiendungen nicht codiert: .com, .cmd, .cpl, .dll, .exe, .hta, .lnk, .msc, .msi, .msp, .pif, .scr, .sys and .bat . Zum Zweiten sind alle Dateien ausgenommen, die unter nachfolgenden Datei-Pfaden zu finden sind:

Abbildung 5: Pfade, die von Verschlüsselung ausgenommen sind

Als drittes bleiben auch ganz bestimmte Dateien von der Verschlüsselung durch Buhtrap.Filecoder verschont. Darunter beispielsweise auch die Lösegeldforderung im .txt-Format, wie Abbildung 6 zeigt. Die Kombination der drei Ausschlusskriterien erlaubt noch eine minimale Benutzung des Computers.

Abbildung 6: Bestimmte Dateien, die von der Verschlüsselung ausgenommen sind

Verschlüsselungsschema

Nach dem Start der Malware, generiert sie einen 512-bit-RSA-Schlüsselpaar. Der private Exponent(d) und das Modul(n) werden dann mit einem vorgegebenen öffentlichen 2048-bit-Schlüssel codiert, mit Hilfe von Zlib komprimiert und abschließend Base64 verschlüsselt. Die dafür verantwortlichen Codezeilen sind in Abbildung 7 dargestellt.

Abbildung 7: Hex-Rays-Decompiler-Output der 512-bit-RSA-Schlüsselpaar-Erzeugungsroutine

Abbildung 7: Hex-Rays-Decompiler-Output der 512-bit-RSA-Schlüsselpaar-Erzeugungsroutine

Abbildung 8 zeigt ein Beispiel eines generierten privaten Schlüssels als Klartext. Dieser bildet das an die Lösegeldforderung angehängte Token.

Abbildung 8: Beispiel für einen generierten privaten Schlüssel

Der dazugehörige Öffentliche Schlüssel (Public Key) der Angreifer ist in Abbildung 9 dargestellt.

Abbildung 9: Hardcoded RSA Public Key

Die Dateien werden mit Hilfe von AES-128-CBC mit einem 256-bit-Key verschlüsselt. Für jede zu verschlüsselnde Datei wird ein neuer Schlüssel und ein neuer Initialisierungsvektor generiert. Die Schlüsselinformationen sind am Ende der verschlüsselten Datei angehängt.

Verschlüsselte Dateien weisen den folgenden Header auf:

Magic HeaderEncrypted SizeDecrypted sizeEncrypted data
0x56 0x1Auint64_tuint64_tencrypt('VEGA' + filedata[:0x5000])

Die Daten aus der Originaldatei mit dem magischen Wert „VEGA“ werden bis zu den ersten 0x5000 Bytes verschlüsselt. Alle Informationen, die zum Entschlüsseln der Datei erforderlich sind, werden mit dieser Struktur an die Datei angehängt:

File size markerSize of AES key blobAES key blobSize of RSA key blobRSA key blobOffset to File size marker
0x01 or 0x02uint32_tuint32_tuint32_t
  • File size marker enthält eine Flag, die angibt, ob die Datei größer als > 0x5000 Bytes ist.
  • AES key blob = ZlibCompress(RSAEncrypt(AES Key + IV, generiertes RSA Key Pair’s Public Key))
  • RSA key blob = ZlibCompress(RSAEncrypt(generierter RSA Private Key, Hardcoded RSA Public Key))

Weitere Analysen der nachstehenden Komponenten werden hier nach und nach ergänzt:

  • Win32/ClipBanker
  • Win32/RTM
  • Buhtrap downloader
  • Android/Spy.Banker
  • MSIL/ClipBanker.IH
  • Win32/ClipBanker

Fazit

Diese Malware-Kampagne ist ein gutes Beispiel dafür, wie legitime Advertising-Plattformen zur Verbreitung von Malware missbraucht werden. In unserem Fall waren zwar vorwiegend russische Unternehmen betroffen, wir können uns aber gut vorstellen, dass sich dieses Angriffsschema auch auf andere Werbe-Plattformen übertragen lässt. Um nicht auf die Tricks der Cyberkriminellen hereinzufallen, sollte man immer vertrauenswürdige Quellen zum Software- oder Template-Download benutzen.

Die Verwendung kostenloser Tools wie den ESET Online Scanner zum Scannen des Computers kann dazu beitragen, Malware zu finden und zu entfernen.

Indicators of Compromise (IoCs)

List of samples

SHA-1FilenameESET Detection Name
79B6EC126818A396BFF8AD438DB46EBF8D1715A1hashfish.exeWin32/ClipBanker.HM
11434828915749E591254BA9F52669ADE580E5A6hashfish.apk Android/Spy.Banker.KW
BC3EE8C27E72CCE9DB4E2F3901B96E32C8FC5088hashfish.exeWin32/ClipBanker.HM
CAF8ED9101D822B593F5AF8EDCC452DD9183EB1Dbtctradebot.exe Win32/ClipBanker.HM
B2A1A7B3D4A9AED983B39B28305DD19C8B0B2C20blanki.exeWin32/ClipBanker.HM
1783F715F41A32DAC0BAFBBDF70363EC24AC2E37blanki.exeWin32/Spy.Buhtrap.AE
291773D831E7DEE5D2E64B2D985DBD24371D2774blanki.exeWin32/Spy.Buhtrap.AE
4ADD8DCF883B1DFC50F9257302D19442F6639AE3masterblankov24.exeWin32/Spy.Buhtrap.AG
790ADB5AA4221D60590655050D0FBEB6AC634A20masterblankov24.exeWin32/Filecoder.Buhtrap.A
E72FAC43FF80BC0B7D39EEB545E6732DCBADBE22vseblanki24.exeWin32/Filecoder.Buhtrap.B
B45A6F02891AA4D7F80520C0A2777E1A5F527C4Dvseblanki24.exeWin32/Filecoder.Buhtrap.C
0C1665183FF1E4496F84E616EF377A5B88C0AB56vseblanki24.exeWin32/Filecoder.Buhtrap.C
81A89F5597693CA85D21CD440E5EEAF6DE3A22E6vseblanki24.exe Win32/Spy.RTM.W
FAF3F379EB7EB969880AB044003537C3FB92464Cvseblanki24.exeWin32/Spy.RTM.W
81C7A225F4CF9FE117B02B13A0A1112C8FB3F87Emaster-blankov24.exeWin32/Filecoder.Buhtrap.B
ED2BED87186B9E117576D861B5386447B83691F2blanki.exeWin32/Filecoder.Buhtrap.B
6C2676301A6630DA2A3A56ACC12D66E0D65BCF85blanki.exeWin32/Filecoder.Buhtrap.B
4B8A445C9F4A8EA24F42B9F80EA9A5E7E82725EFmir_vseh_blankov_24.exe Win32/Filecoder.Buhtrap.B
A390D13AFBEFD352D2351172301F672FCA2A73E1master_blankov_300.exe Win32/Filecoder.Buhtrap.B
1282711DED9DB140EBCED7B2872121EE18595C9Bsbornik_dokumentov.exeWin32/Filecoder.Buhtrap.B
372B4458D274A6085D3D52BA9BE4E0F3E84F9623sbornik_dokumentov.exe MSIL/ClipBanker.IH
9DE1F602195F6109464B1A7DEAA2913D2C803362nike.exeMSIL/ClipBanker.IH

List of servers

DomainIP AddressMalware family
sositehuypidarasi[.]com212.227.20[.]93, 87.106.18[.]146Android/Spy.Banker
ktosdelaetskrintotpidor[.]com87.106.18[.]146Android/Spy.Banker
94.100.18[.]67Win32/RTM
stat-counter-7-1[.]bit176.223.165[.]112Win32/RTM
stat-counter-7-2[.]bit95.211.214[.]14Win32/RTM
blanki-shabloni24[.]ru37.1.221[.]248, 5.45.71[.]239
Superjob[.]icu185.248.103[.]74Win32/Buhtrap
Medialeaks[.]icu185.248.103[.]74Win32/Buhtrap
icq.chatovod[.]info185.142.236[.]220Win32/Buhtrap
womens-history[.]me185.142.236[.]242Win32/Buhtrap

MITRE ATT&CK

Win32/Filecoder.Buhtrap

TacticIDNameDescription
ExecutionT1204User executionThe user must run the executable
Defense evasionT1116Code signingSome of the samples are signed
T1140Deobfuscate/Decode Files or InformationThe strings are encrypted using RC4
DiscoveryT1083File and Directory DiscoveryFiles and Directories are discovered for encryption
T1135Network Share DiscoveryThe network shares are discovered to find more files to encrypt

Win32/ClipBanker

TacticIDNameDescription
ExecutionT1204User executionThe user must run the executable
Defense evasionT1116Code signingSome of the samples are signed
T1140Deobfuscate/Decode Files or InformationThe cryptocurrency addresses are encrypted using RC4

MSIL/ClipBanker

TacticIDNameDescription
ExecutionT1204User executionThe user must run the executable
PersistenceT1004Winlogon Helper DLLPersistence is achieved by altering the Winlogon\shell key
Defense evasionT1116Code signingSome of the samples are signed
T1140Deobfuscate/Decode Files or InformationThe strings are encrypted using a static XOR key
T1158Hidden Files and DirectoriesThe executable used for persistence is in a newly created hidden directory
DiscoveryT1083File and Directory DiscoveryLook for specific folders to find wallet application storage
CollectionT1115Clipboard DataBitcoin WIF private key is stolen from the clipboard data
ExfiltrationT1020Automated ExfiltrationCrypto wallet software’s storage is automatically exfiltrated
T1041Exfiltration Over Command and Control ChannelExfiltrated data is sent to a server
Command and ControlT1102Web ServiceUses IP Logger legitimate service to exfiltrate Bitcoin WIF private keys
T1043Commonly Used PortCommunicates with a server using HTTPS
T1071Standard Application Layer ProtocolCommunicates with a server using HTTPS

Buhtrap downloader

TacticIDNameDescription
ExecutionT1204User executionThe user must run the executable
T1106Execution through APIExecutes additional malware through CreateProcess
Defense evasionT1116Code signingSome of the samples are signed
Credential AccessT1056Input CaptureBackdoor contains a keylogger
T1111Two-Factor Authentication InterceptionBackdoor actively searches for a connected smart card
CollectionT1115Clipboard DataBackdoor logs clipboard content
Exfiltration T1020Automated ExfiltrationLog files are automatically exfiltrated
T1022Data EncryptedData sent to C&C is encrypted
T1041Exfiltration Over Command and Control ChannelExfiltrated data is sent to a server
Command and ControlT1043Commonly Used PortCommunicates with a server using HTTPS
T1071Standard Application Layer ProtocolHTTPS is used
T1105Remote File CopyBackdoor can download and execute file from C&C server

Appendix A: Beispiel der Lösegeldforderung

Originale Version

Englische Version

Appendix B: Anwendungen, auf die Anubis abzielt

Hier können Sie mitdiskutieren