Vier Javascript-Sniffer, die Sie in Online-Shops fangen



Fast jeder von uns nutzt die Dienste von Online-Shops, was bedeutet, dass er früher oder später Gefahr läuft, Opfer von JavaScript-Schnüfflern zu werden - ein spezieller Code, den Cyberkriminelle auf die Website injizieren, um Bankkarteninformationen, Adressen, Anmeldungen und Benutzerkennwörter zu stehlen.

Fast 400.000 Nutzer der Website und der mobilen Anwendung der British Airways Airline sowie Besucher der britischen Website des Sportgiganten FILA und des amerikanischen Ticketvertriebs Ticketmaster waren bereits von Schnüfflern betroffen.

Viktor Okorokov, Analyst der Threat Intelligence Group-IB, spricht darüber, wie Sniffer in Site-Code eingebettet sind und Rechnungsinformationen stehlen und welche CRMs sie angreifen.



Die Phantombedrohung


Es stellte sich heraus, dass JS-Sniffer lange Zeit nicht in Sichtweite von Antiviren-Analysten waren und Banken und Zahlungssysteme keine ernsthafte Bedrohung in ihnen sahen. Und völlig vergebens. Group-IB-Experten analysierten 2.440 infizierte Online-Shops, deren Besucher - etwa 1,5 Millionen Menschen pro Tag - einem Kompromissrisiko ausgesetzt waren. Unter den Opfern sind nicht nur Benutzer, sondern auch Online-Shops, Zahlungssysteme und Banken, die kompromittierte Karten ausgestellt haben.

Der Group-IB- Bericht war die erste Studie über den Darknet-Markt für Sniffer, ihre Infrastruktur und Möglichkeiten zur Monetarisierung, die ihren Entwicklern Millionen von Dollar einbrachte. Wir identifizierten 38 Familien von Schnüfflern, von denen den Forschern bisher nur 12 bekannt waren.

Lassen Sie uns im Detail auf die vier Familien von Schnüfflern eingehen, die während der Studie untersucht wurden.

ReactGet-Familie


Schnüffler der ReactGet-Familie werden verwendet, um Bankkartendaten auf Websites von Online-Shops zu stehlen. Ein Sniffer kann mit einer großen Anzahl verschiedener Zahlungssysteme arbeiten, die auf der Website verwendet werden: Ein Parameterwert entspricht einem Zahlungssystem, und einzelne erkannte Sniffer-Versionen können verwendet werden, um Anmeldeinformationen zu stehlen sowie Bankkartendaten aus Zahlungsformen mehrerer Zahlungssysteme gleichzeitig zu stehlen, z der sogenannte Universalschnüffler. Es wurde festgestellt, dass Angreifer in einigen Fällen Phishing-Angriffe auf Administratoren von Online-Shops ausführen, um Zugriff auf das Verwaltungsfenster der Website zu erhalten.

Die Kampagne mit dieser Familie von Sniffern begann im Mai 2017, Websites unter der Kontrolle von CMS und den Plattformen Magento, Bigcommerce, Shopify wurden angegriffen.

Wie ReactGet in Online-Shop-Code eingebettet ist


Zusätzlich zur „klassischen“ Implementierung eines Skripts als Referenz verwendet die ReactGet-Sniffer-Familie eine spezielle Technik: Mithilfe von JavaScript-Code wird überprüft, ob die aktuelle Adresse, an der sich der Benutzer befindet, bestimmte Kriterien erfüllt. Schädlicher Code wird nur gestartet, wenn die aktuelle URL den Teilstring- Checkout oder den Onestepcheckout , onepage / , out / onepag , checkout / one , ckout / one enthält . Somit wird der Sniffer-Code genau zu dem Zeitpunkt ausgeführt, zu dem der Benutzer die Einkäufe bezahlt und die Zahlungsinformationen in das Formular auf der Website eingibt.


Dieser Schnüffler verwendet eine nicht standardmäßige Technik. Die Zahlungs- und persönlichen Daten des Opfers werden zusammen gesammelt, mit base64 codiert. Anschließend wird die resultierende Zeichenfolge als Parameter verwendet, um eine Anfrage an die Website des Angreifers zu senden. Meistens simuliert der Pfad zum Gate eine JavaScript-Datei, z. B. resp.js , data.js usw., aber auch Links zu Bilddateien, GIFs und JPGs . Die Besonderheit besteht darin, dass der Schnüffler ein Bildobjekt mit einer Größe von 1 x 1 Pixel erstellt und den zuvor erhaltenen Link als src- Parameter des Bildes verwendet. Das heißt, für den Benutzer sieht eine solche Anforderung im Verkehr wie eine Anforderung für ein reguläres Bild aus. Eine ähnliche Technik wurde bei den Sniffern der ImageID-Familie verwendet. Darüber hinaus wird die Technik der Verwendung eines 1 x 1-Pixel-Bildes in vielen legitimen Online-Analyseskripten verwendet, was den Benutzer auch irreführen kann.


Versionsanalyse


Eine Analyse der aktiven Domänen, die von den ReactGet-Sniffer-Operatoren verwendet werden, ergab viele verschiedene Versionen der Sniffer-Familie. Versionen unterscheiden sich in der Anwesenheit oder Abwesenheit von Verschleierung, und außerdem ist jeder Sniffer für ein bestimmtes Zahlungssystem ausgelegt, das Bankkartenzahlungen für Online-Shops verarbeitet. Nachdem die Group-IB-Spezialisten den Wert des Parameters entsprechend der Versionsnummer sortiert hatten, erhielten sie eine vollständige Liste der verfügbaren Sniffer-Variationen und bestimmten anhand der Namen der Formularfelder, nach denen jeder Sniffer im Seitencode sucht, die Zahlungssysteme, auf die der Sniffer abzielt.

Liste der Schnüffler und ihrer entsprechenden Zahlungssysteme
Sniffer URL
Zahlungssystem
reactjsapi.com/react.jsAuthorize.Net
ajaxstatic.com/api.js?v=2.1.1Karten
ajaxstatic.com/api.js?v=2.1.2Authorize.Net
ajaxstatic.com/api.js?v=2.1.3Authorize.Net
ajaxstatic.com/api.js?v=2.1.4eWAY Rapid
ajaxstatic.com/api.js?v=2.1.5Authorize.Net
ajaxstatic.com/api.js?v=2.1.6Adyen
ajaxstatic.com/api.js?v=2.1.7USAePay
ajaxstatic.com/api.js?v=2.1.9Authorize.Net
apitstatus.com/api.js?v=2.1.1USAePay
apitstatus.com/api.js?v=2.1.2Authorize.Net
apitstatus.com/api.js?v=2.1.3Moneris
apitstatus.com/api.js?v=2.1.5USAePay
apitstatus.com/api.js?v=2.1.6Paypal
apitstatus.com/api.js?v=2.1.7Salbei bezahlen
apitstatus.com/api.js?v=2.1.8Verisign
apitstatus.com/api.js?v=2.1.9Paypal
apitstatus.com/api.js?v=2.3.0Streifen
apitstatus.com/api.js?v=3.0.2Realex
apitstatus.com/api.js?v=3.0.3Paypal
apitstatus.com/api.js?v=3.0.4Verbindungspunkt
apitstatus.com/api.js?v=3.0.5Paypal
apitstatus.com/api.js?v=3.0.7Paypal
apitstatus.com/api.js?v=3.0.8Datacash
apitstatus.com/api.js?v=3.0.9Paypal
asianfoodgracer.com/footer.jsAuthorize.Net
billgetstatus.com/api.js?v=1.2Authorize.Net
billgetstatus.com/api.js?v=1.3Authorize.Net
billgetstatus.com/api.js?v=1.4Authorize.Net
billgetstatus.com/api.js?v=1.5Verisign
billgetstatus.com/api.js?v=1.6Authorize.Net
billgetstatus.com/api.js?v=1.7Moneris
billgetstatus.com/api.js?v=1.8Salbei bezahlen
billgetstatus.com/api.js?v=2.0USAePay
billgetstatus.com/react.jsAuthorize.Net
cloudodesc.com/gtm.js?v=1.2Authorize.Net
cloudodesc.com/gtm.js?v=1.3ANZ eGate
cloudodesc.com/gtm.js?v=2.3Authorize.Net
cloudodesc.com/gtm.js?v=2.4Moneris
cloudodesc.com/gtm.js?v=2.6
Salbei bezahlen
cloudodesc.com/gtm.js?v=2.7Salbei bezahlen
cloudodesc.com/gtm.js?v=2.8Chase Paymentech
cloudodesc.com/gtm.js?v=2.9Authorize.Net
cloudodesc.com/gtm.js?v=2.91Adyen
cloudodesc.com/gtm.js?v=2.92Psigate
cloudodesc.com/gtm.js?v=2.93Cyber-Quelle
cloudodesc.com/gtm.js?v=2.95ANZ eGate
cloudodesc.com/gtm.js?v=2.97Realex
geisseie.com/gs.jsUSAePay
gtmproc.com/age.jsAuthorize.Net
gtmproc.com/gtm.js?v=1.2Authorize.Net
gtmproc.com/gtm.js?v=1.3ANZ eGate
gtmproc.com/gtm.js?v=1.5Paypal
gtmproc.com/gtm.js?v=1.6Paypal
gtmproc.com/gtm.js?v=1.7Realex
livecheckpay.com/api.js?v=2.0Salbei bezahlen
livecheckpay.com/api.js?v=2.1Paypal
livecheckpay.com/api.js?v=2.2Verisign
livecheckpay.com/api.js?v=2.3Authorize.Net
livecheckpay.com/api.js?v=2.4Verisign
livecheckpay.com/react.jsAuthorize.Net
livegetpay.com/pay.js?v=2.1.2ANZ eGate
livegetpay.com/pay.js?v=2.1.3Paypal
livegetpay.com/pay.js?v=2.1.5Cyber-Quelle
livegetpay.com/pay.js?v=2.1.7Authorize.Net
livegetpay.com/pay.js?v=2.1.8Salbei bezahlen
livegetpay.com/pay.js?v=2.1.9Realex
livegetpay.com/pay.js?v=2.2.0Cyber-Quelle
livegetpay.com/pay.js?v=2.2.1Paypal
livegetpay.com/pay.js?v=2.2.2Paypal
livegetpay.com/pay.js?v=2.2.3Paypal
livegetpay.com/pay.js?v=2.2.4Verisign
livegetpay.com/pay.js?v=2.2.5eWAY Rapid
livegetpay.com/pay.js?v=2.2.7Salbei bezahlen
livegetpay.com/pay.js?v=2.2.8Salbei bezahlen
livegetpay.com/pay.js?v=2.2.9Verisign
livegetpay.com/pay.js?v=2.3.0Authorize.Net
livegetpay.com/pay.js?v=2.3.1Authorize.Net
livegetpay.com/pay.js?v=2.3.2Erstes globales Daten-Gateway
livegetpay.com/pay.js?v=2.3.3Authorize.Net
livegetpay.com/pay.js?v=2.3.4Authorize.Net
livegetpay.com/pay.js?v=2.3.5Moneris
livegetpay.com/pay.js?v=2.3.6Authorize.Net
livegetpay.com/pay.js?v=2.3.8Paypal
livegetpay.com/pay.js?v=2.4.0Verisign
maxstatics.com/site.jsUSAePay
mediapack.info/track.js?d=funlove.comUSAePay
mediapack.info/track.js?d=qbedding.comAuthorize.Net
mediapack.info/track.js?d=vseyewear.comVerisign
mxcounter.com/c.js?v=1.2Paypal
mxcounter.com/c.js?v=1.3Authorize.Net
mxcounter.com/c.js?v=1.4Streifen
mxcounter.com/c.js?v=1.6Authorize.Net
mxcounter.com/c.js?v=1.7eWAY Rapid
mxcounter.com/c.js?v=1.8Salbei bezahlen
mxcounter.com/c.js?v=2.0Authorize.Net
mxcounter.com/c.js?v=2.1Braintree
mxcounter.com/c.js?v=2.10Braintree
mxcounter.com/c.js?v=2.2Paypal
mxcounter.com/c.js?v=2.3Salbei bezahlen
mxcounter.com/c.js?v=2.31Salbei bezahlen
mxcounter.com/c.js?v=2.32Authorize.Net
mxcounter.com/c.js?v=2.33Paypal
mxcounter.com/c.js?v=2.34Authorize.Net
mxcounter.com/c.js?v=2.35Verisign
mxcounter.com/click.js?v=1.2Paypal
mxcounter.com/click.js?v=1.3Authorize.Net
mxcounter.com/click.js?v=1.4Streifen
mxcounter.com/click.js?v=1.6Authorize.Net
mxcounter.com/click.js?v=1.7eWAY Rapid
mxcounter.com/click.js?v=1.8Salbei bezahlen
mxcounter.com/click.js?v=2.0Authorize.Net
mxcounter.com/click.js?v=2.1Braintree
mxcounter.com/click.js?v=2.2Paypal
mxcounter.com/click.js?v=2.3Salbei bezahlen
mxcounter.com/click.js?v=2.31Salbei bezahlen
mxcounter.com/click.js?v=2.32Authorize.Net
mxcounter.com/click.js?v=2.33Paypal
mxcounter.com/click.js?v=2.34Authorize.Net
mxcounter.com/click.js?v=2.35Verisign
mxcounter.com/cnt.jsAuthorize.Net
mxcounter.com/j.jsAuthorize.Net
newrelicnet.com/api.js?v=1.2Authorize.Net
newrelicnet.com/api.js?v=1.4Authorize.Net
newrelicnet.com/api.js?v=1.8Salbei bezahlen
newrelicnet.com/api.js?v=4.5Salbei bezahlen
newrelicnet.com/api.js?v=4.6Westpac Payway
nr-public.com/api.js?v=2.0Payfort
nr-public.com/api.js?v=2.1Paypal
nr-public.com/api.js?v=2.2Authorize.Net
nr-public.com/api.js?v=2.3Streifen
nr-public.com/api.js?v=2.4Erstes globales Daten-Gateway
nr-public.com/api.js?v=2.5Psigate
nr-public.com/api.js?v=2.6Authorize.Net
nr-public.com/api.js?v=2.7Authorize.Net
nr-public.com/api.js?v=2.8Moneris
nr-public.com/api.js?v=2.9Authorize.Net
nr-public.com/api.js?v=3.1Salbei bezahlen
nr-public.com/api.js?v=3.2Verisign
nr-public.com/api.js?v=3.3Moneris
nr-public.com/api.js?v=3.5Paypal
nr-public.com/api.js?v=3.6Verbindungspunkt
nr-public.com/api.js?v=3.7Westpac Payway
nr-public.com/api.js?v=3.8Authorize.Net
nr-public.com/api.js?v=4.0Moneris
nr-public.com/api.js?v=4.0.2Paypal
nr-public.com/api.js?v=4.0.3Adyen
nr-public.com/api.js?v=4.0.4Paypal
nr-public.com/api.js?v=4.0.5Authorize.Net
nr-public.com/api.js?v=4.0.6USAePay
nr-public.com/api.js?v=4.0.7EBizCharge
nr-public.com/api.js?v=4.0.8Authorize.Net
nr-public.com/api.js?v=4.0.9Verisign
nr-public.com/api.js?v=4.1.2Verisign
ordercheckpays.com/api.js?v=2.11Authorize.Net
ordercheckpays.com/api.js?v=2.12Paypal
ordercheckpays.com/api.js?v=2.13Moneris
ordercheckpays.com/api.js?v=2.14Authorize.Net
ordercheckpays.com/api.js?v=2.15Paypal
ordercheckpays.com/api.js?v=2.16Paypal
ordercheckpays.com/api.js?v=2.17Westpac Payway
ordercheckpays.com/api.js?v=2.18Authorize.Net
ordercheckpays.com/api.js?v=2.19Authorize.Net
ordercheckpays.com/api.js?v=2.21Salbei bezahlen
ordercheckpays.com/api.js?v=2.22Verisign
ordercheckpays.com/api.js?v=2.23Authorize.Net
ordercheckpays.com/api.js?v=2.24Paypal
ordercheckpays.com/api.js?v=2.25Payfort
ordercheckpays.com/api.js?v=2.29Cyber-Quelle
ordercheckpays.com/api.js?v=2.4PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7Authorize.Net
ordercheckpays.com/api.js?v=2.8Authorize.Net
ordercheckpays.com/api.js?v=2.9Verisign
ordercheckpays.com/api.js?v=3.1Authorize.Net
ordercheckpays.com/api.js?v=3.2Authorize.Net
ordercheckpays.com/api.js?v=3.3Salbei bezahlen
ordercheckpays.com/api.js?v=3.4Authorize.Net
ordercheckpays.com/api.js?v=3.5Streifen
ordercheckpays.com/api.js?v=3.6Authorize.Net
ordercheckpays.com/api.js?v=3.7Authorize.Net
ordercheckpays.com/api.js?v=3.8Verisign
ordercheckpays.com/api.js?v=3.9Paypal
ordercheckpays.com/api.js?v=4.0Authorize.Net
ordercheckpays.com/api.js?v=4.1Authorize.Net
ordercheckpays.com/api.js?v=4.2Salbei bezahlen
ordercheckpays.com/api.js?v=4.3Authorize.Net
reactjsapi.com/api.js?v=0.1.0Authorize.Net
reactjsapi.com/api.js?v=0.1.1Paypal
reactjsapi.com/api.js?v=4.1.2Feuerstein
reactjsapi.com/api.js?v=4.1.4Paypal
reactjsapi.com/api.js?v=4.1.5Salbei bezahlen
reactjsapi.com/api.js?v=4.1.51Verisign
reactjsapi.com/api.js?v=4.1.6Authorize.Net
reactjsapi.com/api.js?v=4.1.7Authorize.Net
reactjsapi.com/api.js?v=4.1.8Streifen
reactjsapi.com/api.js?v=4.1.9Fettes Zebra
reactjsapi.com/api.js?v=4.2.0Salbei bezahlen
reactjsapi.com/api.js?v=4.2.1Authorize.Net
reactjsapi.com/api.js?v=4.2.2Erstes globales Daten-Gateway
reactjsapi.com/api.js?v=4.2.3Authorize.Net
reactjsapi.com/api.js?v=4.2.4eWAY Rapid
reactjsapi.com/api.js?v=4.2.5Adyen
reactjsapi.com/api.js?v=4.2.7Paypal
reactjsapi.com/api.js?v=4.2.8QuickBooks Merchant Services
reactjsapi.com/api.js?v=4.2.9Verisign
reactjsapi.com/api.js?v=4.2.91Salbei bezahlen
reactjsapi.com/api.js?v=4.2.92Verisign
reactjsapi.com/api.js?v=4.2.94Authorize.Net
reactjsapi.com/api.js?v=4.3.97Authorize.Net
reactjsapi.com/api.js?v=4.5Salbei bezahlen
reactjsapi.com/react.jsAuthorize.Net
sydneysalonsupplies.com/gtm.jseWAY Rapid
tagsmediaget.com/react.jsAuthorize.Net
tagstracking.com/tag.js?v=2.1.2ANZ eGate
tagstracking.com/tag.js?v=2.1.3Paypal
tagstracking.com/tag.js?v=2.1.5Cyber-Quelle
tagstracking.com/tag.js?v=2.1.7Authorize.Net
tagstracking.com/tag.js?v=2.1.8Salbei bezahlen
tagstracking.com/tag.js?v=2.1.9Realex
tagstracking.com/tag.js?v=2.2.0Cyber-Quelle
tagstracking.com/tag.js?v=2.2.1Paypal
tagstracking.com/tag.js?v=2.2.2Paypal
tagstracking.com/tag.js?v=2.2.3Paypal
tagstracking.com/tag.js?v=2.2.4Verisign
tagstracking.com/tag.js?v=2.2.5eWAY Rapid
tagstracking.com/tag.js?v=2.2.7Salbei bezahlen
tagstracking.com/tag.js?v=2.2.8Salbei bezahlen
tagstracking.com/tag.js?v=2.2.9
Verisign
tagstracking.com/tag.js?v=2.3.0Authorize.Net
tagstracking.com/tag.js?v=2.3.1Authorize.Net
tagstracking.com/tag.js?v=2.3.2Erstes globales Daten-Gateway
tagstracking.com/tag.js?v=2.3.3Authorize.Net
tagstracking.com/tag.js?v=2.3.4Authorize.Net
tagstracking.com/tag.js?v=2.3.5Moneris
tagstracking.com/tag.js?v=2.3.6Authorize.Net
tagstracking.com/tag.js?v=2.3.8Paypal


Passwort-Schnüffler


Einer der Vorteile von JavaScript-Sniffern, die auf der Clientseite der Website arbeiten, ist ihre Vielseitigkeit: Auf der Website eingebetteter Schadcode kann jede Art von Daten stehlen, unabhängig davon, ob es sich um Zahlungsdaten oder den Benutzernamen und das Kennwort eines Benutzerkontos handelt. Group-IB-Spezialisten entdeckten eine Stichprobe eines Sniffers der ReactGet-Familie, der E-Mail-Adressen und Passwörter von Site-Benutzern stehlen soll.


Schnittpunkt mit ImageID Sniffer


Eine Analyse eines der infizierten Geschäfte ergab, dass seine Website zweimal infiziert war: Zusätzlich zum Schadcode der ReactGet-Sniffer-Familie wurde ein Sniffer-Code der ImageID-Familie erkannt. Dieser Schnittpunkt kann darauf hinweisen, dass die Bediener, die hinter der Verwendung beider Sniffer stehen, ähnliche Techniken verwenden, um schädlichen Code einzufügen.


Universalschnüffler


Eine Analyse eines der Domainnamen im Zusammenhang mit der ReactGet-Sniffer-Infrastruktur ergab, dass derselbe Benutzer drei weitere Domainnamen registriert hatte. Diese drei Domänen simulierten Domänen von realen Standorten und wurden zuvor zum Hosten von Sniffern verwendet. Bei der Analyse des Codes von drei legitimen Sites wurde ein unbekannter Sniffer entdeckt, und eine weitere Analyse ergab, dass dies eine verbesserte Version des ReactGet-Sniffers ist. Alle zuvor erfassten Versionen von Sniffern dieser Familie waren auf ein einziges Zahlungssystem ausgerichtet, dh für jedes Zahlungssystem war eine spezielle Version des Sniffers erforderlich. In diesem Fall wurde jedoch eine universelle Version des Sniffers entdeckt, die Informationen aus Formularen stehlen kann, 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 den Basisfeldern des Formulars, das die persönlichen Informationen des Opfers enthielt: vollständiger Name, physische Adresse, Telefonnummer.


Dann suchte der Schnüffler nach mehr als 15 verschiedenen Präfixen, die verschiedenen Zahlungssystemen und Modulen für Online-Zahlungen entsprechen.


Außerdem wurden die persönlichen Daten und Zahlungsinformationen des Opfers zusammen gesammelt und an die vom Angreifer kontrollierte Site gesendet. In diesem speziellen Fall wurden zwei Versionen des ReactGet Universal Sniffer entdeckt, die sich auf zwei verschiedenen gehackten Sites befinden. Beide Versionen haben die gestohlenen Daten jedoch an dieselbe gehackte Site zoobashop.com gesendet .


Eine Analyse der Präfixe, die der Sniffer verwendet, um nach Feldern zu suchen, die die Zahlungsinformationen des Opfers enthalten, ermöglichte es uns festzustellen, dass dieses Sniffer-Muster auf die folgenden Zahlungssysteme abzielte:

  • Authorize.Net
  • Verisign
  • Erste Daten
  • USAePay
  • Streifen
  • Paypal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Realex-Zahlungen
  • Psigate
  • Heartland-Zahlungssysteme

Mit welchen Tools werden Rechnungsinformationen gestohlen?


Das erste Tool, das bei der Analyse der Infrastruktur des Angreifers entdeckt wurde, wird verwendet, um schädliche Skripte zu verschleiern, die für den Diebstahl von Bankkarten verantwortlich sind. Auf einem der angreifenden Hosts wurde ein Bash-Skript mithilfe der Javascript-Obfuscator- CLI entdeckt, um die Verschleierung von Sniffer-Code zu automatisieren.


Das zweite erkannte Tool dient zum Generieren von Code, der für das Laden des Haupt-Sniffers verantwortlich ist. Dieses Tool generiert einen JavaScript-Code, der überprüft, ob sich der Benutzer auf der Zahlungsseite befindet, indem die aktuelle Adresse des Benutzers nach den Zeilen Checkout , Warenkorb usw. durchsucht wird. Wenn das Ergebnis positiv ist, lädt der Code den Haupt-Sniffer vom Server des Angreifers. Um böswillige Aktivitäten zu verbergen, werden alle Zeilen, einschließlich Testzeilen zur Ermittlung der Zahlungsseite sowie ein Link zum Sniffer, mit base64 codiert.


Phishing-Angriffe


Bei der Analyse der Netzwerkinfrastruktur der Angreifer wurde festgestellt, dass eine kriminelle Gruppe häufig Phishing verwendet, um Zugriff auf das Verwaltungsfenster des Ziel-Online-Shops zu erhalten. Angreifer registrieren eine Domain, die der Domain eines Geschäfts optisch ähnlich sieht, und stellen dann ein gefälschtes Anmeldeformular für das Magento-Admin-Panel bereit. Bei Erfolg erhalten Angreifer Zugriff auf das CMS Magento-Administrationsfenster, über das sie Site-Komponenten bearbeiten und einen Sniffer implementieren können, um Kreditkarteninformationen zu stehlen.


Die Infrastruktur
Domain
Entdeckungs- / Erscheinungsdatum
mediapack.info05/04/2017
adsgetapi.com15.06.2017
simcounter.com14.08.2017
mageanalytics.com22.12.2017
maxstatics.com16.01.2008
reactjsapi.com19.01.2008
mxcounter.com02/02/2018
apitstatus.com03/01/2018
orderracker.com20.04.2008
tagstracking.com25.06.2008
adsapigate.com07/12/2018
trust-tracker.com15.07.2008
fbstatspartner.com10/02/2018
billgetstatus.com10/12/2018
aldenmlilhouse.com20.10.2008
balletbeautlful.com20.10.2008
bargalnjunkie.com20.10.2008
payselector.com21.10.2018
tagsmediaget.com11/02/2018
hs-payments.com16.11.2008
ordercheckpays.com19.11.2008
geisseie.com24.11.2008
gtmproc.com29.11.2008
livegetpay.com18.12.2008
sydneysalonsupplies.com18.12.2008
newrelicnet.com
19.12.2008
nr-public.com01/03/2019
cloudodesc.com01/04/2019
ajaxstatic.com01/11/2019
livecheckpay.com21.01.2019
asianfoodgracer.com25.01.2019


G-Analytics-Familie


Diese Familie von Schnüfflern wird verwendet, um Karten von Kunden von Online-Shops zu stehlen. Der allererste von der Gruppe verwendete Domainname wurde im April 2016 registriert, was auf den Beginn der Aktivität der Gruppe Mitte 2016 hinweisen kann.

In der aktuellen Kampagne verwendet die Gruppe Domain-Namen, die reale Dienste wie Google Analytics und jQuery imitieren und die Sniffer-Aktivitäten mit legitimen Skripten maskieren und legitimen Domain-Namen ähneln. Der Angriff wurde auf Websites ausgeführt, auf denen CMS Magento ausgeführt wird.

Wie G-Analytics in Online-Shop-Code eingebettet ist


Ein charakteristisches Merkmal dieser Familie ist die Verwendung verschiedener Methoden zum Diebstahl von Benutzerzahlungsinformationen. Zusätzlich zur klassischen Implementierung von JavaScript-Code im Client-Teil der Site verwendete die kriminelle Gruppe auch die Technik des Einbettens von Code in den Server-Teil der Site, nämlich PHP-Skripte, die die vom Benutzer eingegebenen Daten verarbeiten. Diese Technik ist insofern gefährlich, als sie es Forschern von Drittanbietern erschwert, bösartigen Code zu erkennen. Group-IB-Spezialisten entdeckten eine Version eines Snifters , der in den PHP-Code der Site eingebettet ist und die Domain dittm.org als Gate verwendet.


Es wurde auch eine frühere Version des Sniffers entdeckt, die dieselbe dittm.org- Domain verwendet, um gestohlene Daten zu sammeln. Diese Version ist jedoch bereits für die Installation auf der Clientseite des Online-Shops vorgesehen.


Später änderte die Gruppe ihre Taktik und begann, der Verschleierung böswilliger Aktivitäten und Verkleidungen mehr Aufmerksamkeit zu widmen.

Anfang 2017 begann die Gruppe, die als CDN für jQuery getarnte Domain jquery-js.com zu verwenden: Wenn sie zu einer Site böswilliger Benutzer umleitet, leitet sie zur legitimen Site jquery.com weiter .

Mitte 2018 übernahm die Gruppe den Domainnamen g-analytics.com und begann, die Aktivitäten des Sniffers unter dem legitimen Google Analytics-Dienst zu maskieren.



Versionsanalyse


Bei der Analyse der Domänen, die zum Speichern von Sniffer-Code verwendet werden, wurde festgestellt, dass die Site eine große Anzahl von Versionen aufweist, die sich hinsichtlich des Vorhandenseins von Verschleierung sowie des Vorhandenseins oder Nichtvorhandenseins von nicht erreichbarem Code, der der Datei hinzugefügt wurde, unterscheiden, um die Aufmerksamkeit abzulenken und den schädlichen Code zu verbergen.

Insgesamt wurden sechs Versionen von Schnüfflern auf jquery-js.com identifiziert. Diese Sniffer senden die gestohlenen Daten an die Adresse, die sich auf derselben Site 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

Die spätere Domain g-analytics.com , die von der Gruppe seit Mitte 2018 bei Angriffen verwendet wird, dient als Repository für eine größere Anzahl von Sniffern. Insgesamt wurden 16 verschiedene Sniffer-Versionen entdeckt. In diesem Fall wurde das Gate zum Senden der gestohlenen Daten als Link zu einem GIF- Bild getarnt : hxxp: // g-analysis [.] Com / __ utm.gif? = 2145 x 371 & je = 0 & _u = AACAAEAB ~ & jid = 1841704724 & gjid = 877686936 & cid
= 1283183910.1527732071 :

  • hxxps: // g-analyse [.] com / libs / 1.0.1 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.10 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.11 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.12 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.13 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.14 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.15 / analyse.js
  • hxxps: // g-analyse [.] com / libs / 1.0.16 / analyse.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



, , . , , , google-analytics.cm , cardz.vc . cardz.vc Cardsurfs (Flysurfs), AlphaBay , .


analytic.is , , , , Group-IB , Cookie-, , , . iozoz.com , , 2016 . , . email- kts241@gmail.com , cardz.su cardz.vc , Cardsurfs.

, , G-Analytics Cardsurfs , , .

Die Infrastruktur
Domain
/
iozoz.com08.04.2016
dittm.org10.09.2016
jquery-js.com01/02/2017
g-analytics.com31.05.2008
google-analytics.is21.11.2018
analytic.to12/04/2018
google-analytics.to12/06/2018
google-analytics.cm28.12.2018
analytic.is28.12.2018
googlc-analytics.cm17.01.2019


Illum


Illum — , -, CMS Magento. , , .

, , , , , . , , , 2016 .

Illum -


. cdn.illum[.]pw/records.php , base64 .


, — records.nstatistics[.]com/records.php .


Willem de Groot, , , CSU.



Group-IB , .


, , Linux: , Linux Privilege Escalation Check Script, (Mike Czumak), CVE-2009-1185.

- : core_config_data CVE-2016-4010, RCE CMS Magento, -.


, . , , CMS . , segapay_standart.js segapay_onpage.js , Sage Pay.

sr.illum [.]pw/mjs_special/visiondirect.co.uk.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/topdierenshop.nl.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/tiendalenovo.es.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/pro-bolt.com.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/plae.co.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/ottolenghi.co.uk.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/oldtimecandy.com.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/mylook.ee.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs_special/luluandsky.com.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/julep.com.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs_special/gymcompany.es.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/grotekadoshop.nl.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/fushi.co.uk.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/fareastflora.com.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/compuindia.com.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs/segapay_standart.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs/segapay_onpage.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs/replace_standart.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs/all_inputs.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs/add_inputs_standart.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/magento/payment_standart.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/magento/payment_redirect.js//payrightnow[.]cf/?payment=
sr.illum [.]pw/magento/payment_redcrypt.js//payrightnow[.]cf/?payment=
sr.illum [.]pw/magento/payment_forminsite.js//paymentnow[.]tk/?payment=


paymentnow[.]tk , payment_forminsite.js , subjectAltName , CloudFlare. , evil.js . , CVE-2016-4010, footer CMS Magento. request.requestnet[.]tk , , paymentnow[.]tk .



. - .


— PayPal, .

Die Infrastruktur
Domain
/
cdn.illum.pw27/11/2016
records.nstatistics.com06/09/2018
request.payrightnow.cf25/05/2018
paymentnow.tk16/07/2017
payment-line.tk01/03/2018
paymentpal.cf04/09/2017
requestnet.tk28/06/2017


CoffeMokko


CoffeMokko, -, 2017 . , Group 1, RiskIQ 2016 . CMS, Magento, OpenCart, WordPress, osCommerce, Shopify.

CoffeMokko -


: src js . .


, . , , .


, : , , .


/savePayment/index.php /tr/index.php . , , . base64 , :

  • «e» «:»
  • «w» «+»
  • «o» «%»
  • «d» «#»
  • «a» «-»
  • «7» «^»
  • «h» «_»
  • «T» «@»
  • «0» «/»
  • «Y» «*»

base64 , .

, :




, -. TLD. , .

, jQuery ( slickjs[.]org , slick.js ), ( sagecdn[.]org , Sage Pay).

, , .


, /js /src . : . , .





In einigen erkannten Sniffer-Beispielen dieser Familie war der Code verschleiert und enthielt die verschlüsselten Daten, die für das Funktionieren des Sniffers erforderlich sind: insbesondere die Adresse des Sniffer-Gates, eine Liste von Zahlungsformularfeldern und in einigen Fällen einen gefälschten Zahlungsformularcode. Im Code innerhalb der Funktion wurden die Ressourcen mit XOR unter Verwendung des Schlüssels verschlüsselt, der vom Argument derselben Funktion übergeben wurde.


Nachdem Sie die Zeichenfolge mit dem entsprechenden Schlüssel entschlüsselt haben, der für jedes Beispiel eindeutig ist, können Sie eine Zeichenfolge mit allen Zeilen aus dem Sniffer-Code über das Trennzeichen erhalten.


Zweiter Verschleierungsalgorithmus


In späteren Sniffer-Beispielen dieser Familie wurde ein anderer Verschleierungsmechanismus verwendet: In diesem Fall wurden die Daten mit einem selbstgeschriebenen Algorithmus verschlüsselt. Eine Zeichenfolge mit den verschlüsselten Daten, die für die Funktion des Sniffers erforderlich sind, wurde als Argument an die Entschlüsselungsfunktion übergeben.


Über die Browserkonsole können Sie die verschlüsselten Daten entschlüsseln und ein Array mit Sniffer-Ressourcen abrufen.


Verknüpfung mit frühen MageCart-Angriffen


Eine Analyse einer der Domänen, die von der Gruppe als Gate zum Sammeln gestohlener Daten verwendet wurden, ergab, dass die Domäne über eine Infrastruktur für Kreditkartendiebstahl verfügt, die mit der von Gruppe 1, einer der ersten von RiskIQ-Spezialisten, entdeckten Gruppe, identisch ist.

Auf dem Host der CoffeMokko-Sniffer-Familie wurden zwei Dateien gefunden:

  • mage.js - Datei mit Sniffer-Code der Gruppe 1 mit der Gate-Adresse js-cdn.link
  • mag.php - PHP-Skript, das für das Sammeln von gestohlenen Daten verantwortlich ist

Inhalt der Mage.js-Datei

Es wurde auch festgestellt, dass die frühesten Domains, 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 entspricht den Domänennamen der Gruppe 1, die bei den Angriffen von 2016 verwendet wurden.

Aufgrund der festgestellten Tatsachen kann davon ausgegangen werden, dass eine Verbindung zwischen den CoffeMokko-Sniffer-Betreibern und der kriminellen Gruppe der Gruppe 1 besteht. Vermutlich könnten CoffeMokko-Betreiber Tools und Software für Kartendiebstahl von ihren Vorgängern ausleihen. Es ist jedoch wahrscheinlicher, dass die kriminelle Gruppe, die hinter der Verwendung der CoffeMokko-Familie von Schnüfflern steht, dieselben Personen sind, die die Angriffe im Rahmen der Aktivitäten der Gruppe 1 ausgeführt haben. Nach der Veröffentlichung des ersten Berichts über die Aktivitäten der kriminellen Gruppe wurden alle ihre Domain-Namen blockiert und die Tools wurden detailliert untersucht und beschrieben werden. 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.

Die Infrastruktur
DomainEntdeckungs- / Erscheinungsdatum
link-js.link17.05.2017
info-js.link17.05.2017
track-js.link17.05.2017
map-js.link17.05.2017
smart-js.link17.05.2017
adorebeauty.org09/03/2017
security-payment.su09/03/2017
braincdn.org09/04/2017
sagecdn.org09/04/2017
slickjs.org09/04/2017
oakandfort.org09/10/2017
citywlnery.org15.09.2017
dobell.su10/04/2017
childsplayclothing.org31.10.2017
jewsondirect.com11/05/2017
shop-rnib.org15.11.2017
schranklondon.org16.11.2017
misshaus.org28.11.2017
Batterie-force.org01.12.2017
kik-vape.org01.12.2017
greatfurnituretradingco.org12/02/2017
etradesupply.org12/04/2017
replaceemyremote.org12/04/2017
all-about-sneakers.org12/05/2017
mage-checkout.org12/05/2017
nililotan.org12/07/2017
lamoodbighats.net12/08/2017
walletgear.org10.12.2017
dahlie.org12/12/2017
davidsfootwear.org20.12.2017
blackriverimaging.org23.12.2017
exrpesso.org01/02/2018
parks.su01/09/2018
pmtonline.su01/12/2018
ottocap.org15.01.2008
christohperward.org27.01.2008
coffetea.org31.01.2008
energycoffe.org31.01.2008
energytea.org31.01.2008
teacoffe.net31.01.2008
adaptivecss.org03/01/2018
coffemokko.com03/01/2018
londontea.net03/01/2018
ukcoffe.com03/01/2018
labbe.biz20.03.2008
batterynart.com04/03/2018
btosports.net04/09/2018
chicksaddlery.net16.04.2008
paypaypay.org05/11/2018
ar500arnor.com26.05.2008
authorizecdn.com28.05.2008
slickmin.com28.05.2008
bannerbuzz.info06/03/2018
kandypens.net06/08/2018
mylrendyphone.com15.06.2008
freshchat.info07/01/2018
3lift.org07/02/2018
abtasty.net07/02/2018
mechat.info07/02/2018
zoplm.com07/02/2018
zapaljs.com09/02/2018
foodandcot.com15.09.2008
freshdepor.com15.09.2008
swappastore.com15.09.2008
verywellfitnesse.com15.09.2008
elegrina.com18.11.2008
majsurplus.com19.11.2008
top5value.com19.11.2008

Source: https://habr.com/ru/post/de451792/


All Articles