Fast jeder von uns nutzt die Dienste von Online-Shops und läuft daher früher oder später Gefahr, Opfer von JavaScript-Sniffer zu werden – einem speziellen Code, den Angreifer in eine Website einschleusen, um Bankkartendaten, Adressen, Benutzernamen und Passwörter zu stehlen .
Fast 400 Nutzer der Website und der mobilen App von British Airways sind bereits von Schnüfflern betroffen, ebenso Besucher der Website des britischen Sportgiganten FILA und des US-Ticketvertriebs Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris – diese und viele andere Zahlungssysteme wurden infiziert.
Viktor Okorokov, Analyst der Threat Intelligence Group-IB, spricht darüber, wie Sniffer Website-Code infiltrieren und Zahlungsinformationen stehlen und welche CRMs sie angreifen.
"Versteckte Bedrohung"
So kam es, dass JS-Sniffer lange Zeit außerhalb der Sichtweite von Antiviren-Analysten blieben und Banken und Zahlungssysteme sie nicht als ernsthafte Bedrohung ansahen. Und absolut vergebens. Experten der Gruppe IB
Lassen Sie uns näher auf die vier Familien von Schnüfflern eingehen, die im Rahmen der Studie untersucht wurden.
ReactGet-Familie
Sniffer der ReactGet-Familie werden verwendet, um Bankkartendaten auf Online-Shopping-Seiten zu stehlen. Der Sniffer kann mit einer Vielzahl verschiedener Zahlungssysteme arbeiten, die auf der Website verwendet werden: Ein Parameterwert entspricht einem Zahlungssystem, und einzelne erkannte Versionen des Sniffers können zum Diebstahl von Anmeldeinformationen sowie zum Diebstahl von Bankkartendaten von der Website verwendet werden Zahlungsformen mehrerer Zahlungssysteme gleichzeitig, wie der sogenannte Universal-Sniffer. Es wurde festgestellt, dass Angreifer in einigen Fällen Phishing-Angriffe auf Online-Shop-Administratoren durchführen, um Zugang zum Verwaltungsbereich der Website zu erhalten.
Die Kampagne mit dieser Sniffer-Familie begann im Mai 2017. Websites mit CMS und den Plattformen Magento, Bigcommerce und Shopify wurden angegriffen.
Wie ReactGet in den Code eines Online-Shops eingebettet wird
Neben der „klassischen“ Skriptinjektion per Link nutzen die Sniffer-Operatoren der ReactGet-Familie eine besondere Technik: Sie prüfen mithilfe von JavaScript-Code, ob die aktuelle Adresse, an der sich der Nutzer befindet, bestimmte Kriterien erfüllt. Der Schadcode wird nur ausgeführt, wenn die aktuelle URL einen Teilstring enthält Kasse oder Ein-Schritt-Kaufabwicklung, eine Seite/, out/onepag, Kasse/eins, ckout/eins. Somit wird der Sniffer-Code genau in dem Moment ausgeführt, in dem der Benutzer seine Einkäufe bezahlt und Zahlungsinformationen in das Formular auf der Website eingibt.
Dieser Sniffer verwendet eine nicht standardmäßige Technik. Die Zahlungs- und persönlichen Daten des Opfers werden zusammen erfasst und verschlüsselt base64, und dann wird die resultierende Zeichenfolge als Parameter verwendet, um eine Anfrage an die bösartige Website zu senden. Am häufigsten imitiert der Pfad zum Gate beispielsweise eine JavaScript-Datei resp.js, data.js und so weiter, es werden aber auch Links zu Bilddateien verwendet, GIF и JPG. Die Besonderheit besteht darin, dass der Sniffer ein Bildobjekt mit einer Größe von 1 mal 1 Pixel erstellt und den zuvor erhaltenen Link als Parameter verwendet src Bilder. Das heißt, für den Benutzer sieht eine solche Anfrage im Datenverkehr wie eine Anfrage nach einem normalen Bild aus. Eine ähnliche Technik wurde in der ImageID-Sniffer-Familie verwendet. Darüber hinaus wird in vielen legitimen Online-Analyseskripten die 1x1-Pixel-Bildtechnik verwendet, die den Benutzer ebenfalls irreführen kann.
Versionsanalyse
Eine Analyse der aktiven Domänen, die von ReactGet-Sniffer-Operatoren verwendet werden, ergab viele verschiedene Versionen dieser Sniffer-Familie. Die Versionen unterscheiden sich in der Anwesenheit oder Abwesenheit von Verschleierung. Darüber hinaus ist jeder Sniffer für ein bestimmtes Zahlungssystem konzipiert, das Bankkartenzahlungen für Online-Shops verarbeitet. Nachdem sie den Wert des der Versionsnummer entsprechenden Parameters sortiert hatten, erhielten die Spezialisten von Group-IB eine vollständige Liste der verfügbaren Sniffer-Varianten und ermittelten anhand der Namen der Formularfelder, nach denen jeder Sniffer im Seitencode sucht, die Zahlungssysteme auf die der Schnüffler zielt.
Liste der Sniffer und ihrer entsprechenden Zahlungssysteme
Sniffer-URL | Zahlungssystem |
---|---|
|
Authorize.Net |
Kartenspeicher | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Rapid |
Authorize.Net | |
Adyen | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
Moneris | |
USAePay | |
PayPal | |
Salbei bezahlen | |
Verisign | |
PayPal | |
Stripe | |
|
Realex |
PayPal | |
LinkPoint | |
PayPal | |
PayPal | |
DataCash | |
|
PayPal |
|
Authorize.Net |
|
Authorize.Net |
Authorize.Net | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
Moneris | |
|
Salbei bezahlen |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
Authorize.Net |
|
Moneris |
|
Salbei bezahlen |
Salbei bezahlen | |
|
Chase Paymentech |
|
Authorize.Net |
|
Adyen |
PsiGate | |
CyberSource | |
ANZ eGate | |
Realex | |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
PayPal |
|
PayPal |
Realex | |
|
Salbei bezahlen |
|
PayPal |
|
Verisign |
Authorize.Net | |
|
Verisign |
Authorize.Net | |
|
ANZ eGate |
PayPal | |
CyberSource | |
|
Authorize.Net |
|
Salbei bezahlen |
Realex | |
|
CyberSource |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rapid |
|
Salbei bezahlen |
Salbei bezahlen | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
Erstes globales Datengateway |
Authorize.Net | |
Authorize.Net | |
Moneris | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Stripe | |
|
Authorize.Net |
eWAY Rapid | |
|
Salbei bezahlen |
Authorize.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
Salbei bezahlen |
|
Salbei bezahlen |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Authorize.Net |
eWAY Rapid | |
Salbei bezahlen | |
|
Authorize.Net |
Braintree | |
|
PayPal |
|
Salbei bezahlen |
Salbei bezahlen | |
|
Authorize.Net |
PayPal | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Salbei bezahlen |
Salbei bezahlen | |
|
Westpac PayWay |
|
Bezahlung |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Erstes globales Datengateway |
|
PsiGate |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
Salbei bezahlen | |
|
Verisign |
Moneris | |
PayPal | |
|
LinkPoint |
|
Westpac PayWay |
Authorize.Net | |
|
Moneris |
|
PayPal |
Adyen | |
PayPal | |
Authorize.Net | |
USAePay | |
EBizCharge | |
|
Authorize.Net |
|
Verisign |
Verisign | |
Authorize.Net | |
|
PayPal |
|
Moneris |
Authorize.Net | |
|
PayPal |
PayPal | |
Westpac PayWay | |
Authorize.Net | |
|
Authorize.Net |
Salbei bezahlen | |
|
Verisign |
|
Authorize.Net |
|
PayPal |
|
Bezahlung |
CyberSource | |
PayPal Payflow Pro | |
|
Authorize.Net |
|
Authorize.Net |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Salbei bezahlen | |
Authorize.Net | |
|
Stripe |
|
Authorize.Net |
Authorize.Net | |
Verisign | |
|
PayPal |
Authorize.Net | |
|
Authorize.Net |
Salbei bezahlen | |
|
Authorize.Net |
|
Authorize.Net |
|
PayPal |
|
Feuerstein |
|
PayPal |
Salbei bezahlen | |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
|
Stripe |
|
Fettes Zebra |
Salbei bezahlen | |
|
Authorize.Net |
Erstes globales Datengateway | |
|
Authorize.Net |
|
eWAY Rapid |
Adyen | |
|
PayPal |
QuickBooks-Händlerdienste | |
Verisign | |
|
Salbei bezahlen |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Salbei bezahlen | |
|
Authorize.Net |
|
eWAY Rapid |
Authorize.Net | |
|
ANZ eGate |
|
PayPal |
CyberSource | |
|
Authorize.Net |
Salbei bezahlen | |
|
Realex |
CyberSource | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rapid | |
|
Salbei bezahlen |
|
Salbei bezahlen |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
Erstes globales Datengateway |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
|
PayPal |
Passwort-Sniffer
Einer der Vorteile von JavaScript-Sniffern, die auf der Client-Seite einer Website arbeiten, ist ihre Vielseitigkeit: Auf einer Website eingebetteter Schadcode kann jede Art von Daten stehlen, sei es Zahlungsinformationen oder Login und Passwort eines Benutzerkontos. Spezialisten der Group-IB entdeckten eine Probe eines Sniffers der ReactGet-Familie, der darauf ausgelegt ist, E-Mail-Adressen und Passwörter von Website-Benutzern zu stehlen.
Schnittpunkt mit ImageID-Sniffer
Bei der Analyse eines der infizierten Shops wurde festgestellt, dass dessen Website zweimal infiziert war: Neben dem Schadcode des Sniffers der ReactGet-Familie wurde auch der Code des Sniffers der ImageID-Familie gefunden. Diese Überschneidung könnte ein Hinweis darauf sein, dass die Betreiber beider Sniffer ähnliche Techniken verwenden, um Schadcode einzuschleusen.
Universeller Schnüffler
Bei der Analyse eines der Domänennamen im Zusammenhang mit der ReactGet-Sniffer-Infrastruktur wurde festgestellt, dass derselbe Benutzer drei weitere Domänennamen registriert hatte. Diese drei Domänen imitierten die Domänen realer Websites und wurden zuvor zum Hosten von Sniffern verwendet. Bei der Analyse des Codes von drei legitimen Websites wurde ein unbekannter Sniffer gefunden und weitere Analysen ergaben, dass es sich hierbei um eine verbesserte Version des ReactGet-Sniffers handelt. Alle zuvor verfolgten Versionen dieser Sniffer-Familie waren auf ein einziges Zahlungssystem ausgerichtet, das heißt, für jedes Zahlungssystem war eine spezielle Version des Sniffers erforderlich. In diesem Fall wurde jedoch eine universelle Version des Sniffers entdeckt, die in der Lage ist, Informationen aus Formularen zu stehlen, die sich auf 15 verschiedene Zahlungssysteme und Module von E-Commerce-Websites für Online-Zahlungen beziehen.
Zu Beginn der Arbeit suchte der Schnüffler nach einfachen Formularfeldern, die die persönlichen Daten des Opfers enthielten: vollständiger Name, Anschrift, Telefonnummer.
Der Sniffer durchsuchte dann über 15 verschiedene Präfixe, die verschiedenen Zahlungssystemen und Modulen für Online-Zahlungen entsprachen.
Anschließend wurden die persönlichen Daten und Zahlungsinformationen des Opfers gesammelt und an eine vom Angreifer kontrollierte Website gesendet: In diesem speziellen Fall wurden zwei Versionen des ReactGet-Universal-Sniffers auf zwei verschiedenen gehackten Websites gefunden. Allerdings schickten beide Versionen die gestohlenen Daten an dieselbe gehackte Website. zoobashop.com.
Eine Analyse der Präfixe, die der Sniffer verwendet, um Felder mit den Zahlungsinformationen des Opfers zu finden, ergab, dass diese Sniffer-Stichprobe auf die folgenden Zahlungssysteme abzielte:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- Datenbargeld (MasterCard)
- Realex-Zahlungen
- PsiGate
- Heartland-Zahlungssysteme
Welche Tools werden verwendet, um Zahlungsinformationen zu stehlen?
Das erste Tool, das bei der Analyse der Infrastruktur der Angreifer entdeckt wurde, dient der Verschleierung bösartiger Skripte, die für den Diebstahl von Bankkarten verantwortlich sind. Auf einem der Hosts der Angreifer wurde ein Bash-Skript gefunden, das die CLI des Projekts verwendet.
Das zweite entdeckte Tool soll den Code generieren, der für das Laden des Haupt-Sniffers verantwortlich ist. Dieses Tool generiert einen JavaScript-Code, der prüft, ob sich der Benutzer auf der Checkout-Seite befindet, indem er die aktuelle Adresse des Benutzers nach den Zeichenfolgen durchsucht Kasse, cart und so weiter, und wenn das Ergebnis positiv ist, lädt der Code den Haupt-Sniffer vom Server des Eindringlings. Um böswillige Aktivitäten zu verbergen, werden alle Zeilen, einschließlich Testzeilen zur Ermittlung der Zahlungsseite, sowie ein Link zum Sniffer mit verschlüsselt base64.
Phishing-Angriffe
Bei der Analyse der Netzwerkinfrastruktur der Angreifer wurde festgestellt, dass die kriminelle Gruppe häufig Phishing nutzt, um Zugang zum Verwaltungsbereich des angegriffenen Online-Shops zu erhalten. Die Angreifer registrieren eine Domäne, die wie eine Shop-Domäne aussieht, und stellen darauf dann ein gefälschtes Magento-Administrator-Anmeldeformular bereit. Im Erfolgsfall erhalten die Angreifer Zugriff auf das Magento CMS-Admin-Panel, das ihnen die Möglichkeit gibt, Website-Komponenten zu bearbeiten und einen Sniffer zu implementieren, um Kreditkartendaten zu stehlen.
Infrastruktur
Домен | Datum der Entdeckung/Erscheinung |
---|---|
mediapack.info | 04.05.2017 |
adgetapi.com | 15.06.2017 |
simcounter.com | 14.08.2017 |
mageanalytics.com | 22.12.2017 |
maxstatics.com | 16.01.2018 |
Reactjsapi.com | 19.01.2018 |
mxcounter.com | 02.02.2018 |
apitstatus.com | 01.03.2018 |
orderracker.com | 20.04.2018 |
tagtracking.com | 25.06.2018 |
adsapigate.com | 12.07.2018 |
trusttracker.com | 15.07.2018 |
fbstatspartner.com | 02.10.2018 |
billgetstatus.com | 12.10.2018 |
www.aldenmlilhouse.com | 20.10.2018 |
balletbeautlful.com | 20.10.2018 |
bargalnjunkie.com | 20.10.2018 |
payselector.com | 21.10.2018 |
tagsmediaget.com | 02.11.2018 |
hs-zahlungen.com | 16.11.2018 |
ordercheckpays.com | 19.11.2018 |
geisseie.com | 24.11.2018 |
gtmproc.com | 29.11.2018 |
livegetpay.com | 18.12.2018 |
sydneysalonsupplies.com | 18.12.2018 |
newrelicnet.com | 19.12.2018 |
nr-public.com | 03.01.2019 |
cloudodesc.com | 04.01.2019 |
ajaxstatic.com | 11.01.2019 |
livecheckpay.com | 21.01.2019 |
asianfoodgracer.com | 25.01.2019 |
G-Analytics-Familie
Diese Familie von Schnüfflern wird eingesetzt, um Kundenkarten aus Online-Shops zu stehlen. Der allererste von der Gruppe verwendete Domainname wurde im April 2016 registriert, was möglicherweise auf den Beginn der Aktivitäten der Gruppe Mitte 2016 hindeutet.
In der aktuellen Kampagne verwendet die Gruppe Domänennamen, die reale Dienste wie Google Analytics und jQuery nachahmen, und maskiert Sniffer-Aktivitäten mit legitimen Skripten und legitim aussehenden Domänennamen. Websites, die unter dem CMS Magento laufen, wurden angegriffen.
Wie G-Analytics im Online-Shop-Code implementiert wird
Ein besonderes Merkmal dieser Familie ist der Einsatz verschiedener Methoden zum Diebstahl von Benutzerzahlungsinformationen. Zusätzlich zur klassischen JavaScript-Injektion in die Client-Seite der Website nutzte die kriminelle Gruppe auch die Technik, Code in die Server-Seite der Website einzuschleusen, nämlich PHP-Skripte, die Benutzereingaben verarbeiten. Diese Technik ist insofern gefährlich, als sie es Drittforschern erschwert, bösartigen Code zu erkennen. Die Spezialisten der Group-IB entdeckten eine Version des Sniffers, die im PHP-Code der Website eingebettet war und die Domain als Tor nutzte dittm.org.
Außerdem wurde eine frühe Version eines Sniffers entdeckt, der dieselbe Domain zum Sammeln gestohlener Daten nutzt. dittm.org, aber diese Version ist für die Installation auf der Client-Seite des Online-Shops gedacht.
Später änderte die Gruppe ihre Taktik und begann, der Verschleierung böswilliger Aktivitäten und der Tarnung mehr Aufmerksamkeit zu schenken.
Anfang 2017 begann die Gruppe mit der Nutzung der Domain jquery-js.comTarnung als CDN für jQuery: Leitet den Benutzer auf eine legitime Website um, wenn er eine bösartige Website aufruft jquery.com.
Und Mitte 2018 nahm die Gruppe einen Domainnamen an g-analytics.com und begann, die Aktivität des Sniffers als legitimen Google Analytics-Dienst zu tarnen.
Versionsanalyse
Bei der Analyse der Domänen, die zum Speichern des Sniffer-Codes verwendet werden, wurde festgestellt, dass die Website über eine große Anzahl von Versionen verfügt, die sich durch das Vorhandensein von Verschleierungen sowie durch das Vorhandensein oder Fehlen von nicht erreichbarem Code unterscheiden, der der Datei hinzugefügt wurde, um die Aufmerksamkeit abzulenken und bösartigen Code verbergen.
Insgesamt auf der Website jquery-js.com Es wurden sechs Versionen von Sniffer identifiziert. Diese Sniffer senden die gestohlenen Daten an eine Adresse, die sich auf derselben Website befindet wie der Sniffer selbst: hxxps://jquery-js[.]com/latest/jquery.min.js:
- hxxps://jquery-js[.]com/jquery.min.js
- hxxps://jquery-js[.]com/jquery.2.2.4.min.js
- hxxps://jquery-js[.]com/jquery.1.8.3.min.js
- hxxps://jquery-js[.]com/jquery.1.6.4.min.js
- hxxps://jquery-js[.]com/jquery.1.4.4.min.js
- hxxps://jquery-js[.]com/jquery.1.12.4.min.js
Spätere Domäne g-analytics.com, das von der Gruppe seit Mitte 2018 bei Angriffen eingesetzt wird, dient als Aufbewahrungsort für weitere Schnüffler. Insgesamt wurden 16 verschiedene Versionen des Sniffers entdeckt. In diesem Fall wurde das Tor zum Versenden der gestohlenen Daten als Link zu einem Bild des Formats getarnt GIF: hxxp://g-analytics[.]com/__utm.gif?v=1&_v=j68&a=98811130&t=pageview&_s=1&sd=24-bit&sr=2560×1440&vp=2145×371&je=0&_u=AACAAEAB~&jid=1841704724&gjid=877686936&cid
= 1283183910.1527732071:
- hxxps://g-analytics[.]com/libs/1.0.1/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.10/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.11/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.12/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.13/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.14/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.15/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.16/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.3/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.4/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.5/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.6/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.7/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.8/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.9/analytics.js
- hxxps://g-analytics[.]com/libs/analytics.js
Monetarisierung gestohlener Daten
Die kriminelle Gruppe monetarisiert die gestohlenen Daten, indem sie Karten über einen speziell eingerichteten Untergrundladen verkauft, der Dienstleistungen für Karteninhaber anbietet. Dies konnte durch eine Analyse der von den Angreifern genutzten Domains festgestellt werden google-analytics.cm wurde vom selben Benutzer registriert wie die Domain cardz.vc. Domain cardz.vc bezieht sich auf Cardsurfs (Flysurfs), ein Geschäft, das gestohlene Bankkarten verkauft, das während des AlphaBay-Untergrundmarktplatzes als Geschäft, das mit einem Sniffer gestohlene Bankkarten verkauft, an Popularität gewann.
Analyse der Domäne analytisch.is, das sich auf demselben Server befindet wie die Domänen, die von Sniffern zum Sammeln gestohlener Daten verwendet werden, haben Group-IB-Spezialisten eine Datei mit Cookie-Stealer-Protokollen gefunden, die offenbar später vom Entwickler aufgegeben wurde. Einer der Einträge im Protokoll enthielt eine Domäne iozoz.com, das zuvor in einem der im Jahr 2016 aktiven Sniffer verwendet wurde. Vermutlich wurde diese Domain zuvor von einem Angreifer genutzt, um mithilfe eines Sniffers gestohlene Karten einzusammeln. Diese Domain wurde für eine E-Mail-Adresse registriert [E-Mail geschützt] , das auch zur Registrierung von Domains verwendet wurde cardz.su и cardz.vcim Zusammenhang mit dem Kartenladen Cardsurfs.
Basierend auf den erhaltenen Daten kann davon ausgegangen werden, dass die G-Analytics-Sniffer-Familie und der unterirdische Kartenladen Cardsurfs von denselben Personen betrieben werden und der Laden dem Verkauf von mit einem Sniffer gestohlenen Bankkarten dient.
Infrastruktur
Домен | Datum der Entdeckung/Erscheinung |
---|---|
iozoz.com | 08.04.2016 |
dittm.org | 10.09.2016 |
jquery-js.com | 02.01.2017 |
g-analytics.com | 31.05.2018 |
google-analytics.is | 21.11.2018 |
analytisch.to | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analytisch.is | 28.12.2018 |
googlelc-analytics.cm | 17.01.2019 |
Familie Illum
Illum ist eine Familie von Sniffern, die zum Angriff auf Online-Shops eingesetzt werden, die Magento CMS verwenden. Neben der Einführung von Schadcode nutzen die Betreiber dieses Sniffers auch die Einführung vollwertiger gefälschter Zahlungsformulare, die Daten an von Angreifern kontrollierte Tore senden.
Bei der Analyse der Netzwerkinfrastruktur, die von den Betreibern dieses Sniffers verwendet wird, wurde eine große Anzahl bösartiger Skripte, Exploits, gefälschter Zahlungsformulare sowie eine Sammlung von Beispielen mit böswilligen Sniffer-Konkurrenten festgestellt. Aufgrund der Informationen über die Erscheinungsdaten der von der Gruppe genutzten Domainnamen kann davon ausgegangen werden, dass der Start der Kampagne auf Ende 2016 fällt.
Wie Illum im Code eines Online-Shops implementiert wird
Die ersten entdeckten Versionen des Sniffers wurden direkt in den Code der kompromittierten Site eingebettet. Die gestohlenen Daten wurden an gesendet cdn.illum[.]pw/records.php, das Tor wurde mit codiert base64.
Später wurde eine verpackte Version des Sniffers entdeckt, die ein anderes Tor nutzte – Records.nstatistics[.]com/records.php.
Согласно
Analyse der Angriffsstelle
Spezialisten der Gruppe IB entdeckten und analysierten die Website, die diese kriminelle Gruppe zur Aufbewahrung von Werkzeugen und zum Sammeln gestohlener Informationen nutzte.
Unter den auf dem Server des Angreifers gefundenen Tools befanden sich Skripte und Exploits für die Rechteausweitung im Linux-Betriebssystem: zum Beispiel das von Mike Czumak entwickelte Linux Privilege Escalation Check Script sowie ein Exploit für CVE-2009-1185.
Angreifer nutzten zwei Exploits direkt, um Online-Shops anzugreifen:
Außerdem wurden bei der Analyse des Servers verschiedene Muster von Sniffer-Programmen und gefälschten Zahlungsformularen gefunden, mit denen Angreifer Zahlungsinformationen von gehackten Websites sammeln. Wie Sie der folgenden Liste entnehmen können, wurden einige Skripte individuell für jede gehackte Website erstellt, während für bestimmte CMS und Zahlungsgateways eine universelle Lösung verwendet wurde. Zum Beispiel Skripte segapay_standard.js и segapay_onpage.js Entwickelt für die Einbettung auf Websites, die das Sage Pay-Zahlungsgateway verwenden.
Liste von Skripten für verschiedene Zahlungsgateways
Skript | Zahlungs-Gateways |
---|---|
|
//request.payrightnow[.]cf/checkpaid.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/checkpaid.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpaid.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
//request.payrightnow[.]cf/checkpaid.php | |
|
//request.payrightnow[.]cf/checkpaid.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//cdn.illum[.]pw/records.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpaid.php |
|
//cdn.illum[.]pw/records.php |
//request.payrightnow[.]cf/checkpaid.php | |
|
//cdn.illum[.]pw/records.php |
//payrightnow[.]cf/?zahlung= | |
|
//payrightnow[.]cf/?zahlung= |
|
//zahlungjetzt[.]tk/?zahlung= |
Gastgeber Zahlungjetzt[.]tk, als Tor in einem Drehbuch verwendet payment_forminsite.js, wurde entdeckt als BetreffAltName in mehreren Zertifikaten im Zusammenhang mit dem CloudFlare-Dienst. Darüber hinaus befand sich das Skript auf dem Host evil.js. Dem Namen des Skripts nach zu urteilen, könnte es im Rahmen der Ausnutzung von CVE-2016-4010 verwendet worden sein, wodurch es möglich ist, Schadcode in die Fußzeile einer Website einzuschleusen, auf der das Magento CMS läuft. Dieses Skript nutzte den Host als Tor request.requestnet[.]tk, wobei dasselbe Zertifikat wie der Host verwendet wird Zahlungjetzt[.]tk.
Gefälschte Zahlungsformulare
Die folgende Abbildung zeigt ein Beispiel für ein Formular zur Eingabe von Kartendaten. Dieses Formular wurde verwendet, um die Website eines Online-Shops zu infiltrieren und Kartendaten zu stehlen.
Die folgende Abbildung zeigt ein Beispiel eines gefälschten PayPal-Zahlungsformulars, das von Angreifern verwendet wurde, um Websites mit dieser Zahlungsmethode zu infiltrieren.
Infrastruktur
Домен | Datum der Entdeckung/Erscheinung |
---|---|
cdn.illum.pw | 27/11/2016 |
Records.nstatistics.com | 06/09/2018 |
request.payrightnow.cf | 25/05/2018 |
paymentnow.tk | 16/07/2017 |
payment-line.tk | 01/03/2018 |
paymentpal.cf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
CoffeeMokko-Familie
Die CoffeMokko-Familie von Schnüfflern, die Bankkarten von Online-Shop-Benutzern stehlen sollen, wird seit mindestens Mai 2017 eingesetzt. Vermutlich ist die 1 von RiskIQ-Experten beschriebene kriminelle Gruppe der Gruppe 2016 der Betreiber dieser Schnüfflerfamilie. Websites, auf denen CMS wie Magento, OpenCart, WordPress, osCommerce und Shopify laufen, wurden angegriffen.
Wie CoffeMokko in den Code eines Online-Shops eingebettet wird
Betreiber dieser Familie erstellen für jede Infektion eindeutige Sniffer: Die Sniffer-Datei befindet sich im Verzeichnis src oder js auf dem Server des Angreifers. Die Implementierung in den Site-Code erfolgt über einen direkten Link zum Sniffer.
Der Sniffer-Code codiert die Namen der Formularfelder fest, aus denen Sie Daten stehlen möchten. Der Sniffer prüft auch, ob sich der Benutzer auf der Checkout-Seite befindet, indem er die Liste der Schlüsselwörter mit der aktuellen Adresse des Benutzers vergleicht.
Einige entdeckte Versionen des Sniffers waren verschleiert und enthielten eine verschlüsselte Zeichenfolge, in der die Hauptressourcen gespeichert waren: Sie enthielt die Namen von Formularfeldern für verschiedene Zahlungssysteme sowie die Adresse des Gates, an das die gestohlenen Daten gesendet werden sollten.
Die gestohlenen Zahlungsinformationen wurden dabei an ein Skript auf dem Server der Angreifer gesendet. /savePayment/index.php oder /tr/index.php. Vermutlich wird dieses Skript verwendet, um Daten vom Gate an den Hauptserver zu senden, der die Daten aller Sniffer konsolidiert. Um die übermittelten Daten zu verbergen, werden sämtliche Zahlungsinformationen des Opfers verschlüsselt base64, und dann finden mehrere Zeichenersetzungen statt:
- Das Zeichen „e“ wird durch „:“ ersetzt.
- das Symbol „w“ wird durch „+“ ersetzt
- Zeichen „o“ wird durch „%“ ersetzt
- das Zeichen „d“ wird durch „#“ ersetzt
- Zeichen „a“ wird durch „-“ ersetzt
- das Symbol „7“ wird durch „^“ ersetzt
- Zeichen „h“ wird durch „_“ ersetzt
- das „T“-Symbol wird durch „@“ ersetzt
- das Zeichen „0“ wird durch „/“ ersetzt
- das Zeichen „Y“ wird durch „*“ ersetzt
Als Ergebnis von Zeichenersetzungen, die mit codiert sind base64 Daten können ohne Rücktransformation nicht dekodiert werden.
So sieht ein nicht verschleiertes Fragment des Sniffer-Codes aus:
Infrastrukturanalyse
In frühen Kampagnen registrierten die Angreifer Domänennamen, die denen legitimer Online-Shopping-Sites ähnelten. Ihre Domain kann sich durch ein Zeichen oder eine andere TLD von der legitimen unterscheiden. Zur Speicherung des Sniffer-Codes wurden registrierte Domains verwendet, deren Link in den Geschäftscode eingebettet war.
Diese Gruppe verwendete auch Domainnamen, die an beliebte jQuery-Plugins erinnern (slickjs[.]org für Websites, die das Plugin verwenden slick.js), Zahlungsgateways (sagecdn[.]org für Websites, die das Zahlungssystem Sage Pay verwenden).
Später begann die Gruppe, Domains zu erstellen, deren Name weder mit der Domain des Shops noch mit dem Thema des Shops zu tun hatte.
Jede Domäne entsprach der Site, auf der das Verzeichnis erstellt wurde /js oder / src. In diesem Verzeichnis wurden Sniffer-Skripte gespeichert: ein Sniffer für jede neue Infektion. Der Sniffer wurde über einen direkten Link in den Site-Code eingeschleust, aber in seltenen Fällen änderten Angreifer eine der Dateien der Site und fügten ihr Schadcode hinzu.
Code-Analyse
Erster Verschleierungsalgorithmus
In einigen Sniffer-Beispielen dieser Familie war der Code verschleiert und enthielt verschlüsselte Daten, die für die Funktion des Sniffers erforderlich waren: insbesondere die Gate-Adresse des Sniffers, eine Liste von Zahlungsformularfeldern und in einigen Fällen einen gefälschten Zahlungsformularcode. Im Code innerhalb der Funktion wurden die Ressourcen mit verschlüsselt XOR durch den Schlüssel, der als Argument an dieselbe Funktion übergeben wurde.
Durch Entschlüsseln der Zeichenfolge mit dem entsprechenden Schlüssel, der für jede Probe eindeutig ist, erhalten Sie eine Zeichenfolge, die alle Zeilen des Sniffer-Codes enthält, getrennt durch ein Trennzeichen.
Zweiter Verschleierungsalgorithmus
In späteren Beispielen dieser Sniffer-Familie wurde ein anderer Verschleierungsmechanismus verwendet: In diesem Fall wurden die Daten mithilfe eines selbst geschriebenen Algorithmus verschlüsselt. Als Argument an die Entschlüsselungsfunktion wurde eine Zeichenfolge mit verschlüsselten Daten übergeben, die für die Funktion des Sniffers erforderlich sind.
Mithilfe der Browserkonsole können Sie die verschlüsselten Daten entschlüsseln und ein Array mit den Sniffer-Ressourcen erhalten.
Link zu frühen MageCart-Angriffen
Bei einer Analyse einer der Domänen, die von der Gruppe als Tor zum Sammeln gestohlener Daten genutzt wurde, wurde festgestellt, dass diese Domäne eine Infrastruktur zum Diebstahl von Kreditkarten eingerichtet hatte, die mit der von Gruppe 1, einer der ersten Gruppen, verwendeten identisch war.
Auf dem Host der CoffeMokko-Sniffer-Familie wurden zwei Dateien gefunden:
- mage.js – Datei mit Sniffer-Code der Gruppe 1 mit Gate-Adresse js-cdn.link
- mag.php - PHP-Skript, das für das Sammeln der vom Sniffer gestohlenen Daten verantwortlich ist
Der Inhalt der Datei mage.js
Es wurde außerdem festgestellt, dass die frühesten Domänen, die von der Gruppe hinter der CoffeMokko-Sniffer-Familie verwendet wurden, am 17. Mai 2017 registriert wurden:
- link-js[.]link
- info-js[.]Link
- track-js[.]link
- map-js[.]Link
- smart-js[.]Link
Das Format dieser Domänennamen ist das gleiche wie die Domänennamen der Gruppe 1, die bei den Angriffen von 2016 verwendet wurden.
Aufgrund der ermittelten Fakten kann davon ausgegangen werden, dass eine Verbindung zwischen den CoffeMokko-Schnüfflern und der kriminellen Gruppe 1 besteht. Vermutlich haben sich die CoffeMokko-Betreiber Tools und Software ausgeliehen, um Karten von ihren Vorgängern zu stehlen. Es ist jedoch wahrscheinlicher, dass es sich bei der kriminellen Gruppe, die hinter dem Einsatz von CoffeMokko-Familienschnüfflern steht, um dieselben Personen handelt, die die Angriffe im Rahmen von Aktivitäten der Gruppe 1 verübt haben. Nach der Veröffentlichung des ersten Berichts über die Aktivitäten der kriminellen Gruppe wurden alle ihre Domain-Namen wurden gesperrt und die Tools eingehend untersucht und beschrieben. Die Gruppe war gezwungen, eine Pause einzulegen, ihre internen Tools zu verfeinern und den Sniffer-Code neu zu schreiben, um ihre Angriffe fortzusetzen und unbemerkt zu bleiben.
Infrastruktur
Домен | Datum der Entdeckung/Erscheinung |
---|---|
link-js.link | 17.05.2017 |
info-js.link | 17.05.2017 |
track-js.link | 17.05.2017 |
map-js.link | 17.05.2017 |
smart-js.link | 17.05.2017 |
adorebeauty.org | 03.09.2017 |
security-paid.su | 03.09.2017 |
braincdn.org | 04.09.2017 |
sagecdn.org | 04.09.2017 |
slickjs.org | 04.09.2017 |
Oakandfort.org | 10.09.2017 |
citywlnery.org | 15.09.2017 |
dobell.su | 04.10.2017 |
childrensplayclothing.org | 31.10.2017 |
jewsondirect.com | 05.11.2017 |
shop-rnib.org | 15.11.2017 |
closetlondon.org | 16.11.2017 |
misshaus.org | 28.11.2017 |
batterie-force.org | 01.12.2017 |
kik-vape.org | 01.12.2017 |
greatfurnituretradingco.org | 02.12.2017 |
etradesupply.org | 04.12.2017 |
replacemyremote.org | 04.12.2017 |
all-about-sneakers.org | 05.12.2017 |
mage-checkout.org | 05.12.2017 |
nililotan.org | 07.12.2017 |
lamoodbighat.net | 08.12.2017 |
walletgear.org | 10.12.2017 |
dahlie.org | 12.12.2017 |
davidsfootwear.org | 20.12.2017 |
blackriverimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parks.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
otocap.org | 15.01.2018 |
christohperward.org | 27.01.2018 |
coffetea.org | 31.01.2018 |
energiekaffee.org | 31.01.2018 |
energietea.org | 31.01.2018 |
teacoffe.net | 31.01.2018 |
adaptivecss.org | 01.03.2018 |
coffemokko.com | 01.03.2018 |
londontea.net | 01.03.2018 |
ukcoffe.com | 01.03.2018 |
labbe.biz | 20.03.2018 |
batterienart.com | 03.04.2018 |
btosports.net | 09.04.2018 |
chicksaddlery.net | 16.04.2018 |
paypaypay.org | 11.05.2018 |
ar500arnor.com | 26.05.2018 |
autorisiertcdn.com | 28.05.2018 |
slickmin.com | 28.05.2018 |
bannerbuzz.info | 03.06.2018 |
kandypens.net | 08.06.2018 |
mylrendyphone.com | 15.06.2018 |
freshchat.info | 01.07.2018 |
3lift.org | 02.07.2018 |
abtasty.net | 02.07.2018 |
mechat.info | 02.07.2018 |
zoplm.com | 02.07.2018 |
zapaljs.com | 02.09.2018 |
foodandcot.com | 15.09.2018 |
freshdepor.com | 15.09.2018 |
swappastore.com | 15.09.2018 |
verywellfitness.com | 15.09.2018 |
elegrina.com | 18.11.2018 |
majsurplus.com | 19.11.2018 |
top5value.com | 19.11.2018 |
Source: habr.com