Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Pratiquement chacun d'entre nous utilise les services de magasins en ligne, ce qui signifie qu'il risque tôt ou tard de devenir la victime de sniffeurs JavaScript — un code spécial que les malfaiteurs intègrent sur un site pour voler des données de cartes bancaires, des adresses, des identifiants et des mots de passe des utilisateurs.

Près de 400 000 utilisateurs du site et de l'application mobile de la compagnie aérienne British Airways, ainsi que les visiteurs du site britannique du géant sportif FILA et du distributeur américain de billets Ticketmaster, ont déjà souffert des sniffeurs. PayPal, Chase Paymenttech, USAePay, Moneris — ces systèmes de paiement et bien d'autres ont été compromis.

L'analyste de Threat Intelligence Group-IB, Viktor Okorokov, explique comment les sniffeurs s'intègrent dans le code d'un site et volent des informations de paiement, ainsi que quels CRM ils ciblent.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

« Menace cachée »

Il se trouve que pendant longtemps, les sniffeurs JS sont restés en dehors du radar des analystes antivirus, et les banques et systèmes de paiement ne les considéraient pas comme une menace sérieuse. Et c'est complètement en vain. Les experts de Group-IB ont analysé 2440 magasins en ligne contaminés, dont les visiteurs — environ 1,5 million de personnes par jour — étaient exposés à un risque de compromission. Parmi les victimes se trouvaient non seulement des utilisateurs, mais aussi des magasins en ligne, des systèmes de paiement et des banques ayant émis des cartes compromises.

Rapport Group-IB a été la première étude sur le marché darknet des sniffeurs, leur infrastructure et les méthodes de monétisation rapportant des millions de dollars à leurs créateurs. Nous avons identifié 38 familles de sniffeurs, dont seulement 12 étaient connues des chercheurs auparavant.

Concentrons-nous en détail sur quatre familles de sniffeurs étudiées durant l'enquête.

Famille ReactGet

Les sniffeurs de la famille ReactGet sont utilisés pour voler des données de cartes bancaires sur des sites de commerce en ligne. Un sniffer peut fonctionner avec de nombreux systèmes de paiement différents utilisés sur le site : une valeur de paramètre correspond à un système de paiement, et certaines versions détectées du sniffer peuvent être utilisées pour voler des identifiants, ainsi que pour dérober des données de cartes bancaires à partir des formulaires de paiement de plusieurs systèmes de paiement, ce que l'on appelle un sniffer universel. Il a été établi que dans certains cas, les attaquants mènent des attaques de phishing contre les administrateurs des magasins en ligne dans le but d'accéder au panneau d'administration du site.

La campagne utilisant cette famille de sniffeurs a débuté en mai 2017, et les sites de gestion CMS et les plateformes Magento, Bigcommerce, Shopify ont été attaqués.

Comment ReactGet s'intègre dans le code d'un magasin en ligne

En plus de l'injection « classique » du script via un lien, les opérateurs des sniffeurs de la famille ReactGet utilisent une technique particulière : grâce à un code JavaScript, ils vérifient si l'adresse actuelle à laquelle l'utilisateur se trouve respecte certains critères. Le code malveillant ne sera exécuté que si la sous-chaîne correspond à l'URL actuelle checkout ou onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Ainsi, le code du sniffer s'exécutera au moment où l'utilisateur passera à la page de paiement et saisira les informations de paiement dans le formulaire sur le site.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Ce sniffer utilise une technique non standard. Les données de paiement et personnelles de la victime sont collectées ensemble, encodées à l'aide de base64, puis la chaîne obtenue est utilisée comme paramètre pour envoyer une requête au site des malfaiteurs. Le plus souvent, le chemin vers le portail imite un fichier JavaScript, par exemple resp.js, data.js et ainsi de suite, mais des liens vers des fichiers images sont également utilisés, GIF et JPG. La particularité est que le sniffer crée un objet image de taille 1 par 1 pixel et utilise le lien obtenu précédemment comme paramètre. src images. Cela signifie qu'une telle requête pour l'utilisateur apparaîtra comme une demande d'image ordinaire. Une technique similaire a été utilisée dans les sniffeurs de la famille ImageID. De plus, la technique utilisant une image de 1 sur 1 pixel est appliquée dans de nombreux scripts d'analyse en ligne légitimes, ce qui peut également induire l'utilisateur en erreur.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Analyse des versions

L'analyse des domaines actifs utilisés par les opérateurs de sniffeurs ReactGet a permis de découvrir de nombreuses versions différentes de ces sniffeurs. Les versions diffèrent par la présence ou l'absence d'obfuscation, et de plus, chaque sniffeur est destiné à un système de paiement spécifique qui traite les paiements par carte bancaire pour les magasins en ligne. En parcourant la valeur du paramètre correspondant au numéro de version, les spécialistes de Group-IB ont obtenu une liste complète des variations de sniffeurs disponibles, et en examinant les noms des champs de formulaire que chaque sniffeur recherche dans le code de la page, ils ont déterminé les systèmes de paiement ciblés par le sniffeur.

Liste des sniffeurs et des systèmes de paiement correspondants

URL du sniffeurSystème de paiement
reactjsapi.com/react.js Authorize.Net
ajaxstatic.com/api.js?v=2.1.1 Cardsave
ajaxstatic.com/api.js?v=2.1.2 Authorize.Net
ajaxstatic.com/api.js?v=2.1.3 Authorize.Net
ajaxstatic.com/api.js?v=2.1.4eWAY Rapid
ajaxstatic.com/api.js?v=2.1.5 Authorize.Net
ajaxstatic.com/api.js?v=2.1.6 Adyen
ajaxstatic.com/api.js?v=2.1.7USAePay
ajaxstatic.com/api.js?v=2.1.9 Authorize.Net
apitstatus.com/api.js?v=2.1.1 USAePay
apitstatus.com/api.js?v=2.1.2 Authorize.Net
apitstatus.com/api.js?v=2.1.3Moneris
apitstatus.com/api.js?v=2.1.5 USAePay
apitstatus.com/api.js?v=2.1.6PayPal
apitstatus.com/api.js?v=2.1.7Sage Pay
apitstatus.com/api.js?v=2.1.8Verisign
apitstatus.com/api.js?v=2.1.9PayPal
apitstatus.com/api.js?v=2.3.0Stripe
apitstatus.com/api.js?v=3.0.2Realex
apitstatus.com/api.js?v=3.0.3PayPal
apitstatus.com/api.js?v=3.0.4 LinkPoint
apitstatus.com/api.js?v=3.0.5 PayPal
apitstatus.com/api.js?v=3.0.7 PayPal
apitstatus.com/api.js?v=3.0.8DataCash
apitstatus.com/api.js?v=3.0.9 PayPal
asianfoodgracer.com/footer.js Authorize.Net
billgetstatus.com/api.js?v=1.2 Authorize.Net
billgetstatus.com/api.js?v=1.3Authorize.Net
billgetstatus.com/api.js?v=1.4 Authorize.Net
billgetstatus.com/api.js?v=1.5Verisign
billgetstatus.com/api.js?v=1.6 Authorize.Net
billgetstatus.com/api.js?v=1.7 Moneris
billgetstatus.com/api.js?v=1.8 Sage Pay
billgetstatus.com/api.js?v=2.0 USAePay
billgetstatus.com/react.jsAuthorize.Net
cloudodesc.com/gtm.js?v=1.2 Authorize.Net
cloudodesc.com/gtm.js?v=1.3ANZ eGate
cloudodesc.com/gtm.js?v=2.3Authorize.Net
cloudodesc.com/gtm.js?v=2.4 Moneris
cloudodesc.com/gtm.js?v=2.6 Sage Pay
cloudodesc.com/gtm.js?v=2.7 Sage Pay
cloudodesc.com/gtm.js?v=2.8 Chase Paymentech
cloudodesc.com/gtm.js?v=2.9Authorize.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93CyberSource
cloudodesc.com/gtm.js?v=2.95 ANZ eGate
cloudodesc.com/gtm.js?v=2.97Realex
geisseie.com/gs.js USAePay
gtmproc.com/age.jsAuthorize.Net
gtmproc.com/gtm.js?v=1.2 Authorize.Net
gtmproc.com/gtm.js?v=1.3 ANZ eGate
gtmproc.com/gtm.js?v=1.5PayPal
gtmproc.com/gtm.js?v=1.6 PayPal
gtmproc.com/gtm.js?v=1.7 Realex
livecheckpay.com/api.js?v=2.0 Sage Pay
livecheckpay.com/api.js?v=2.1 PayPal
livecheckpay.com/api.js?v=2.2 Verisign
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.2 ANZ eGate
livegetpay.com/pay.js?v=2.1.3 PayPal
livegetpay.com/pay.js?v=2.1.5CyberSource
livegetpay.com/pay.js?v=2.1.7 Authorize.Net
livegetpay.com/pay.js?v=2.1.8 Sage Pay
livegetpay.com/pay.js?v=2.1.9 Realex
livegetpay.com/pay.js?v=2.2.0 CyberSource
livegetpay.com/pay.js?v=2.2.1PayPal
livegetpay.com/pay.js?v=2.2.2 PayPal
livegetpay.com/pay.js?v=2.2.3 PayPal
livegetpay.com/pay.js?v=2.2.4 Verisign
livegetpay.com/pay.js?v=2.2.5 eWAY Rapid
livegetpay.com/pay.js?v=2.2.7 Sage Pay
livegetpay.com/pay.js?v=2.2.8 Sage Pay
livegetpay.com/pay.js?v=2.2.9Verisign
livegetpay.com/pay.js?v=2.3.0 Authorize.Net
livegetpay.com/pay.js?v=2.3.1Authorize.Net
livegetpay.com/pay.js?v=2.3.2First Data Global Gateway
livegetpay.com/pay.js?v=2.3.3 Authorize.Net
livegetpay.com/pay.js?v=2.3.4Authorize.Net
livegetpay.com/pay.js?v=2.3.5 Moneris
livegetpay.com/pay.js?v=2.3.6 Authorize.Net
livegetpay.com/pay.js?v=2.3.8 PayPal
livegetpay.com/pay.js?v=2.4.0Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.comAuthorize.Net
mediapack.info/track.js?d=vseyewear.com Verisign
mxcounter.com/c.js?v=1.2 PayPal
mxcounter.com/c.js?v=1.3 Authorize.Net
mxcounter.com/c.js?v=1.4 Stripe
mxcounter.com/c.js?v=1.6 Authorize.Net
mxcounter.com/c.js?v=1.7eWAY Rapid
mxcounter.com/c.js?v=1.8 Sage Pay
mxcounter.com/c.js?v=2.0 Authorize.Net
mxcounter.com/c.js?v=2.1Braintree
mxcounter.com/c.js?v=2.10 Braintree
mxcounter.com/c.js?v=2.2 PayPal
mxcounter.com/c.js?v=2.3 Sage Pay
mxcounter.com/c.js?v=2.31 Sage Pay
mxcounter.com/c.js?v=2.32 Authorize.Net
mxcounter.com/c.js?v=2.33PayPal
mxcounter.com/c.js?v=2.34Authorize.Net
mxcounter.com/c.js?v=2.35 Verisign
mxcounter.com/click.js?v=1.2 PayPal
mxcounter.com/click.js?v=1.3 Authorize.Net
mxcounter.com/click.js?v=1.4 Stripe
mxcounter.com/click.js?v=1.6 Authorize.Net
mxcounter.com/click.js?v=1.7 eWAY Rapid
mxcounter.com/click.js?v=1.8Sage Pay
mxcounter.com/click.js?v=2.0Authorize.Net
mxcounter.com/click.js?v=2.1 Braintree
mxcounter.com/click.js?v=2.2PayPal
mxcounter.com/click.js?v=2.3 Sage Pay
mxcounter.com/click.js?v=2.31Sage Pay
mxcounter.com/click.js?v=2.32Authorize.Net
mxcounter.com/click.js?v=2.33PayPal
mxcounter.com/click.js?v=2.34 Authorize.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.jsAuthorize.Net
mxcounter.com/j.jsAuthorize.Net
newrelicnet.com/api.js?v=1.2Authorize.Net
newrelicnet.com/api.js?v=1.4 Authorize.Net
newrelicnet.com/api.js?v=1.8 Sage Pay
newrelicnet.com/api.js?v=4.5 Sage Pay
newrelicnet.com/api.js?v=4.6 Westpac PayWay
nr-public.com/api.js?v=2.0PayFort
nr-public.com/api.js?v=2.1 PayPal
nr-public.com/api.js?v=2.2 Authorize.Net
nr-public.com/api.js?v=2.3Stripe
nr-public.com/api.js?v=2.4First Data Global Gateway
nr-public.com/api.js?v=2.5 PsiGate
nr-public.com/api.js?v=2.6 Authorize.Net
nr-public.com/api.js?v=2.7Authorize.Net
nr-public.com/api.js?v=2.8 Moneris
nr-public.com/api.js?v=2.9 Authorize.Net
nr-public.com/api.js?v=3.1 Sage Pay
nr-public.com/api.js?v=3.2 Verisign
nr-public.com/api.js?v=3.3Moneris
nr-public.com/api.js?v=3.5 PayPal
nr-public.com/api.js?v=3.6 LinkPoint
nr-public.com/api.js?v=3.7Westpac PayWay
nr-public.com/api.js?v=3.8 Authorize.Net
nr-public.com/api.js?v=4.0Moneris
nr-public.com/api.js?v=4.0.2 PayPal
nr-public.com/api.js?v=4.0.3 Adyen
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.7 EBizCharge
nr-public.com/api.js?v=4.0.8 Authorize.Net
nr-public.com/api.js?v=4.0.9 Verisign
nr-public.com/api.js?v=4.1.2 Verisign
ordercheckpays.com/api.js?v=2.11Authorize.Net
ordercheckpays.com/api.js?v=2.12 PayPal
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.18 Authorize.Net
ordercheckpays.com/api.js?v=2.19 Authorize.Net
ordercheckpays.com/api.js?v=2.21 Sage Pay
ordercheckpays.com/api.js?v=2.22 Verisign
ordercheckpays.com/api.js?v=2.23Authorize.Net
ordercheckpays.com/api.js?v=2.24 PayPal
ordercheckpays.com/api.js?v=2.25 PayFort
ordercheckpays.com/api.js?v=2.29 CyberSource
ordercheckpays.com/api.js?v=2.4 PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7Authorize.Net
ordercheckpays.com/api.js?v=2.8 Authorize.Net
ordercheckpays.com/api.js?v=2.9 Verisign
ordercheckpays.com/api.js?v=3.1 Authorize.Net
ordercheckpays.com/api.js?v=3.2 Authorize.Net
ordercheckpays.com/api.js?v=3.3Sage Pay
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5Stripe
ordercheckpays.com/api.js?v=3.6Authorize.Net
ordercheckpays.com/api.js?v=3.7 Authorize.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9PayPal
ordercheckpays.com/api.js?v=4.0 Authorize.Net
ordercheckpays.com/api.js?v=4.1Authorize.Net
ordercheckpays.com/api.js?v=4.2 Sage Pay
ordercheckpays.com/api.js?v=4.3Authorize.Net
reactjsapi.com/api.js?v=0.1.0 Authorize.Net
reactjsapi.com/api.js?v=0.1.1PayPal
reactjsapi.com/api.js?v=4.1.2 Flint
reactjsapi.com/api.js?v=4.1.4PayPal
reactjsapi.com/api.js?v=4.1.5Sage Pay
reactjsapi.com/api.js?v=4.1.51 Verisign
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.8 Stripe
reactjsapi.com/api.js?v=4.1.9 Fat Zebra
reactjsapi.com/api.js?v=4.2.0Sage Pay
reactjsapi.com/api.js?v=4.2.1 Authorize.Net
reactjsapi.com/api.js?v=4.2.2 First Data Global Gateway
reactjsapi.com/api.js?v=4.2.3 Authorize.Net
reactjsapi.com/api.js?v=4.2.4 eWAY Rapid
reactjsapi.com/api.js?v=4.2.5 Adyen
reactjsapi.com/api.js?v=4.2.7PayPal
reactjsapi.com/api.js?v=4.2.8 QuickBooks Merchant Services
reactjsapi.com/api.js?v=4.2.9Verisign
reactjsapi.com/api.js?v=4.2.91 Sage Pay
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.5Sage Pay
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.5CyberSource
tagstracking.com/tag.js?v=2.1.7Authorize.Net
tagstracking.com/tag.js?v=2.1.8Sage Pay
tagstracking.com/tag.js?v=2.1.9Realex
tagstracking.com/tag.js?v=2.2.0CyberSource
tagstracking.com/tag.js?v=2.2.1 PayPal
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.7Sage Pay
tagstracking.com/tag.js?v=2.2.8Sage Pay
tagstracking.com/tag.js?v=2.2.9Verisign
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.2First Data Global 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

Sniffeur de mots de passe

L'un des avantages des sniffeurs JavaScript fonctionnant côté client est leur universalité : le code malveillant intégré sur le site peut voler des données de tout type, qu'il s'agisse de données de paiement ou de connexions et mots de passe de comptes utilisateurs. Les spécialistes de Group-IB ont découvert un exemple de sniffeur appartenant à la famille ReactGet, destiné à voler les adresses e-mail et les mots de passe des utilisateurs du site.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Intersection avec le sniffeur ImageID

Lors de l'analyse d'une des boutiques infectées, il a été établi que son site avait été infecté deux fois : en plus du code malveillant du sniffeur de la famille ReactGet, un code du sniffeur de la famille ImageID a été découvert. Cette inter-connexion peut être un témoignage du fait que les opérateurs responsables de l'utilisation des deux sniffeurs appliquent des techniques similaires pour injecter du code malveillant.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Sniffeur universel

Lors de l'analyse d'un des noms de domaine appartenant à l'infrastructure des sniffeurs ReactGet, il a été établi que le même utilisateur avait enregistré trois autres noms de domaine. Ces trois domaines imitaient des domaines de sites réellement existants et avaient été précédemment utilisés pour héberger des sniffeurs. L'analyse du code de trois sites légitimes a révélé un sniffeur inconnu, et une analyse plus approfondie a montré qu'il s'agissait d'une version améliorée du sniffeur ReactGet. Toutes les versions précédemment suivies de ce type de sniffeurs ciblaient un système de paiement spécifique, c'est-à-dire qu'une version spéciale de sniffeur était nécessaire pour chaque système de paiement. Cependant, dans ce cas, une version universelle du sniffeur a été découverte, capable de voler des informations à partir de formulaires relatives à 15 systèmes de paiement différents et modules de sites de commerce électronique pour effectuer des paiements en ligne.

Ainsi, au début de son fonctionnement, le sniffeur recherchait des champs de formulaire basiques contenant des informations personnelles de la victime : nom complet, adresse physique, numéro de téléphone.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Puis, le sniffeur recherchait à travers plus de 15 préfixes différents correspondant aux divers systèmes de paiement et modules pour les paiements en ligne.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Ensuite, les données personnelles de la victime et les informations de paiement étaient rassemblées et envoyées vers un site contrôlé par l'attaquant : dans ce cas précis, deux versions du sniffeur universel ReactGet ont été découvertes, situées sur deux sites piratés différents. Cependant, les deux versions envoyaient les données volées vers le même site piraté. zoobashop.com.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
L'analyse des préfixes utilisés par le sniffeur pour rechercher des champs contenant les informations de paiement de la victime a permis de déterminer que cet échantillon de sniffeur était ciblé sur les systèmes de paiement suivants :

  • Authorize.Net
  • Verisign
  • First Data
  • USAePay
  • Stripe
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Realex Payments
  • PsiGate
  • Heartland Payment Systems

Quels outils sont utilisés pour voler les informations de paiement

Le premier outil découvert lors de l'analyse de l'infrastructure des attaquants sert à obfusquer des scripts malveillants chargés de voler des cartes bancaires. Sur l'un des hôtes des attaquants, un script bash utilisant la CLI du projet a été trouvé. javascript-obfuscator pour automatiser l'obfuscation du code des sniffeurs.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Le deuxième outil détecté est destiné à générer le code chargé du sniffer principal. Cet outil génère du code JavaScript qui vérifie si l'utilisateur se trouve sur la page de paiement en recherchant dans l'adresse actuelle de l'utilisateur des chaînes checkout, panier et ainsi de suite, et si le résultat est positif, le code charge le sniffer principal depuis le serveur des attaquants. Pour dissimuler l'activité malveillante, toutes les chaînes, y compris les chaînes de test pour déterminer la page de paiement, ainsi que le lien vers le sniffer, sont codées à l'aide de base64.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Attaques de phishing

Au cours de l'analyse de l'infrastructure réseau des attaquants, il a été établi que souvent pour accéder au panneau d'administration de la boutique en ligne ciblée, un groupe criminel utilise le phishing. Les attaquants enregistrent un domaine visuellement similaire à celui de la boutique, puis déploient un faux formulaire de connexion au panneau d'administration Magento. En cas de succès, les attaquants auront accès au panneau d'administration du CMS Magento, ce qui leur permettra de modifier les composants du site et d'implémenter un sniffer pour voler des données de cartes de crédit.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Infrastructure

DomaineDate de détection / apparition
mediapack.info04.05.2017
adsgetapi.com15.06.2017
simcounter.com14.08.2017
mageanalytics.com22.12.2017
maxstatics.com16.01.2018
reactjsapi.com19.01.2018
mxcounter.com02.02.2018
apitstatus.com01.03.2018
orderracker.com20.04.2018
tagstracking.com25.06.2018
adsapigate.com12.07.2018
trust-tracker.com15.07.2018
fbstatspartner.com02.10.2018
billgetstatus.com12.10.2018
aldenmlilhouse.com20.10.2018
balletbeautlful.com20.10.2018
bargalnjunkie.com20.10.2018
payselector.com21.10.2018
tagsmediaget.com02.11.2018
hs-payments.com16.11.2018
ordercheckpays.com19.11.2018
geisseie.com24.11.2018
gtmproc.com29.11.2018
livegetpay.com18.12.2018
sydneysalonsupplies.com18.12.2018
newrelicnet.com19.12.2018
nr-public.com03.01.2019
cloudodesc.com04.01.2019
ajaxstatic.com11.01.2019
livecheckpay.com21.01.2019
asianfoodgracer.com25.01.2019

Famille G-Analytics

Cette famille de sniffers est utilisée pour voler les cartes des clients des boutiques en ligne. Le tout premier nom de domaine utilisé par le groupe a été enregistré en avril 2016, ce qui peut indiquer le début des activités du groupe au milieu de l'année 2016.

Dans la campagne actuelle, le groupe utilise des noms de domaine imitant de véritables services, tels que Google Analytics et jQuery, masquant l'activité des sniffers derrière des scripts légitimes et des noms de domaine ressemblant à des noms légitimes. Des sites fonctionnant sous CMS Magento ont été attaqués.

Comment G-Analytics est intégré dans le code de la boutique en ligne

La caractéristique distinctive de cette famille est l'utilisation de différentes méthodes pour voler les informations de paiement des utilisateurs. En plus de l'insertion classique de code JavaScript dans la partie cliente du site, le groupe criminel a également utilisé la technique d'insertion de code dans la partie serveur du site, à savoir des scripts PHP qui traitent les données saisies par les utilisateurs. Cette technique est dangereuse car elle complique la détection du code malveillant par des chercheurs externes. Les spécialistes de Group-IB ont découvert une version d'un sniffer inséré dans le code PHP du site, utilisant comme passerelle le domaine dittm.org.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Une version antérieure du sniffer a également été découverte, utilisant le même domaine pour collecter des données volées dittm.org, mais cette version est destinée à être installée sur la partie cliente du magasin en ligne.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Plus tard, le groupe a modifié sa tactique et a commencé à prêter davantage attention à la dissimulation de l'activité malveillante et à l'irréductibilité.

Au début de 2017, le groupe a commencé à utiliser le domaine jquery-js.com, se déguisant en CDN pour jQuery : lors de la visite du site des malfaiteurs, l'utilisateur est redirigé vers le site légitime jquery.com.

Et au milieu de 2018, le groupe a adopté le nom de domaine g-analytics.com et a commencé à déguiser l'activité du sniffer en un service légitime de Google Analytics.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Analyse des versions

Lors de l'analyse des domaines utilisés pour stocker le code des sniffers, il a été établi qu'il y avait un grand nombre de versions sur le site, qui diffèrent par la présence d'obfuscation, ainsi que par la présence ou l'absence de code inaccessibilité ajouté au fichier pour détourner l'attention et cacher le code malveillant.

Au total, sur le site jquery-js.com six versions de sniffers ont été identifiées. Les données volées sont envoyées à une adresse située sur le même site que le sniffer lui-même : 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

Un domaine plus récent g-analytics.com, utilisé par le groupe dans des attaques depuis le milieu de 2018, sert de stockage pour un plus grand nombre de sniffers. Un total de 16 versions différentes du sniffer a été découvert. Dans ce cas, la passerelle pour l'envoi des données volées était masquée sous un lien vers une image au format 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

Monétisation des données volées

Le groupe criminel monétise les données volées en vendant des cartes via un magasin clandestin spécialement créé, offrant des services aux carders. L'analyse des domaines utilisés par les attaquants a permis de déterminer que google-analytics.cm a été enregistré par le même utilisateur que le domaine cardz.vc. Domaine cardz.vc se réfère au magasin de vente de cartes bancaires volées Cardsurfs (Flysurfs), qui est devenu populaire à l’époque de l’activité de la place de marché souterraine AlphaBay comme un magasin de vente de cartes bancaires volées via un sniffer.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
En analysant le domaine analytic.is, situé sur le même serveur que les domaines utilisés par les sniffers pour collecter des données volées, les spécialistes de Group-IB ont découvert un fichier contenant des journaux de Cookie-stiller, qui semble avoir été abandonné par le développeur par la suite. Une des entrées du journal contenait le domaine iozoz.com, qui avait été utilisé auparavant dans un des sniffers actifs en 2016. Ce domaine aurait été précédemment utilisé par un attaquant pour collecter des cartes volées via un sniffer. Ce domaine a été enregistré avec l'adresse email kts241@gmail.com, qui a également été utilisée pour enregistrer les domaines cardz.su et cardz.vc, liés au magasin de carding Cardsurfs.

D'après les données obtenues, on peut supposer que la famille de sniffers G-Analytics et le magasin souterrain de vente de cartes bancaires Cardsurfs sont gérés par les mêmes personnes, et que le magasin est utilisé pour la vente de cartes bancaires volées via un sniffer.

Infrastructure

DomaineDate de détection / apparition
iozoz.com08.04.2016
dittm.org10.09.2016
jquery-js.com02.01.2017
g-analytics.com31.05.2018
google-analytics.is21.11.2018
analytic.to04.12.2018
google-analytics.to06.12.2018
google-analytics.cm28.12.2018
analytic.is28.12.2018
googlc-analytics.cm17.01.2019

Famille Illum

Illum est une famille de sniffers utilisée pour des attaques sur des magasins en ligne fonctionnant sous CMS Magento. En plus d'injecter du code malveillant, les opérateurs de ce sniffer utilisent également l'injection de fausses formulaires de paiement qui envoient les données à des passerelles contrôlées par des cybercriminels.

Lors de l'analyse de l'infrastructure réseau utilisée par les opérateurs de ce sniffer, un grand nombre de scripts malveillants, d'exploits, de formulaires de paiement falsifiés, ainsi qu'une compilation d'exemples de sniffers malveillants concurrents ont été observés. D'après les informations concernant les dates d'apparition des noms de domaine utilisés par le groupe, on peut supposer que le début de la campagne remonte à la fin de l'année 2016.

Comment Illum s'intègre dans le code du magasin en ligne

Les premières versions découvertes du sniffer étaient intégrées directement dans le code du site compromis. Les données volées étaient envoyées à l'adresse cdn.illum[.]pw/records.php, la passerelle étant codée à l'aide de base64.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Une version empaquetée du sniffer utilisant une autre porte a été découverte plus tard — records.nstatistics[.]com/records.php.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Selon rapport Willem de Groot, le même hôte a été utilisé dans le sniffer qui a été implanté sur le site du magasin, appartenant au parti politique allemand CSU.

Analyse du site des cybercriminels

Les experts de Group-IB ont découvert et analysé le site utilisé par ce groupe criminel pour stocker des outils et collecter des informations volées.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Parmi les outils découverts sur le serveur des cybercriminels, des scripts et exploits pour l'élévation de privilèges sous OS Linux ont été trouvés : par exemple, le script de vérification d'élévation de privilèges Linux, développé par Mike Czumak, ainsi qu'un exploit pour CVE-2009-1185.

Pour les attaques sur les magasins en ligne, les cybercriminels ont utilisé deux exploits : le premier capable d'injecter du code malveillant dans core_config_data en exploitant CVE-2016-4010, le second exploite une vulnérabilité de type RCE dans les plugins pour CMS Magento, permettant d'exécuter du code arbitraire sur le serveur web vulnérable.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Lors de l'analyse du serveur, différents échantillons de sniffers et de faux formulaires de paiement ont également été découverts, utilisés par les cybercriminels pour collecter des informations de paiement sur les sites piratés. Comme on peut le voir dans la liste ci-dessous, certains scripts ont été créés individuellement pour chaque site piraté, tandis qu'une solution universelle a été utilisée pour certains CMS et passerelles de paiement. Par exemple, les scripts segapay_standart.js et segapay_onpage.js sont destinés à être injectés sur des sites utilisant la passerelle de paiement Sage Pay.

Liste des scripts pour différentes passerelles de paiement

ScriptPasserelle de paiement
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=

Hôte paymentnow[.]tk, utilisé comme porte dans le script payment_forminsite.js, a été découvert comme subjectAltName dans plusieurs certificats liés au service CloudFlare. De plus, un script a été trouvé sur l'hôte evil.js. Selon le nom du script, il pourrait avoir été utilisé dans le cadre de l'exploitation de CVE-2016-4010, permettant d'injecter du code malveillant dans le pied de page d'un site géré par CMS Magento. Comme porte, ce script a été appliqué par l'hôte request.requestnet[.]tk, utilisant le même certificat que l'hôte paymentnow[.]tk.

Formulaires de paiement frauduleux

L'exemple ci-dessous montre un formulaire de saisie des informations de carte. Ce formulaire était utilisé pour une injection sur le site d'un magasin en ligne et pour le vol des données de carte.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
L'illustration suivante montre un exemple de faux formulaire de paiement PayPal utilisé par des cybercriminels pour l'injection sur des sites utilisant ce mode de paiement.
Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Infrastructure

DomaineDate de détection / apparition
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

Famille CoffeMokko

La famille de sniffers CoffeMokko, conçue pour voler les informations bancaires des utilisateurs des boutiques en ligne, est utilisée depuis au moins mai 2017. On suppose que les opérateurs de cette famille de sniffers appartiennent à un groupe criminel appelé Group 1, décrit par des spécialistes de RiskIQ en 2016. Les attaques ont ciblé des sites gérés par des CMS tels que Magento, OpenCart, WordPress, osCommerce, Shopify.

Comment CoffeMokko s'injecte dans le code des boutiques en ligne

Les opérateurs de cette famille créent des sniffers uniques pour chaque infection : le fichier du sniffer se trouve dans le répertoire src ou js sur le serveur des cybercriminels. L'injection dans le code du site se fait via un lien direct vers le sniffer.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Le code du sniffer contient de manière fixe les noms des champs du formulaire à partir desquels les données doivent être volées. De plus, le sniffer vérifie si l'utilisateur est sur la page de paiement en comparant une liste de mots-clés avec l'URL actuelle de l'utilisateur.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Certaines versions détectées du sniffer étaient obfusquées et contenaient une chaîne chiffrée où était stocké le tableau principal des ressources : c'est là que se trouvaient les noms des champs des différents systèmes de paiement, ainsi que l'adresse du portail vers lequel les données volées devaient être envoyées.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Les informations de paiement volées étaient envoyées à un script sur le serveur des cybercriminels via le chemin /savePayment/index.php или /tr/index.php. On suppose que ce script sert à transférer les données du portail vers le serveur principal, qui consolide les données de tous les sniffers. Pour camoufler les données envoyées, toutes les informations de paiement de la victime sont cryptées à l'aide de base64, puis plusieurs substitutions de caractères sont effectuées :

  • le caractère « e » est remplacé par « : »
  • le caractère « w » est remplacé par « + »
  • le caractère « o » est remplacé par « % »
  • le caractère « d » est remplacé par « # »
  • le caractère « a » est remplacé par « - »
  • le caractère « 7 » est remplacé par « ^ »
  • le caractère « h » est remplacé par « _ »
  • le caractère « T » est remplacé par « @ »
  • le caractère « 0 » est remplacé par « / »
  • le caractère « Y » est remplacé par « * »

Ainsi, les données codées à l'aide de base64 ne peuvent être décodées sans effectuer la transformation inverse.

Voici un extrait de code d'un sniffer qui n'a pas été obfusqué :

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Analyse de l'infrastructure

Lors des premières campagnes, les cybercriminels enregistraient des noms de domaine similaires à ceux de sites légitimes de magasins en ligne. Leur domaine pouvait différer du légitime par un seul caractère ou un autre TLD. Les domaines enregistrés étaient utilisés pour héberger le code du sniffer, dont le lien était intégré dans le code du magasin.

De plus, ce groupe utilisait des noms de domaine rappelant le nom de plugins populaires pour jQuery (slickjs[.]org pour les sites utilisant le plugin slick.js), des passerelles de paiement (sagecdn[.]org pour les sites utilisant le système de paiement Sage Pay).

Par la suite, le groupe a commencé à créer des domaines dont les noms n'avaient aucun rapport avec le domaine ou la thématique du magasin.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Chaque domaine correspondait à un site sur lequel un répertoire a été créé /js ou /src. Dans ce répertoire, des scripts de sniffers étaient stockés : un sniffer pour chaque nouvelle infection. Le sniffer était intégré dans le code du site par un lien direct, mais dans de rares cas, les cybercriminels modifiaient un des fichiers du site et y ajoutaient du code malveillant.

Analyse de code

Premier algorithme d'obfuscation

Dans certains échantillons découverts de ce type de sniffer, le code était obfusqué et contenait des données chiffrées nécessaires au fonctionnement du sniffer : en particulier, l'adresse de la porte du sniffer, la liste des champs du formulaire de paiement, et dans certains cas, le code d'un faux formulaire de paiement. Dans le code à l'intérieur de la fonction, les ressources étaient chiffrées à l'aide de XOR avec une clé transmise comme argument de la même fonction.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
En déchiffrant la chaîne avec la clé appropriée, unique à chaque échantillon, on peut obtenir une chaîne contenant toutes les chaînes du code du sniffer séparées par un caractère délimiteur.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Deuxième algorithme d'obfuscation

Dans des échantillons plus récents de ce type de sniffer, un autre mécanisme d'obfuscation était utilisé : dans ce cas, les données étaient chiffrées à l'aide d'un algorithme fait maison. La chaîne contenant les données chiffrées nécessaires au fonctionnement du sniffer était transmise comme argument de la fonction de déchiffrement.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
En utilisant la console du navigateur, il est possible de déchiffrer les données chiffrées et d'obtenir un tableau contenant des ressources du sniffer.

Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne

Lien avec les premières attaques MageCart

Lors de l'analyse d'un des domaines utilisés par le groupe comme porte d'entrée pour collecter des données volées, il a été établi que ce domaine hébergeait une infrastructure destinée au vol de cartes de crédit, identique à celle utilisée par le Groupe 1 — l'un des premiers groupes, découvert par les experts de RiskIQ.

Sur l'hôte de la famille de sniffers CoffeMokko, deux fichiers ont été découverts :

  • mage.js — un fichier contenant le code du sniffer Groupe 1 avec l'adresse de porte d'entrée js-cdn.link
  • mag.php — un script PHP responsable de la collecte des données volées par le sniffer

Содержимое файла mage.js Quatre sniffeurs JavaScript qui vous guettent dans les boutiques en ligne
Il a également été établi que les premiers domaines utilisés par le groupe derrière la famille de sniffers CoffeMokko ont été enregistrés le 17 mai 2017 :

  • link-js[.]link
  • info-js[.]link
  • track-js[.]link
  • map-js[.]link
  • smart-js[.]link

Le format de ces noms de domaine correspond à ceux du Groupe 1, utilisés lors des attaques de 2016.

Sur la base des faits découverts, on peut supposer qu'il existe un lien entre les opérateurs des sniffers CoffeMokko et le groupe criminel Groupe 1. Les opérateurs de CoffeMokko auraient pu emprunter aux outils et logiciels de vol de cartes de leurs prédécesseurs. Cependant, il est plus probable que le groupe criminel derrière l'utilisation des sniffers de la famille CoffeMokko soit constitué des mêmes personnes qui ont mené les attaques dans le cadre des activités du Groupe 1. Après la publication du premier rapport sur les activités du groupe criminel, tous leurs noms de domaine ont été bloqués, et les outils ont été étudiés et décrits en détail. Le groupe a été contraint de faire une pause, de retravailler ses outils internes et de réécrire le code des sniffers afin de poursuivre ses attaques et de rester inaperçu.

Infrastructure

DomaineDate de détection / apparition
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.org03.09.2017
security-payment.su03.09.2017
braincdn.org04.09.2017
sagecdn.org04.09.2017
slickjs.org04.09.2017
oakandfort.org10.09.2017
citywlnery.org15.09.2017
dobell.su04.10.2017
childsplayclothing.org31.10.2017
jewsondirect.com05.11.2017
shop-rnib.org15.11.2017
closetlondon.org16.11.2017
misshaus.org28.11.2017
battery-force.org01.12.2017
kik-vape.org01.12.2017
greatfurnituretradingco.org02.12.2017
etradesupply.org04.12.2017
replacemyremote.org04.12.2017
all-about-sneakers.org05.12.2017
mage-checkout.org05.12.2017
nililotan.org07.12.2017
lamoodbighats.net08.12.2017
walletgear.org10.12.2017
dahlie.org12.12.2017
davidsfootwear.org20.12.2017
blackriverimaging.org23.12.2017
exrpesso.org02.01.2018
parks.su09.01.2018
pmtonline.su12.01.2018
ottocap.org15.01.2018
christohperward.org27.01.2018
coffetea.org31.01.2018
energycoffe.org31.01.2018
energytea.org31.01.2018
teacoffe.net31.01.2018
adaptivecss.org01.03.2018
coffemokko.com01.03.2018
londontea.net01.03.2018
ukcoffe.com01.03.2018
labbe.biz20.03.2018
batterynart.com03.04.2018
btosports.net09.04.2018
chicksaddlery.net16.04.2018
paypaypay.org11.05.2018
ar500arnor.com26.05.2018
authorizecdn.com28.05.2018
slickmin.com28.05.2018
bannerbuzz.info03.06.2018
kandypens.net08.06.2018
mylrendyphone.com15.06.2018
freshchat.info01.07.2018
3lift.org02.07.2018
abtasty.net02.07.2018
mechat.info02.07.2018
zoplm.com02.07.2018
zapaljs.com02.09.2018
foodandcot.com15.09.2018
freshdepor.com15.09.2018
swappastore.com15.09.2018
verywellfitnesse.com15.09.2018
elegrina.com18.11.2018
majsurplus.com19.11.2018
top5value.com19.11.2018

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster