Überblick
Ende Oktober haben die Proofpoint-Forscher eine profitorientierte Angreifergruppe identifiziert und mit deren Beobachtung begonnen. Die Gruppe hat Zugang zu Banking-Trojanern und anderer Malware, darunter Dridex, Ursnif, Tinba und die auf Verkaufspunkte (POS) ausgelegte Malware AbaddonPOS mit ihrem Loader TinyLoader. Vor allem aber setzt die Gruppe auch eine zuvor undokumentierte JScript-Backdoor namens „Ostap“ sowie einen Delphi-Dropper ein, den wir „MrWhite“ getauft haben. MrWhite kann die angegriffenen Systeme auf das Vorhandensein laufender POS-Software untersuchen, bevor er weitere POS-Payloads ablädt. Durch diese zusätzliche Filterungsstufe kann die Gruppe sich auf relevante Ziele konzentrieren und eine Erkennung aufgrund der Verwendung bekannter Malware umgehen.
Bislang zielten diese Kampagnen unter anderem auf die Länder Deutschland, Österreich und Großbritannien ab. Obwohl die Zielsektoren variieren, konnten wir doch einen deutlichen Fokus auf die Finanzdienstleistungsbranche erkennen.
Verbreitungsmethode und Zielgruppe
In dieser Kampagne kommen E-Mails zum Einsatz, die als Anhang Microsoft Word-Dateien mit Makros enthalten. Die Volumen reichten von wenigen, relativ zielgerichteten E-Mails bis hin zu mehreren Tausend weiter gestreuten Mitteilungen. Unsere Analyse ergab, dass viele der bösartigen E-Mails an deutschsprachige Empfänger gerichtet und/oder in deutscher Sprache verfasst waren; andere wiederum waren auf Englisch verfasst. Beispielsweise wurde die folgende E-Mail mit einer Zahlungsaufforderung an deutschsprachige Empfänger verschickt.
Abbildung 1: Beispiel für eine auf Deutsch verfasste E-Mail, die am 24. November zur Verbreitung des Dokuments mit Makros verwendet wurde
Abbildung 2: Beispiel für eine auf Englisch verfasste E-Mail, die am 2. Dezember an Empfänger in Großbritannien verschickt wurde
Abbildung 3: Die mit den E-Mails zugestellten Dokumente waren in der Regel leer und enthielten keinen speziellen Köder
Analyse der Ostap-Backdoor
Das unkenntlich gemachte Makro im Dokument legt eine .jse-Datei (JScript) auf dem Desktop ab und führt diese aus. Danach wird eine gefälschte Fehlermeldung angezeigt, wie etwa: „Beim Öffnen dieses Dokuments ist ein Fehler aufgetreten.“ Das JScript ist eine Backdoor, die wir als „Ostap“ bezeichnen, weil sie mit einer PHP-Datei namens „ostap.php“ auf dem Command-and-Control-(C&C)-Server kommuniziert. Außerdem scheint „Ostap“ eine Anspielung auf den Vornamen der früher in der Sowjetunion aus Filmen und Romanen bekannten Figur des Betrügers „Ostap Bender“ zu sein [5]. Es folgt eine Liste von Funktionen aus einem frühen Muster der Backdoor, das wir analysiert haben:
- Ausführung und Kommunikation mit dem C&C-Server werden auch nach dem Schließen des Dokuments fortgesetzt
- Schreiben einer Kopie der Backdoor in das Start-Verzeichnis des aktuellen Benutzers, damit diese auch nach einem Neustart weiter besteht
- Meldung des Computernamens an den C&C-Server
- Empfang und Ausführung einer ausführbaren Payload vom C&C-Server
- Empfang und Ausführung einer Script-Datei (mit „certutil“) vom C&C-Server
Abbildung 4: Ostap-Kopie im Start-Verzeichnis. Das Script wird wie im Texteditor gezeigt verborgen
Abbildung 5: Hartkodierte Parameter umfassen einen Teil der C&C-URL (kenntlich gemachtes Script)
Abbildung 6: Das Script analysiert die Serverantwort, um zu bestimmen, ob es sich bei den Ausgabedaten um eine ausführbare Datei handelt (beginnt mit „MZ“)
Ostap lädt gewöhnlich eine ausführbare Payload vom C&C-Server herunter. In den folgenden Abschnitten beschreiben wir die Payloads noch eingehender; wir haben in jedem Fall verschiedene Banking-Trojaner sowie die Malware MrWhite beobachtet.
Banking-Trojaner
Der Angreifer tauschte die von Ostap heruntergeladenen Payloads täglich aus. Die folgenden Banking-Trojaner wurden heruntergeladen oder standen auf dem C&C-Server zum Download bereit:
- Dridex Botnet ID 3302 (Ziel: britische und französische Unternehmen)
- Ursnif ID 1068 (Ziel: Polen)
- Tinba (Ziel: deutsche und österreichische Unternehmen)
Analyse der POS-Payloads
MrWhite (so benannt wegen der Verwendung des User Agents „Mr.White“) ist eine weitere von Ostap heruntergeladene Payload. Sie ist in Delphi geschrieben. Ihr einziger Zweck ist der Vergleich der ausgeführten Prozessnamen auf dem infizierten Rechner mit einer hartkodierten Liste relevanter Prozessnamen (durch „|“ getrennt). Wird ein relevanter Prozess gefunden, sendet MrWhite die gesamte Prozessliste an den C&C-Server und legt TinyLoader ab [1,2]. Dazu unterbricht MrWhite zunächst seine Ausführung für 120 Sekunden, um anschließend die hartkodierte Prozessliste (Abb. 7) zu einem einzigen String zu kombinieren und diesen umzukehren.
Abbildung 7: Hartkodierte Liste mit POS-bezogenen Prozessnamen. Die Strings werden in umgekehrter Reihenfolge gespeichert
Danach wird der String „VSC OF/ tsilksat“ in „tasklist /FO CSV“ umgedreht und dieser Befehl wird ausgeführt. Der Befehl erstellt eine Liste laufender Prozesse in einem durch Komma getrennten Format. Anschließend durchsucht die Malware die Ausgabe des Befehls auf relevante Prozesse von der hartkodierten Liste. Wenn dabei einer oder mehrere Prozesse identifiziert werden, sendet die Malware die Ausgabe des Tasklistbefehls über HTTPS an ihren C&C-Server (Abb. 8). Wir haben zwei verschiedene MrWhite-C&C-Adressen beobachtet, die in unterschiedlicher, wenngleich simpler Weise unkenntlich gemacht wurden. Eine der C&C-Adressen (217[.]28[.]218[.]231) wurde umgekehrt gespeichert, wie die Prozessliste. Die andere C&C-Adresse wurde in zwei separaten Strings gespeichert: „boratorium[.]pl“ und „studiomarco-la“, die kombiniert die eigentliche C2 ergeben: studiomarco-laboratorium[.]pl .
Abbildung 8: MrWhite versendet die Tasklist an seinen C&C-Server. Man beachte den URL-Pfad „/GOLD/bender.php“, der ebenfalls ein Verweis auf „Ostap Bender“ zu sein scheint, den Namen eines in der Sowjetunion aus Filmen und Romanen bekannten Betrügers [5]
Drei der in dieser Untersuchung analysierten MrWhite-Muster legten direkt nach dem Versand der Tasklist an den C&C-Server einen eingebetteten TinyLoader ab und führten diesen aus (Abb. 9). Alle diese Muster nutzten exakt dieselbe Instanz von TinyLoader; allerdings jeweils mit einem anderen Dateinamen: „000.exe“, „001.exe“ und „5678987654.exe“.
Abbildung 9: MrWhite beim Abladen und Ausführen von TinyLoader nach dem Versand der Tasklist
Der abgelegte TinyLoader war in diesen drei Fällen identisch. Er kommunizierte an die C&C-Adresse 62[.]210[.]36[.]112:10500 (Abb. 10).
Abbildung 10: C&C-IP-Adresse des TinyLoader
Wir haben nicht beobachtet, dass der TinyLoader Befehle zum Herunterladen weiterer Payloads erhielt. In der Vergangenheit lud TinyLoader jedoch AbaddonPOS herunter. Nach der Durchsuchung früherer AbaddonPOS-Payloads haben wir eine neuere entdeckt, die an dieselbe IP wie der von MrWhite abgelegte TinyLoader kommuniziert (Abb. 11).
Abbildung 11: In AbaddonPOS-Muster verwendete IP-Adresse und Port
Die mit MrWhite eingesetzte AbaddonPOS ähnelt stark früheren von uns analysierten Mustern[1][2]. Sie sucht nach wie vor mithilfe eines speziellen Algorithmus nach Kreditkartendaten und exfiltriert diese dann an ihren C&C-Server. Das auf die exfiltrierten Daten angewandte Kodierungsverfahren ist noch das gleiche, aber in diesem Fall ist der zweite XOR-Schlüssel gleich wie die IP-Adresse (Abb. 12). Nach dem Entschlüsseln des kodierten Traffics werden die exfiltrierten Kreditkartendaten noch immer auf ähnliche Weise wie in früheren AbaddonPOS-Payloads übertragen (Abb. 13).
Abbildung 12: Zweiter XOR-Schlüssel ist gleich wie die IP-Adresse
Abbildung 13: Entschlüsselte exfiltrierte Daten aus AbaddonPOS
Zusammenfassung
Angreifer suchen ständig nach neuen Wegen, um Malware zu verbreiten und auf betrügerische Art und Weise hohe Geldsummen einzufordern. In diesem Fall verwendet eine neue Gruppe eine nicht dokumentierte Backdoor und einen neuen Loader, um bekannte Banking-Trojaner und POS-Malware zu verbreiten. Durch den Einsatz neuer Malware-Varianten, die beide Payloads abladen, die von bestehenden Abwehrsystemen häufig abgefangen werden, erschwert die Angreifergruppe ihre Entdeckung und kann so leichter die eigentlichen Payloads einschleusen. Alle diese Faktoren zusammen erhöhen den Druck auf Unternehmen, bösartige E-Mails abzufangen, bevor diese die beabsichtigten Empfänger erreichen, da E-Mail für die neuartige Malware dieser Kampagne den primären Vektor bildet.
Quellen
[2] https://www.proofpoint.com/us/threat-insight/post/abaddonpos-now-targeting-specific-pos-software
[5] https://en.wikipedia.org/wiki/Ostap_Bender
Indicators of Compromise (IOCs)
Dropper Document #1
SHA256: f89edff923d1d2daf6b2ab36595e873ed7d1cd52c2f6b66b590fa636c17dced2
MD5: 60d6bf2b1471ba0b2e63ddad240a16e8
Ostap #1
SHA256: fc205110d59461412766345ae83b86a34bad748a863e4ffeaaca9f743ec66ca9
MD5: 4661cfbf6e560c76e39e84e1dabf91b3
C2: hxxps://185[.]130[.]104[.]156:4433/PICASSO1/ostap.php?
Note: Dropped by "Dropper Document #1" into "<startup>\plugins.refresh.jse"
Dropper Document #2
SHA256: c173085b954ff1055fb859e6584a9e0bb3919740752351ad50706c0b7be37b51
MD5: 569748d6942ea9bbcfb72defc7ac37a0
Ostap #2
SHA256: 6dd4ce1a1eb29a226fc22443494dc3dc03a217d14a5065d4efb63766504a44ce
MD5: 62aaa2862986ed6f15357b7e7eedb65c
C2: hxxps://185[.]130[.]104[.]156:4433/DA_VINCI/ostap.php
Note: Dropped by "Dropper Document #2" into "<startup>\officeupdater.jse"
Tinba
SHA256: f9ae407ec793386d8306b6d06a8f53bcd489d04442cbffaa3e715622519e1b69
MD5: 95732f3e380e670719af2f78dbab3b79
C2: hxxp://communicationen[.]top/gg/index.php
Dridex 3302
SHA256: 00a4dc98870c37edd6d65619f1bed61326bc51fc735d8c4b74b3ea3f080e36bf
MD5: 28dcbb393fac147607e3b644a2dd3ec0
C2: 185[.]8[.]165[.]33:8343 (and others)
Ursnif
SHA256: 616bf33bd455296b9d514dd4b3aa90a2f8714ee08222c1383fa2b24a20383f30
MD5: 47f19afe59e40eb2882c3dc755a0b283
C2: 85[.]204[.]74[.]158
MrWhite #1
SHA256: cc4382a0602e67bca990e0be14202d87bbd7bebe3a14d7ec65fb91e5073248af
MD5: 4bc1811f05c6cac676dd43cec1f5ae31
C2: hxxps://studiomarco-laboratorium[.]pl/GOLD/bender.php
Process List:
CCS.exe|MICROS.exe|IberQS.exe|PaymentStandard.exe|RPRO8.exe|ISSPOS.exe|DSIConcordIP_Host.exe|DDCDSRV1.exe|ClientSitef.exe|Active-Charge.exe|Rock.exe|CRE2004.exe|OmniPOS.exe|EdcSvr.exe|AFR38.exe|POS_retail.exe|qbpos.exe|RWPOS.exe|QBPOSShell.exe|JPOS touchPOS.exe|bosrv.exe|PowerPay.exe|DSIHeartlandIP_Term.exe|POSINIT.exe|DSIHeartlandIP_TermSL.exe|CreditCardService.exe|DSIVitalTNSIP_Term.exe|PaymentServer.exe|RoomKey.exe|XChrgSrv.exe|Cashmate.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|CXSRetailPOS.exe|finchart.exe|Payment Gateway Swipe.exe|ElectronicLockbox.exe|CPS.POSExpressV3.exe|DSICardnetIP_Term.exe|Magtek Signature Capture.exe|Aldelo.EDC.AFRService.exe|XCharge.exe|Gym Assistant 20.exe|e7.exe|ebmain.exe|elba5.exe
TinyLoader: yes
MrWhite #2
SHA256: 435e3ee12bd73ae03a8037cb394c77b92d4f3d97d2b6a956d11564d925924c79
MD5: d80dc01b4a5269c797c7b3e0c66a4965
C2: hxxps://studiomarco-laboratorium[.]pl/GOLD/bender.php
Process List:
payment|trust|bank|CCS.exe|MICROS.exe|IberQS.exe|PaymentStandard.exe|RPRO8.exe|ISSPOS.exe|DSIConcordIP_Host.exe|DDCDSRV1.exe|ClientSitef.exe|Active-Charge.exe|Rock.exe|CRE2004.exe|OmniPOS.exe|EdcSvr.exe|AFR38.exe|POS_retail.exe|qbpos.exe|RWPOS.exe|QBPOSShell.exe|JPOS touchPOS.exe|bosrv.exe|PowerPay.exe|DSIHeartlandIP_Term.exe|POSINIT.exe|DSIHeartlandIP_TermSL.exe|CreditCardService.exe|DSIVitalTNSIP_Term.exe|PaymentServer.exe|RoomKey.exe|XChrgSrv.exe|Cashmate.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|CXSRetailPOS.exe|finchart.exe|Payment Gateway Swipe.exe|ElectronicLockbox.exe|CPS.POSExpressV3.exe|DSICardnetIP_Term.exe|Magtek Signature Capture.exe|Aldelo.EDC.AFRService.exe|XCharge.exe|Gym Assistant 20.exe|e7.exe|ebmain.exe|elba5.exe
TinyLoader: no
MrWhite #3
SHA256: 34bf0a10955e1f010b2369d5815a2dcab660f1d3bceea526aab83aad517b34ce
MD5: 2cc76c39999254ea88507937754d8c47
C2: hxxps://studiomarco-laboratorium[.]pl/GOLD/bender.php
Process List:
CCS.exe|MICROS.exe|IberQS.exe|PaymentStandard.exe|RPRO8.exe|ISSPOS.exe|DSIConcordIP_Host.exe|DDCDSRV1.exe|ClientSitef.exe|Active-Charge.exe|Rock.exe|CRE2004.exe|OmniPOS.exe|EdcSvr.exe|AFR38.exe|POS_retail.exe|qbpos.exe|RWPOS.exe|QBPOSShell.exe|JPOS touchPOS.exe|bosrv.exe|PowerPay.exe|DSIHeartlandIP_Term.exe|POSINIT.exe|DSIHeartlandIP_TermSL.exe|CreditCardService.exe|DSIVitalTNSIP_Term.exe|PaymentServer.exe|RoomKey.exe|XChrgSrv.exe|Cashmate.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|CXSRetailPOS.exe|finchart.exe|Payment Gateway Swipe.exe|ElectronicLockbox.exe|CPS.POSExpressV3.exe|DSICardnetIP_Term.exe|Magtek Signature Capture.exe|Aldelo.EDC.AFRService.exe|XCharge.exe|Gym Assistant 20.exe|e7.exe|ebmain.exe|elba5.exe
TinyLoader: yes
MrWhite #4
SHA256: 1b50af4ff0b300c680829f7b394a1db9126659a00f2088d0cd831970e31792a9
MD5: be9365524aae756edb5f811b9da567aa
C2: hxxps://217[.]28[.]218[.]231:4433/GOLD/bender.php
Process List:
|POS|CCS.exe|MICROS.exe|IberQS.exe|PaymentStandard.exe|RPRO8.exe|ISSPOS.exe|DSIConcordIP_Host.exe|DDCDSRV1.exe|ClientSitef.exe|Active-Charge.exe|Rock.exe|CRE2004.exe|OmniPOS.exe|EdcSvr.exe|AFR38.exe|POS_retail.exe|qbpos.exe|RWPOS.exe|QBPOSShell.exe|JPOS touchPOS.exe|bosrv.exe|PowerPay.exe|DSIHeartlandIP_Term.exe|POSINIT.exe|DSIHeartlandIP_TermSL.exe|CreditCardService.exe|DSIVitalTNSIP_Term.exe|PaymentServer.exe|RoomKey.exe|XChrgSrv.exe|Cashmate.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|FiveStarCreditCardIntegration.exe|PaymentBridge.exe|CashClub.exe|CXSRetailPOS.exe|finchart.exe|Payment Gateway Swipe.exe|ElectronicLockbox.exe|CPS.POSExpressV3.exe|DSICardnetIP_Term.exe|Magtek Signature Capture.exe|Aldelo.EDC.AFRService.exe|XCharge.exe|Gym Assistant 20.exe|e7.exe|ebmain.exe|elba5.exe
TinyLoader: yes
TinyLoader
SHA256: 6834b3daff4e76973d21177875d9c1380eabc56ef25d3bd3e36780a5c915fc0e
MD5: 688f2d1ef1fea91065110d96c0596ee9
C2: 62[.]210[.]36[.]112:10050
AbaddonPOS
SHA256: 631156fcd1e0804e915bfb933cbc275f7d3036d47e10d6328816e0b7693a2b05
MD5: ed06bf280c1694d4d41a23d6a5240b2a
C2: 62[.]210[.]36[.]112:27117
ET and ETPRO Suricata/Snort Coverage
2823657 ETPRO TROJAN Observed Malicious SSL Cert (JS/Ostap Downloader)
2020150 ET TROJAN TinyLoader.A Checkin x86
2020151 ET TROJAN TinyLoader.A Checkin x64
2020152 ET TROJAN TinyLoader.A Sending UUID and Processes x86
2020153 ET TROJAN TinyLoader.A Sending UUID and Processes x64
2020849 ET TROJAN TinyLoader.B1 Checkin x86
2020850 ET TROJAN TinyLoader.B1 Checkin x64
2020851 ET TROJAN TinyLoader.B2 Checkin no architecture
2020852 ET TROJAN TinyLoader.B1 Sending Processes
2022072 ET TROJAN TinyLoader.B2 Checkin x64
2812523 ETPRO TROJAN TinyLoader.C CnC Beacon x86
2812524 ETPRO TROJAN TinyLoader.C CnC Beacon x64
2814778 ETPRO TROJAN TinyLoader.D CnC Beacon x86
2814779 ETPRO TROJAN TinyLoader.D CnC Beacon x64
2814803 ETPRO TROJAN Win64.TinyLoader CnC Beacon
2814810 ETPRO TROJAN TinyDownloader Retrieving PE
2823172 ETPRO TROJAN Tinba Variant Checkin
2820263 ETPRO TROJAN Gozi ISFB CnC Checkin
2823044 ETPRO TROJAN W32.Dreambot Checkin
2021813 ET TROJAN Ursnif Variant CnC Beacon