Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Presque chacun d'entre nous utilise les services de boutiques en ligne, ce qui signifie que tôt ou tard, nous courons le risque d'être victime de renifleurs JavaScript - un code spécial que les attaquants injectent dans un site Web pour voler des données de carte bancaire, des adresses, des noms d'utilisateur et des mots de passe .

Près de 400 000 utilisateurs du site internet et de l'application mobile de British Airways ont déjà été touchés par les renifleurs, ainsi que les visiteurs du site internet britannique du géant du sport FILA et du distributeur de billets américain Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - ces systèmes de paiement et bien d'autres ont été infectés.

Viktor Okorokov, analyste du Threat Intelligence Group-IB, explique comment les renifleurs infiltrent le code du site Web et volent les informations de paiement, ainsi que les CRM qu'ils attaquent.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

"Menace cachée"

Il se trouve que pendant longtemps les renifleurs JS sont restés hors de vue des analystes antivirus, et les banques et les systèmes de paiement ne les ont pas considérés comme une menace sérieuse. Et absolument en vain. Groupe-IB Experts analysé 2440 boutiques en ligne infectées, dont les visiteurs - un total d'environ 1,5 million de personnes par jour - risquaient d'être compromis. Parmi les victimes figurent non seulement des utilisateurs, mais également des boutiques en ligne, des systèmes de paiement et des banques qui ont émis des cartes compromises.

Rapport Group-IB est devenu la première étude du marché darknet des renifleurs, de leur infrastructure et des moyens de monétisation, rapportant à leurs créateurs des millions de dollars. Nous avons identifié 38 familles de renifleurs, dont seulement 12 étaient auparavant connues des chercheurs.

Arrêtons-nous en détail sur les quatre familles de renifleurs étudiées au cours de l'étude.

Famille ReactGet

Les sniffers de la famille ReactGet sont utilisés pour voler les données des cartes bancaires sur les sites de vente en ligne. Le renifleur peut fonctionner avec un grand nombre de systèmes de paiement différents utilisés sur le site : une valeur de paramètre correspond à un système de paiement, et des versions individuelles détectées du renifleur peuvent être utilisées pour voler des informations d'identification, ainsi que pour voler des données de carte bancaire du formes de paiement de plusieurs systèmes de paiement à la fois, comme le soi-disant renifleur universel. Il a été constaté que dans certains cas, les attaquants menaient des attaques de phishing sur les administrateurs de boutiques en ligne afin d'accéder au panneau d'administration du site.

La campagne utilisant cette famille de renifleurs a débuté en mai 2017. Des sites exécutant des CMS et des plateformes Magento, Bigcommerce, Shopify ont été attaqués.

Comment ReactGet est intégré dans le code d'une boutique en ligne

En plus de l'injection de script "classique" par lien, les opérateurs de renifleurs de la famille ReactGet utilisent une technique particulière : à l'aide de code JavaScript, il vérifie si l'adresse actuelle où se trouve l'utilisateur répond à certains critères. Le code malveillant ne s'exécutera que si l'URL actuelle contient une sous-chaîne caisse ou paiement en une étape, une page/, out/une page, caisse/une, ckout/un. Ainsi, le code renifleur sera exécuté exactement au moment où l'utilisateur procède au paiement des achats et saisit les informations de paiement dans le formulaire du site.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Ce renifleur utilise une technique non standard. Le paiement et les données personnelles de la victime sont collectés ensemble, encodés à l'aide base64, puis la chaîne résultante est utilisée comme paramètre pour envoyer une requête au site malveillant. Le plus souvent, le chemin vers la porte imite un fichier JavaScript, par exemple resp.js, data.js et ainsi de suite, mais des liens vers des fichiers image sont également utilisés, GIF и JPG. La particularité est que le renifleur crée un objet image d'une taille de 1 par 1 pixel et utilise le lien précédemment obtenu comme paramètre src Images. Autrement dit, pour l'utilisateur, une telle demande dans le trafic ressemblera à une demande d'image normale. Une technique similaire a été utilisée dans la famille de renifleurs ImageID. De plus, la technique d'image 1x1 pixel est utilisée dans de nombreux scripts d'analyse en ligne légitimes, ce qui peut également induire l'utilisateur en erreur.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Analyse des versions

Une analyse des domaines actifs utilisés par les opérateurs de renifleur ReactGet a révélé de nombreuses versions différentes de cette famille de renifleurs. Les versions diffèrent par la présence ou l'absence d'obfuscation, et de plus, chaque renifleur est conçu pour un système de paiement spécifique qui traite les paiements par carte bancaire pour les magasins en ligne. Après avoir trié la valeur du paramètre correspondant au numéro de version, les spécialistes de Group-IB ont reçu une liste complète des variantes de renifleur disponibles, et par les noms des champs de formulaire que chaque renifleur recherche dans le code de la page, ils ont déterminé les systèmes de paiement que le renifleur cible.

Liste des renifleurs et leurs systèmes de paiement correspondants

URL du renifleur système de paiement
réagirjsapi.com/react.js Authorize.Net
ajaxstatic.com/api.js?v=2.1.1 Sauvegarde de cartes
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.4 eWAY Rapide
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.7 USAePay
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.3 Moneris
apitstatus.com/api.js?v=2.1.5 USAePay
apitstatus.com/api.js?v=2.1.6 PayPal
apitstatus.com/api.js?v=2.1.7 Paye sage
apitstatus.com/api.js?v=2.1.8 Verisign
apitstatus.com/api.js?v=2.1.9 PayPal
apitstatus.com/api.js?v=2.3.0 Stripe
apitstatus.com/api.js?v=3.0.2 Realex
apitstatus.com/api.js?v=3.0.3 PayPal
apitstatus.com/api.js?v=3.0.4 Point de liaison
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.8 datacash
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.3 Authorize.Net
billgetstatus.com/api.js?v=1.4 Authorize.Net
billgetstatus.com/api.js?v=1.5 Verisign
billgetstatus.com/api.js?v=1.6 Authorize.Net
billgetstatus.com/api.js?v=1.7 Moneris
billgetstatus.com/api.js?v=1.8 Paye sage
billgetstatus.com/api.js?v=2.0 USAePay
billgetstatus.com/react.js Authorize.Net
cloudodesc.com/gtm.js?v=1.2 Authorize.Net
cloudodesc.com/gtm.js?v=1.3 Porte électronique ANZ
cloudodesc.com/gtm.js?v=2.3 Authorize.Net
cloudodesc.com/gtm.js?v=2.4 Moneris
cloudodesc.com/gtm.js?v=2.6 Paye sage
cloudodesc.com/gtm.js?v=2.7 Paye sage
cloudodesc.com/gtm.js?v=2.8 Chase Paiementech
cloudodesc.com/gtm.js?v=2.9 Authorize.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93 CyberSource
cloudodesc.com/gtm.js?v=2.95 Porte électronique ANZ
cloudodesc.com/gtm.js?v=2.97 Realex
geisseie.com/gs.js USAePay
gtmproc.com/age.js Authorize.Net
gtmproc.com/gtm.js?v=1.2 Authorize.Net
gtmproc.com/gtm.js?v=1.3 Porte électronique ANZ
gtmproc.com/gtm.js?v=1.5 PayPal
gtmproc.com/gtm.js?v=1.6 PayPal
gtmproc.com/gtm.js?v=1.7 Realex
livecheckpay.com/api.js?v=2.0 Paye sage
livecheckpay.com/api.js?v=2.1 PayPal
livecheckpay.com/api.js?v=2.2 Verisign
livecheckpay.com/api.js?v=2.3 Authorize.Net
livecheckpay.com/api.js?v=2.4 Verisign
livecheckpay.com/react.js Authorize.Net
livegetpay.com/pay.js?v=2.1.2 Porte électronique ANZ
livegetpay.com/pay.js?v=2.1.3 PayPal
livegetpay.com/pay.js?v=2.1.5 CyberSource
livegetpay.com/pay.js?v=2.1.7 Authorize.Net
livegetpay.com/pay.js?v=2.1.8 Paye sage
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.1 PayPal
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 Rapide
livegetpay.com/pay.js?v=2.2.7 Paye sage
livegetpay.com/pay.js?v=2.2.8 Paye sage
livegetpay.com/pay.js?v=2.2.9 Verisign
livegetpay.com/pay.js?v=2.3.0 Authorize.Net
livegetpay.com/pay.js?v=2.3.1 Authorize.Net
livegetpay.com/pay.js?v=2.3.2 Première passerelle mondiale de données
livegetpay.com/pay.js?v=2.3.3 Authorize.Net
livegetpay.com/pay.js?v=2.3.4 Authorize.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.0 Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.com Authorize.Net
mediapack.info/track.js?d=vseywear.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.7 eWAY Rapide
mxcounter.com/c.js?v=1.8 Paye sage
mxcounter.com/c.js?v=2.0 Authorize.Net
mxcounter.com/c.js?v=2.1 Braintree
mxcounter.com/c.js?v=2.10 Braintree
mxcounter.com/c.js?v=2.2 PayPal
mxcounter.com/c.js?v=2.3 Paye sage
mxcounter.com/c.js?v=2.31 Paye sage
mxcounter.com/c.js?v=2.32 Authorize.Net
mxcounter.com/c.js?v=2.33 PayPal
mxcounter.com/c.js?v=2.34 Authorize.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 Rapide
mxcounter.com/click.js?v=1.8 Paye sage
mxcounter.com/click.js?v=2.0 Authorize.Net
mxcounter.com/click.js?v=2.1 Braintree
mxcounter.com/click.js?v=2.2 PayPal
mxcounter.com/click.js?v=2.3 Paye sage
mxcounter.com/click.js?v=2.31 Paye sage
mxcounter.com/click.js?v=2.32 Authorize.Net
mxcounter.com/click.js?v=2.33 PayPal
mxcounter.com/click.js?v=2.34 Authorize.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.js Authorize.Net
mxcounter.com/j.js Authorize.Net
newrelicnet.com/api.js?v=1.2 Authorize.Net
newrelicnet.com/api.js?v=1.4 Authorize.Net
newrelicnet.com/api.js?v=1.8 Paye sage
newrelicnet.com/api.js?v=4.5 Paye sage
newrelicnet.com/api.js?v=4.6 Paiement Westpac
nr-public.com/api.js?v=2.0 salaire
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.3 Stripe
nr-public.com/api.js?v=2.4 Première passerelle mondiale de données
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.7 Authorize.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 Paye sage
nr-public.com/api.js?v=3.2 Verisign
nr-public.com/api.js?v=3.3 Moneris
nr-public.com/api.js?v=3.5 PayPal
nr-public.com/api.js?v=3.6 Point de liaison
nr-public.com/api.js?v=3.7 Paiement Westpac
nr-public.com/api.js?v=3.8 Authorize.Net
nr-public.com/api.js?v=4.0 Moneris
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.4 PayPal
nr-public.com/api.js?v=4.0.5 Authorize.Net
nr-public.com/api.js?v=4.0.6 USAePay
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.11 Authorize.Net
ordercheckpays.com/api.js?v=2.12 PayPal
ordercheckpays.com/api.js?v=2.13 Moneris
ordercheckpays.com/api.js?v=2.14 Authorize.Net
ordercheckpays.com/api.js?v=2.15 PayPal
ordercheckpays.com/api.js?v=2.16 PayPal
ordercheckpays.com/api.js?v=2.17 Paiement Westpac
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 Paye sage
ordercheckpays.com/api.js?v=2.22 Verisign
ordercheckpays.com/api.js?v=2.23 Authorize.Net
ordercheckpays.com/api.js?v=2.24 PayPal
ordercheckpays.com/api.js?v=2.25 salaire
ordercheckpays.com/api.js?v=2.29 CyberSource
ordercheckpays.com/api.js?v=2.4 PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7 Authorize.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.3 Paye sage
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5 Stripe
ordercheckpays.com/api.js?v=3.6 Authorize.Net
ordercheckpays.com/api.js?v=3.7 Authorize.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9 PayPal
ordercheckpays.com/api.js?v=4.0 Authorize.Net
ordercheckpays.com/api.js?v=4.1 Authorize.Net
ordercheckpays.com/api.js?v=4.2 Paye sage
ordercheckpays.com/api.js?v=4.3 Authorize.Net
réagirjsapi.com/api.js?v=0.1.0 Authorize.Net
réagirjsapi.com/api.js?v=0.1.1 PayPal
réagirjsapi.com/api.js?v=4.1.2 Silex
réagirjsapi.com/api.js?v=4.1.4 PayPal
réagirjsapi.com/api.js?v=4.1.5 Paye sage
réagirjsapi.com/api.js?v=4.1.51 Verisign
réagirjsapi.com/api.js?v=4.1.6 Authorize.Net
réagirjsapi.com/api.js?v=4.1.7 Authorize.Net
réagirjsapi.com/api.js?v=4.1.8 Stripe
réagirjsapi.com/api.js?v=4.1.9 Gros zèbre
réagirjsapi.com/api.js?v=4.2.0 Paye sage
réagirjsapi.com/api.js?v=4.2.1 Authorize.Net
réagirjsapi.com/api.js?v=4.2.2 Première passerelle mondiale de données
réagirjsapi.com/api.js?v=4.2.3 Authorize.Net
réagirjsapi.com/api.js?v=4.2.4 eWAY Rapide
réagirjsapi.com/api.js?v=4.2.5 Adyen
réagirjsapi.com/api.js?v=4.2.7 PayPal
réagirjsapi.com/api.js?v=4.2.8 Services aux commerçants QuickBooks
réagirjsapi.com/api.js?v=4.2.9 Verisign
réagirjsapi.com/api.js?v=4.2.91 Paye sage
réagirjsapi.com/api.js?v=4.2.92 Verisign
réagirjsapi.com/api.js?v=4.2.94 Authorize.Net
réagirjsapi.com/api.js?v=4.3.97 Authorize.Net
réagirjsapi.com/api.js?v=4.5 Paye sage
réagirjsapi.com/react.js Authorize.Net
sydneysalonsupplies.com/gtm.js eWAY Rapide
tagsmediaget.com/react.js Authorize.Net
tagstracking.com/tag.js?v=2.1.2 Porte électronique ANZ
tagstracking.com/tag.js?v=2.1.3 PayPal
tagstracking.com/tag.js?v=2.1.5 CyberSource
tagstracking.com/tag.js?v=2.1.7 Authorize.Net
tagstracking.com/tag.js?v=2.1.8 Paye sage
tagstracking.com/tag.js?v=2.1.9 Realex
tagstracking.com/tag.js?v=2.2.0 CyberSource
tagstracking.com/tag.js?v=2.2.1 PayPal
tagstracking.com/tag.js?v=2.2.2 PayPal
tagstracking.com/tag.js?v=2.2.3 PayPal
tagstracking.com/tag.js?v=2.2.4 Verisign
tagstracking.com/tag.js?v=2.2.5 eWAY Rapide
tagstracking.com/tag.js?v=2.2.7 Paye sage
tagstracking.com/tag.js?v=2.2.8 Paye sage
tagstracking.com/tag.js?v=2.2.9 Verisign
tagstracking.com/tag.js?v=2.3.0 Authorize.Net
tagstracking.com/tag.js?v=2.3.1 Authorize.Net
tagstracking.com/tag.js?v=2.3.2 Première passerelle mondiale de données
tagstracking.com/tag.js?v=2.3.3 Authorize.Net
tagstracking.com/tag.js?v=2.3.4 Authorize.Net
tagstracking.com/tag.js?v=2.3.5 Moneris
tagstracking.com/tag.js?v=2.3.6 Authorize.Net
tagstracking.com/tag.js?v=2.3.8 PayPal

Renifleur de mot de passe

L'un des avantages des renifleurs JavaScript qui fonctionnent côté client d'un site Web est sa polyvalence : un code malveillant intégré à un site Web peut voler tout type de données, qu'il s'agisse d'informations de paiement ou d'un identifiant et d'un mot de passe d'un compte utilisateur. Les spécialistes de Group-IB ont découvert un échantillon d'un sniffer appartenant à la famille ReactGet, conçu pour voler les adresses e-mail et les mots de passe des utilisateurs du site.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Intersection avec le renifleur ImageID

Lors de l'analyse de l'un des magasins infectés, il a été constaté que son site Web avait été infecté deux fois : en plus du code malveillant du renifleur de la famille ReactGet, le code du renifleur de la famille ImageID a été trouvé. Ce chevauchement pourrait être la preuve que les opérateurs derrière les deux renifleurs utilisent des techniques similaires pour injecter du code malveillant.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Renifleur universel

Lors d'une analyse de l'un des noms de domaine liés à l'infrastructure de renifleur ReactGet, il a été constaté que le même utilisateur avait enregistré trois autres noms de domaine. Ces trois domaines imitaient les domaines de sites réels et étaient auparavant utilisés pour héberger des renifleurs. Lors de l'analyse du code de trois sites légitimes, un renifleur inconnu a été trouvé et une analyse plus approfondie a montré qu'il s'agissait d'une version améliorée du renifleur ReactGet. Toutes les versions précédemment suivies de cette famille de renifleurs visaient un système de paiement unique, ce qui signifie que chaque système de paiement nécessitait une version spécifique du renifleur. Cependant, dans ce cas, une version universelle du renifleur a été découverte, capable de voler des informations à partir de formulaires liés à 15 systèmes de paiement différents et modules de sites de commerce électronique pour les paiements en ligne.

Ainsi, au début des travaux, le sniffer a recherché des champs de formulaire de base contenant les informations personnelles de la victime : nom complet, adresse physique, numéro de téléphone.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Le renifleur a ensuite recherché plus de 15 préfixes différents correspondant à différents systèmes de paiement et modules pour les paiements en ligne.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Ensuite, les données personnelles et les informations de paiement de la victime ont été rassemblées et envoyées à un site contrôlé par l'attaquant : dans ce cas particulier, deux versions du sniffer universel ReactGet ont été trouvées situées sur deux sites piratés différents. Cependant, les deux versions ont envoyé les données volées au même site piraté. zoobashop.com.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Une analyse des préfixes utilisés par le renifleur pour trouver les champs contenant les informations de paiement de la victime a déterminé que cet échantillon de renifleur ciblait les systèmes de paiement suivants :

  • Authorize.Net
  • Verisign
  • Première donnée
  • USAePay
  • Stripe
  • PayPal
  • Porte électronique ANZ
  • Braintree
  • Espèces de données (MasterCard)
  • Paiements Realex
  • PsiGate
  • Systèmes de paiement Heartland

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

Le premier outil découvert lors de l'analyse de l'infrastructure des attaquants sert à obscurcir les scripts malveillants responsables du vol de cartes bancaires. Un script bash utilisant la CLI du projet a été trouvé sur l'un des hôtes des attaquants. javascript-obfuscateur pour automatiser l'obscurcissement du code renifleur.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Le deuxième outil découvert est conçu pour générer le code responsable du chargement du renifleur principal. Cet outil génère un code JavaScript qui vérifie si l'utilisateur est sur la page de paiement en recherchant l'adresse actuelle de l'utilisateur pour les chaînes caisse, panier et ainsi de suite, et si le résultat est positif, alors le code charge le renifleur principal depuis le serveur de l'intrus. Pour masquer les activités malveillantes, toutes les lignes, y compris les lignes de test pour déterminer la page de paiement, ainsi qu'un lien vers le renifleur, sont codées à l'aide de base64.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Attaques de phishing

Lors de l'analyse de l'infrastructure réseau des attaquants, il a été constaté que le groupe criminel utilise souvent le phishing pour accéder au panneau d'administration de la boutique en ligne cible. Les attaquants enregistrent un domaine qui ressemble à un domaine de magasin, puis déploient un faux formulaire de connexion administrateur Magento dessus. En cas de succès, les attaquants auront accès au panneau d'administration de Magento CMS, ce qui leur donne la possibilité de modifier les composants du site et d'implémenter un renifleur pour voler les données de carte de crédit.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Infrastructure

Nom de domaine Date de découverte/apparition
mediapack.info 04.05.2017
annoncesgetapi.com 15.06.2017
simcounter.com 14.08.2017
mageanalytics.com 22.12.2017
maxstatics.com 16.01.2018
réagirjsapi.com 19.01.2018
mxcounter.com 02.02.2018
apitstatus.com 01.03.2018
commanderacker.com 20.04.2018
tagtracking.com 25.06.2018
annoncesapigate.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
payselecteur.com 21.10.2018
tagsmediaget.com 02.11.2018
hs-paiements.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

Famille G-Analytics

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

Dans la campagne actuelle, le groupe utilise des noms de domaine qui imitent des services réels tels que Google Analytics et jQuery, masquant l'activité de renifleur avec des scripts légitimes et des noms de domaine d'apparence légitime. Des sites Web fonctionnant sous le CMS Magento ont été attaqués.

Comment G-Analytics est implémenté dans le code de la boutique en ligne

Une caractéristique distinctive de cette famille est l'utilisation de diverses méthodes de vol des informations de paiement des utilisateurs. En plus de l'injection JavaScript classique côté client du site, le groupe criminel a également utilisé la technique d'injection de code côté serveur du site, à savoir des scripts PHP qui traitent les entrées des utilisateurs. Cette technique est dangereuse car elle rend difficile la détection de code malveillant par des chercheurs tiers. Les spécialistes de Group-IB ont découvert une version du renifleur embarquée dans le code PHP du site, utilisant le domaine comme portail dittm.org.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Une première version d'un renifleur a également été découverte qui utilise le même domaine pour collecter des données volées. dittm.org, mais cette version est déjà destinée à être installée côté client de la boutique en ligne.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Plus tard, le groupe a changé de tactique et a commencé à accorder plus d'attention à la dissimulation des activités malveillantes et au camouflage.

Début 2017, le groupe a commencé à utiliser le domaine jquery-js.comse faisant passer pour CDN pour jQuery : redirige l'utilisateur vers un site légitime lorsqu'il se rend sur un site malveillant jquery.com.

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

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Analyse des versions

Lors de l'analyse des domaines utilisés pour stocker le code renifleur, il a été constaté que le site a un grand nombre de versions qui diffèrent par la présence d'obfuscation, ainsi que la présence ou l'absence de code inaccessible ajouté au fichier pour détourner l'attention. et masquer le code malveillant.

Total sur le site jquery-js.com six versions de renifleurs ont été identifiées. Ces renifleurs envoient les données volées à une adresse située sur le même site que le renifleur 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

Domaine ultérieur g-analytics.com, utilisé par le groupe dans les attaques depuis mi-2018, sert de référentiel pour plus de renifleurs. Au total, 16 versions différentes du renifleur ont été découvertes. Dans ce cas, la porte d'envoi des données volées était déguisée en 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 souterrain spécialement créé qui fournit des services aux cardeurs. Une 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 fait référence à Cardsurfs (Flysurfs), un magasin vendant des cartes bancaires volées, qui a gagné en popularité pendant le marché souterrain AlphaBay en tant que magasin vendant des cartes bancaires volées à l'aide d'un renifleur.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Analyse du domaine analytique.est, situé sur le même serveur que les domaines utilisés par les sniffers pour collecter les données volées, les spécialistes de Group-IB ont découvert un fichier contenant les journaux des voleurs de cookies, qui, semble-t-il, a ensuite été abandonné par le développeur. L'une des entrées du journal contenait un domaine iozoz.com, qui était auparavant utilisé dans l'un des renifleurs actifs en 2016. Vraisemblablement, ce domaine était auparavant utilisé par un attaquant pour collecter des cartes volées à l'aide d'un renifleur. Ce domaine a été enregistré sur une adresse e-mail [email protected], qui a également été utilisé pour enregistrer des domaines cardz.su и cardz.vclié à la boutique de cartes Cardsurfs.

Sur la base des données obtenues, on peut supposer que la famille de renifleurs G-Analytics et le magasin de cartes bancaires souterrain Cardsurfs sont gérés par les mêmes personnes, et que le magasin est utilisé pour vendre des cartes bancaires volées à l'aide d'un renifleur.

Infrastructure

Nom de domaine Date de découverte/apparition
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
analytique.à 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
analytique.est 28.12.2018
googlelc-analytics.cm 17.01.2019

Famille Illum

Illum est une famille de renifleurs utilisée pour attaquer les magasins en ligne exécutant Magento CMS. En plus de l'introduction de code malveillant, les opérateurs de ce renifleur utilisent également l'introduction de faux formulaires de paiement à part entière qui envoient des données à des portails contrôlés par des attaquants.

Lors de l'analyse de l'infrastructure réseau utilisée par les opérateurs de ce renifleur, un grand nombre de scripts malveillants, d'exploits, de faux formulaires de paiement ont été notés, ainsi qu'une collection d'exemples avec des concurrents de renifleurs malveillants. Sur la base des informations sur les dates d'apparition des noms de domaine utilisés par le groupe, on peut supposer que le début de la campagne tombe fin 2016.

Comment Illum est implémenté dans le code d'une boutique en ligne

Les premières versions découvertes du renifleur étaient intégrées directement dans le code du site compromis. Les données volées ont été envoyées à cdn.illum[.]pw/records.php, la porte a été codée en utilisant base64.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Plus tard, une version packagée du renifleur a été découverte en utilisant une porte différente - records.nstatistics[.]com/records.php.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
selon rapport Willem de Groot, le même hôte a été utilisé dans le renifleur qui a été implémenté sur site magasin, propriété du parti politique allemand CSU.

Analyse du site d'attaque

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

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Parmi les outils trouvés sur le serveur de l'attaquant figuraient des scripts et des exploits pour l'élévation des privilèges dans le système d'exploitation Linux : par exemple, Linux Privilege Escalation Check Script, développé par Mike Czumak, ainsi qu'un exploit pour CVE-2009-1185.

Les attaquants ont utilisé directement deux exploits pour attaquer les boutiques en ligne : premier capable d'injecter du code malveillant dans core_config_data en exploitant CVE-2016-4010, deuxième exploite une vulnérabilité de type RCE dans les plugins pour CMS Magento, permettant l'exécution de code arbitraire sur un serveur web vulnérable.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
De plus, lors de l'analyse du serveur, divers échantillons de renifleurs et de faux formulaires de paiement ont été trouvés, utilisés par des attaquants pour collecter des informations de paiement à partir de sites piratés. Comme vous pouvez 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_standard.js и segapay_onpage.js conçu pour être intégré sur des sites utilisant la passerelle de paiement Sage Pay.

Liste des scripts pour différentes passerelles de paiement

Scénario Passerelle de paiement
sr.illum[.]pw/mjs_special/visiondirect.co.uk.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/topdirenshop.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_standard.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_standard.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 //paiementmaintenant[.]tk/?paiement=

Hôte paiementmaintenant[.]tk, utilisé comme porte dans un script paiement_forminsite.js, a été découvert comme sujetAltName dans plusieurs certificats liés au service CloudFlare. De plus, le script se trouvait sur l'hôte mal.js. A en juger par le nom du script, il aurait pu être utilisé dans le cadre de l'exploitation de CVE-2016-4010, grâce à laquelle il est possible d'injecter du code malveillant dans le footer d'un site exécutant le CMS Magento. Ce script a utilisé l'hôte comme porte request.requestnet[.]tk, en utilisant le même certificat que l'hôte paiementmaintenant[.]tk.

Faux formulaires de paiement

La figure ci-dessous montre un exemple de formulaire de saisie des données de la carte. Ce formulaire a été utilisé pour infiltrer un site Web de boutique en ligne et voler des données de carte.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
La figure suivante est un exemple d'un faux formulaire de paiement PayPal qui a été utilisé par des attaquants pour infiltrer des sites utilisant ce mode de paiement.
Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Infrastructure

Nom de domaine Date de découverte/apparition
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
demande.payrightnow.cf 25/05/2018
paiementmaintenant.tk 16/07/2017
ligne-de-paiement.tk 01/03/2018
paiementpal.cf 04/09/2017
demandenet.tk 28/06/2017

Famille CoffeeMokko

La famille de renifleurs CoffeMokko conçue pour voler les cartes bancaires des utilisateurs de boutiques en ligne est utilisée depuis au moins mai 2017. Vraisemblablement, le groupe criminel du groupe 1 décrit par les experts de RiskIQ en 2016 est l'opérateur de cette famille de renifleurs. Des sites Web exécutant des CMS tels que Magento, OpenCart, WordPress, osCommerce, Shopify ont été attaqués.

Comment CoffeMokko est implémenté dans le code d'une boutique en ligne

Les opérateurs de cette famille créent des renifleurs uniques pour chaque infection : le fichier renifleur se trouve dans le répertoire src ou js sur le serveur de l'attaquant. L'implémentation dans le code du site s'effectue par un lien direct vers le sniffer.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Le code renifleur code en dur les noms des champs de formulaire à partir desquels vous souhaitez voler des données. Le renifleur vérifie également si l'utilisateur est sur la page de paiement en vérifiant la liste des mots-clés par rapport à l'adresse actuelle de l'utilisateur.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Certaines versions découvertes du renifleur étaient obscurcies et contenaient une chaîne cryptée qui stockait le tableau principal des ressources : elle contenait les noms des champs de formulaire pour divers systèmes de paiement, ainsi que l'adresse de la porte à laquelle les données volées devaient être envoyées.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Les informations de paiement volées ont été envoyées à un script sur le serveur des attaquants en cours de route. /savePayment/index.php ou /tr/index.php. Vraisemblablement, ce script est utilisé pour envoyer des données de la porte au serveur principal, qui consolide les données de tous les renifleurs. Pour masquer les données transmises, toutes les informations de paiement de la victime sont encodées à l'aide base64, puis plusieurs substitutions de caractères se produisent :

  • le caractère "e" est remplacé par ":"
  • le symbole "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 symbole "7" est remplacé par "^"
  • le caractère "h" est remplacé par "_"
  • le symbole "T" est remplacé par "@"
  • le caractère "0" est remplacé par "/"
  • le caractère "Y" est remplacé par "*"

À la suite de substitutions de caractères encodés avec base64 les données ne peuvent pas être décodées sans transformation inverse.

Voici à quoi ressemble un fragment du code renifleur qui n'a pas été obscurci :

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Analyse des infrastructures

Lors des premières campagnes, les attaquants enregistraient des noms de domaine similaires à ceux de sites d'achat en ligne légitimes. Leur domaine pourrait différer du légitime par un caractère ou un autre TLD. Les domaines enregistrés ont été utilisés pour stocker le code renifleur, dont le lien était intégré dans le code du magasin.

Ce groupe a également utilisé des noms de domaine rappelant les plugins jQuery populaires (slickjs[.]org pour les sites utilisant le plugin slick.js), Passerelles de paiement (sagecdn[.]org pour les sites utilisant le système de paiement Sage Pay).

Plus tard, le groupe a commencé à créer des domaines dont le nom n'avait rien à voir avec le domaine du magasin ou le thème du magasin.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Chaque domaine correspondait au site sur lequel l'annuaire a été créé /js ou / src. Les scripts renifleurs étaient stockés dans ce répertoire : un renifleur pour chaque nouvelle infection. Le renifleur a été introduit dans le code du site via un lien direct, mais dans de rares cas, les attaquants ont modifié l'un des fichiers du site et y ont ajouté du code malveillant.

Analyse de code

Premier algorithme d'obscurcissement

Dans certains échantillons de renifleurs de cette famille, le code était obscurci et contenait des données cryptées nécessaires au fonctionnement du renifleur : en particulier, l'adresse de la porte du renifleur, une liste de champs de formulaire de paiement et, dans certains cas, un faux code de formulaire de paiement. Dans le code à l'intérieur de la fonction, les ressources ont été chiffrées avec GRATUIT par la clé qui a été passée en argument à la même fonction.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
En déchiffrant la chaîne avec la clé correspondante, unique pour chaque échantillon, vous pouvez obtenir une chaîne contenant toutes les lignes du code renifleur séparées par un caractère délimiteur.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Deuxième algorithme d'obscurcissement

Dans les échantillons ultérieurs de cette famille de renifleurs, un mécanisme d'obscurcissement différent a été utilisé : dans ce cas, les données ont été chiffrées à l'aide d'un algorithme auto-écrit. Une chaîne contenant des données chiffrées nécessaires au fonctionnement du renifleur a été transmise en tant qu'argument à la fonction de déchiffrement.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
À l'aide de la console du navigateur, vous pouvez déchiffrer les données chiffrées et obtenir un tableau contenant les ressources du renifleur.

Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne

Lien vers les premières attaques MageCart

Dans une analyse de l'un des domaines utilisés par le groupe comme portail pour collecter des données volées, il a été constaté que l'infrastructure de vol de cartes de crédit était déployée sur ce domaine, identique à celle utilisée par le groupe 1, l'un des premiers groupes, découvert Spécialistes de RiskIQ.

Deux fichiers ont été trouvés sur l'hébergeur de la famille de renifleurs CoffeMokko :

  • mage.js — fichier contenant le code de renifleur du groupe 1 avec l'adresse de la porte js-cdn.lien
  • mag.php - Script PHP chargé de collecter les données volées par le sniffer

Le contenu du fichier mage.js Quatre renifleurs JavaScript qui vous attendent dans les boutiques en ligne
Il a également été déterminé que les premiers domaines utilisés par le groupe à l'origine de la famille de renifleurs CoffeMokko ont été enregistrés le 17 mai 2017 :

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

Le format de ces noms de domaine est le même que celui des noms de domaine du groupe 1 qui ont été 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 de renifleurs CoffeMokko et le groupe criminel du groupe 1. Vraisemblablement, les opérateurs de CoffeMokko ont peut-être emprunté des outils et des logiciels pour voler des cartes à leurs prédécesseurs. Cependant, il est plus probable que le groupe criminel à l'origine de l'utilisation des renifleurs familiaux CoffeMokko soit les mêmes personnes qui ont perpétré 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 les noms de domaine ont été bloqués et les outils ont été étudiés en détail et décrits. Le groupe a été contraint de faire une pause, d'affiner ses outils internes et de réécrire le code du renifleur afin de poursuivre ses attaques et de rester inaperçu.

Infrastructure

Nom de domaine Date de découverte/apparition
lien-js.link 17.05.2017
info-js.link 17.05.2017
track-js.link 17.05.2017
map-js.lien 17.05.2017
smart-js.lien 17.05.2017
adorebeauty.org 03.09.2017
sécurité-paiement.su 03.09.2017
braincdn.org 04.09.2017
sagecdn.org 04.09.2017
slickjs.org 04.09.2017
www.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
boutique-rnib.org 15.11.2017
placardlondon.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
remplacermyremote.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
parcs.su 09.01.2018
pmtonline.su 12.01.2018
otocap.org 15.01.2018
christohperward.org 27.01.2018
coffeetea.org 31.01.2018
énergiecoffe.org 31.01.2018
énergietea.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
poussinsaddlery.net 16.04.2018
paypaypay.org 11.05.2018
ar500arnor.com 26.05.2018
autorisecdn.com 28.05.2018
slickmin.com 28.05.2018
bannièrebuzz.info 03.06.2018
kandypens.net 08.06.2018
mylrendyphone.com 15.06.2018
fraischat.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
fraisdepor.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

Ajouter un commentaire