Vier JavaScript-sniffers die je opwachten in online winkels

Vier JavaScript-sniffers die je opwachten in online winkels

Bijna iedereen van ons maakt gebruik van online winkels, en dat betekent dat we vroeg of laat het risico lopen slachtoffer te worden van JavaScript-sniffers — speciale code die kwaadwillenden op een site injecteren om gegevens van creditcards, adressen, gebruikersnamen en wachtwoorden te stelen.

Bijna 400.000 gebruikers van de website en mobiele applicatie van British Airways zijn al slachtoffer geworden van deze sniffers, evenals bezoekers van de Britse website van sportgigant FILA en de Amerikaanse ticketdistributeur Ticketmaster. Betalingssystemen zoals PayPal, Chase Paymenttech, USAePay en Moneris zijn ook geïnfecteerd.

Analist bij Threat Intelligence Group-IB Viktor Okorokov vertelt hoe sniffers in de code van een website worden geïnjecteerd om betalingsinformatie te stelen en over welke CRM-systemen ze zich richten.

Vier JavaScript-sniffers die je opwachten in online winkels

„Verborgen bedreiging“

Het is zo gegaan dat JS-sniffers lange tijd onder de radar van antivirusanalisten zijn gebleven, terwijl banken en betalingssystemen ze niet als een ernstige dreiging beschouwden. En dat is volkomen onterecht. Experts van Group-IB hebben geanalyseerd 2440 geïnfecteerde online winkels, waarvan de bezoekers — in totaal ongeveer 1,5 miljoen mensen per dag — het risico liepen op compromittering. Onder de slachtoffers bevinden zich niet alleen gebruikers, maar ook online winkels, betalingssystemen en banken die gecompromitteerde kaarten hebben uitgegeven.

Rapport Group-IB was de eerste studie naar de darknet-markt van sniffers, hun infrastructuur en de monetisatie-methoden die hun makers miljoenen dollars opleveren. We hebben 38 families van sniffers ontdekt, waarvan er slechts 12 eerder bekend waren bij onderzoekers.

Laten we gedetailleerd stilstaan bij vier families van sniffers die tijdens het onderzoek zijn bestudeerd.

Familie ReactGet

Sniffers van de ReactGet-familie worden gebruikt voor het stelen van creditcardgegevens op online winkels. Een sniffer kan werken met een groot aantal verschillende betaalsystemen die op de site worden gebruikt: één waarde van de parameter komt overeen met één betaalsysteem, terwijl afzonderlijke ontdekte versies van de sniffer kunnen worden gebruikt voor het stelen van inloggegevens, evenals voor het stelen van creditcardgegevens uit betalingsformulieren van meerdere betaalsystemen tegelijk, zoals de zogenaamde universele sniffer. Het is vastgesteld dat aanvallers in sommige gevallen phishing-aanvallen uitvoeren op beheerders van online winkels om toegang te krijgen tot het beheerpaneel van de site.

De campagne met dit soort sniffers begon in mei 2017, waarbij sites onder beheer van CMS en platformen zoals Magento, Bigcommerce, Shopify werden aangevallen.

Hoe ReactGet in de code van een online winkel wordt opgenomen

Naast de ‘klassieke’ manier van het inbedden van een script via een link, maken de operators van sniffers uit de ReactGet-familie gebruik van een speciale techniek: met behulp van JavaScript-code wordt gecontroleerd of het huidige adres waar de gebruiker zich bevindt aan bepaalde criteria voldoet. De malware code wordt alleen uitgevoerd als de huidige URL een substring bevat. checkout of onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Op deze manier wordt de sniffercode uitgevoerd op het moment dat de gebruiker naar de kassa gaat en betaling informatie in het formulier op de site invoert.

Vier JavaScript-sniffers die je opwachten in online winkels
Deze sniffer gebruikt een ongewone techniek. De betalings- en persoonlijke gegevens van het slachtoffer worden samen verzameld, gecodeerd met behulp van base64, en de verkregen string wordt vervolgens als parameter gebruikt voor het verzenden van een verzoek naar de site van de aanvallers. Meestal imiteert het pad naar de gateway een JavaScript-bestand, bijvoorbeeld resp.js, data.js en dergelijke, maar ook links naar afbeeldingsbestanden worden gebruikt. GIF en JPG. Het bijzondere is dat de sniffer een afbeeldingsobject van 1 bij 1 pixel creëert en de eerder verkregen link als parameter gebruikt. src afbeeldingen. Dit betekent dat zo'n verzoek in het verkeer voor de gebruiker eruit zal zien als een verzoek om een gewone afbeelding. Een soortgelijke techniek werd gebruikt in de sniffers van het ImageID-familie. Bovendien wordt de techniek met een afbeelding van 1 bij 1 pixel in veel legitieme online-analysetools toegepast, wat de gebruiker ook kan misleiden.

Vier JavaScript-sniffers die je opwachten in online winkels

Versie-analyse

Analyse van actieve domeinen die door ReactGet-sniffers worden gebruikt, heeft veel verschillende versies van deze familie sniffers aan het licht gebracht. De versies verschillen in de aanwezigheid of afwezigheid van obfuscatie, en bovendien is elke sniffer bedoeld voor een specifiek betalingssysteem dat betalingen met creditcards voor online winkels verwerkt. Door de waarde van de parameter die overeenkomt met het versienummer door te nemen, heeft het Group-IB-team een volledige lijst van beschikbare variaties van sniffers verkregen, en door de veldnamen van formulieren die elke sniffer in de paginacode zoekt, zijn de betalingssysteemdoelen van de sniffer bepaald.

Lijst van sniffers en de bijbehorende betalingssysteem

URL van de snifferBetaalsysteem
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

Wachtwoord sniffer

Een van de voordelen van JavaScript-sniffers die aan de clientzijde van de site werken, is de veelzijdigheid: de ingebedde schadelijke code is in staat om gegevens van elk type te stelen, of het nu gaat om betalingsgegevens of de gebruikersnaam en wachtwoord van een gebruikersaccount. Specialisten van Group-IB hebben een monster van een sniffer ontdekt die behoort tot de ReactGet-familie, ontworpen om e-mailadressen en wachtwoorden van gebruikers van de site te stelen.

Vier JavaScript-sniffers die je opwachten in online winkels

Overlap met de ImageID-sniffer

Tijdens de analyse van een van de geïnfecteerde winkels werd vastgesteld dat de website twee keer was geïnfecteerd: naast de schadelijke code van de ReactGet-sniffer werd ook code van de ImageID-sniffer aangetroffen. Deze overlap kan een aanwijzing zijn dat de operators achter het gebruik van beide sniffers vergelijkbare technieken gebruiken om schadelijke code in te voeren.

Vier JavaScript-sniffers die je opwachten in online winkels

Universele sniffer

Tijdens de analyse van een van de domeinnamen die gerelateerd zijn aan de infrastructuur van de ReactGet-sniffers, werd vastgesteld dat dezelfde gebruiker drie andere domeinnamen had geregistreerd. Deze drie domeinen imiteerden domeinen van daadwerkelijk bestaande websites en werden eerder gebruikt voor het hosten van sniffers. Bij de analyse van de code van de drie legitieme websites werd een onbekende sniffer ontdekt, en verdere analyse toonde aan dat dit een geavanceerde versie was van de ReactGet-sniffer. Alle eerder getrackte versies van sniffers uit deze familie waren gericht op één specifieke betalingsmethode, wat betekende dat voor elke betalingsmethode een speciale versie van de sniffer nodig was. In dit geval werd echter een universele versie van de sniffer ontdekt die in staat was om gegevens te stelen uit formulieren gerelateerd aan 15 verschillende betalingssystemen en e-commerce-modules voor het uitvoeren van online betalingen.

In het begin zocht de sniffer naar basisformuliervelden die persoonlijke informatie van het slachtoffer bevatten: volledige naam, fysiek adres, telefoonnummer.

Vier JavaScript-sniffers die je opwachten in online winkels
Vervolgens zocht de sniffer naar meer dan 15 verschillende prefixen die corresponderen met verschillende betalingssystemen en modules voor online betalingen.

Vier JavaScript-sniffers die je opwachten in online winkels
Daarna werden de persoonlijke gegevens van het slachtoffer en de betalingsinformatie samengevoegd en verzonden naar een door de aanvaller gecontroleerde website: in dit specifieke geval werden twee versies van de universele ReactGet-sniffer aangetroffen op twee verschillende gehackte websites. Beide versies verzonden echter de gestolen gegevens naar dezelfde gehackte website. zoobashop.com.

Vier JavaScript-sniffers die je opwachten in online winkels
De analyse van de prefixen die door de sniffer werden gebruikt voor het zoeken naar velden met betalingsinformatie van het slachtoffer, maakte het mogelijk om vast te stellen dat dit monster van de sniffer gericht was op de volgende betalingssystemen:

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

Welke hulpmiddelen worden gebruikt voor het stelen van betalingsinformatie

Het eerste hulpmiddel dat werd ontdekt tijdens de analyse van de infrastructuur van de aanvallers, is bedoeld voor het obfusceren van kwaadaardige scripts die verantwoordelijk zijn voor het stelen van bankkaarten. Op een van de hosts van de aanvallers werd een bash-script aangetroffen dat gebruikmaakt van de CLI van het project javascript-obfuscator voor de automatisering van de obfuscering van de code van de sniffers.

Vier JavaScript-sniffers die je opwachten in online winkels
De tweede ontdekte tool is bedoeld voor het genereren van de code die verantwoordelijk is voor het laden van de hoofd-sniffer. Deze tool genereert JavaScript-code die controleert of de gebruiker zich op de betalingspagina bevindt door te zoeken naar specifieke teksten in het huidige adres van de gebruiker, checkout, winkelwagentje en zo verder, en als het resultaat positief is, laadt de code de hoofd-sniffer vanaf de servers van de aanvallers. Om schadelijke activiteiten te verbergen, zijn alle teksten, inclusief testteksten om de betalingspagina te identificeren, evenals de link naar de sniffer, gecodeerd met behulp van base64.

Vier JavaScript-sniffers die je opwachten in online winkels

Phishingaanvallen

Tijdens de analyse van de netwerkstructuur van de aanvallers werd vastgesteld dat ze vaak phishing gebruiken om toegang te krijgen tot het beheerderspaneel van de doelgerichte online winkel. De aanvallers registreren een domein dat visueel lijkt op het domein van de winkel, en zetten vervolgens een vervalste inlogpagina voor het Magento beheerderspaneel op. Bij een succesvolle aanval krijgen de aanvallers toegang tot het CMS Magento-beheerderspaneel, wat hen in staat stelt om de componenten van de site te bewerken en een sniffer te integreren om kredietkaartgegevens te stelen.

Vier JavaScript-sniffers die je opwachten in online winkels
Infrastructuur

DomeinDatum van ontdekking/v verschijning
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

Familie G-Analytics

Deze familie van sniffers wordt gebruikt om de kaarten van klanten van online winkels te stelen. De allereerste domeinnaam die door de groep werd geregistreerd, dateert uit april 2016, wat kan wijzen op het begin van de activiteiten van de groep in het midden van 2016.

In de huidige campagne gebruikt de groep domeinnamen die echte diensten imiteren, zoals Google Analytics en jQuery, waardoor de activiteiten van de sniffers worden gemaskeerd door legitieme scripts en domeinnamen die op legitieme lijken. Websites die draaien op CMS Magento zijn aangevallen.

Hoe G-Analytics wordt geïntegreerd in de code van de online winkel

Kenmerkend voor deze familie is het gebruik van verschillende methoden om de betaalinformatie van de gebruiker te stelen. Naast de klassieke injectie van JavaScript-code in de clientzijde van de website, maakte de criminele groep ook gebruik van de techniek van code-injectie in de serverzijde van de website, met name PHP-scripts die de door de gebruiker ingevoerde gegevens verwerken. Deze techniek is gevaarlijk omdat het de detectie van kwaadaardige code door externe onderzoekers bemoeilijkt. Specialisten van Group-IB ontdekten een versie van de sniffer die in de PHP-code van de website was geïnjecteerd, en die als gateway de domein dittm.org.

Vier JavaScript-sniffers die je opwachten in online winkels
ook werd een vroegere versie van de sniffer gevonden, die voor het verzamelen van gestolen gegevens dezelfde domein gebruikte dittm.org, maar deze versie is bedoeld voor installatie aan de clientzijde van de online winkel.

Vier JavaScript-sniffers die je opwachten in online winkels
Later veranderde de groep zijn tactiek en begon meer aandacht te besteden aan het verbergen van kwaadaardige activiteiten en camouflage.

Begin 2017 begon de groep het domein jquery-js.com, dat zich voordoet als een CDN voor jQuery: wanneer gebruikers de site van de misdadigers bezoeken, worden ze omgeleid naar de legitieme site jquery.com.

En halfweg 2018 nam de groep de domeinnaam g-analytics.com aan en begon de activiteiten van de sniffer te camoufleren onder de legitieme service van Google Analytics.

Vier JavaScript-sniffers die je opwachten in online winkels
Vier JavaScript-sniffers die je opwachten in online winkels

Versie-analyse

Bij de analyse van domeinen die werden gebruikt om sniffer-code op te slaan, bleek dat de site een groot aantal versies herbergde, die varieerden op basis van aanwezigheid van obfuscatie, evenals de aanwezigheid of afwezigheid van onbereikbare code die aan het bestand was toegevoegd om af te leiden en kwaadaardige code te verbergen.

In totaal zijn er op de site jquery-js.com zes versies van sniffer aangetroffen. De gestolen gegevens van deze sniffers worden verzonden naar een adres dat zich op dezelfde site bevindt als de sniffer zelf: 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

Een latere domein g-analytics.com, gebruikt door de groep in aanvallen sinds midden 2018, dient als opslagplaats voor een groter aantal sniffers. In totaal zijn er 16 verschillende versies van de sniffer ontdekt. In dit geval was de gateway voor het verzenden van gestolen gegevens gecamoufleerd als een link naar een afbeelding in formaat 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

Monetisatie van gestolen gegevens

De criminele groep maakt gebruik van de gestolen gegevens door kaarten te verkopen via een speciaal opgerichte ondergrondse winkel die diensten verleent aan carders. Analyse van de domeinen die door de aanvallers worden gebruikt, heeft het mogelijk gemaakt om vast te stellen dat google-analytics.cm werd geregistreerd door dezelfde gebruiker als het domein cardz.vc. Domein cardz.vc verwijst naar de winkel voor gestolen bankkaarten Cardsurfs (Flysurfs), die populair werd in de tijd dat de ondergrondse marktplaats AlphaBay actief was als een winkel voor de verkoop van bankkaarten die met een sniffer waren gestolen.

Vier JavaScript-sniffers die je opwachten in online winkels
Bij het analyseren van het domein analytic.is, gelegen op dezelfde server als de domeinen die door sniffers worden gebruikt om gestolen gegevens te verzamelen, ontdekten specialisten van Group-IB een bestand dat logboeken van een Cookie-stiller bevatte, dat blijkbaar later door de ontwikkelaar was verlaten. Een van de vermeldingen in het logboek bevatte het domein iozoz.com, dat eerder was gebruikt in een van de sniffers die actief waren in 2016. Het wordt verondersteld dat dit domein eerder door de aanvaller werd gebruikt om gestolen kaarten met een sniffer te verzamelen. Dit domein was geregistreerd op het e-mailadres kts241@gmail.com, dat ook was gebruikt voor de registratie van de domeinen cardz.su en cardz.vc, die verband houden met de carding-winkel Cardsurfs.

Op basis van de verkregen gegevens kan men veronderstellen dat de snifferfamilie G-Analytics en de ondergrondse winkel voor de verkoop van bankkaarten Cardsurfs door dezelfde personen worden beheerd, en dat de winkel wordt gebruikt voor de verkoop van bankkaarten die met een sniffer zijn gestolen.

Infrastructuur

DomeinDatum van ontdekking/v verschijning
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

Familie Illum

Illum is een familie van sniffers die wordt gebruikt voor aanvallen op online winkels die draaien op het CMS Magento. Naast het injecteren van kwaadaardige code gebruiken de operators van deze sniffer ook volledige valse betaalformulieren die gegevens naar door de aanvaller gecontroleerde gateways sturen.

Bij het analyseren van de netwerkstructuur die door de operators van deze sniffer wordt gebruikt, werd een groot aantal kwaadaardige scripts, exploits, valse betalingsformulieren en een verzameling voorbeelden van kwaadaardige concurrent-sniffers opgemerkt. Op basis van de informatie over de data waarop de domeinnamen die door de groep worden gebruikt, verschenen, kan worden aangenomen dat het begin van de campagne rond het einde van 2016 ligt.

Hoe Illum wordt geïmplementeerd in de code van online winkels

De eerste ontdekte versies van de sniffer werden rechtstreeks in de code van de gecompromitteerde site ingebed. De gestolen gegevens werden verzonden naar cdn.illum[.]pw/records.php, terwijl de gateway was gecodeerd met behulp van base64.

Vier JavaScript-sniffers die je opwachten in online winkels
Later, a packaged version of the sniffer was discovered using a different gate - records.nstatistics[.]com/records.php.

Vier JavaScript-sniffers die je opwachten in online winkels
Volgens report Willem de Groot, the same host was used in the sniffer that was deployed on the store's website, owned by the German political party CSU.

Analysis of the attackers' website

Group-IB specialists discovered and analyzed a website used by this criminal group for storing tools and collecting stolen information.

Vier JavaScript-sniffers die je opwachten in online winkels
Among the tools found on the attackers' server were scripts and exploits for privilege escalation in Linux OS: for example, the Linux Privilege Escalation Check Script, developed by Mike Czumak, as well as an exploit for CVE-2009-1185.

Specifically for attacks on online stores, the attackers used two exploits: the first is capable of injecting malicious code into core_config_data through the exploitation of CVE-2016-4010, the second exploits an RCE vulnerability in plugins for the CMS Magento, allowing arbitrary code execution on the vulnerable web server.

Vier JavaScript-sniffers die je opwachten in online winkels
Also, during the server analysis, various samples of sniffers and fake payment forms used by the attackers to collect payment information from compromised sites were found. As noted in the list below, some scripts were created individually for each compromised site, while a universal solution was used for certain CMS and payment gateways. For example, the scripts segapay_standart.js en segapay_onpage.js are intended for injection into websites using the Sage Pay payment gateway.

List of scripts for various payment gateways

ScriptPayment gateway
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=

Host paymentnow[.]tk, used as a gate in the script payment_forminsite.js, was discovered as subjectAltName in several certificates related to the CloudFlare service. In addition, a script evil.js. Based on the script's name, it could have been used in the exploitation of CVE-2016-4010, allowing malicious code to be injected into the footer of a website running CMS Magento. As a gate, this script was used by the host request.requestnet[.]tk, which uses the same certificate as the host paymentnow[.]tk.

Fake payment forms

Below is an example of a card data entry form. This form was used to inject into the online store's website and steal card data.

Vier JavaScript-sniffers die je opwachten in online winkels
In de volgende afbeelding is een voorbeeld van een valse betalingsformulier van PayPal te zien, die door kwaadwillenden is gebruikt om zich op websites met deze betaalmethode te infiltreren.
Vier JavaScript-sniffers die je opwachten in online winkels
Infrastructuur

DomeinDatum van ontdekking/v verschijning
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-familie

De CoffeMokko-sniffers, die zijn ontworpen voor het stelen van bankkaartgegevens van gebruikers van webwinkels, worden sinds mei 2017 minimaal gebruikt. Naar verluidt zijn de operators van deze snifferfamilie een criminele groep genaamd Group 1, die in 2016 door RiskIQ-specialisten is beschreven. Aanvallen hebben zich gericht op sites die worden beheerd door CMS zoals Magento, OpenCart, WordPress, osCommerce, Shopify.

Hoe CoffeMokko in de code van online winkels wordt geïnjecteerd

De operators van deze familie creëren unieke sniffers voor elke infectie: het snifferbestand bevindt zich in de directory src of js op de servers van de aanvallers. De injectie in de websitecode gebeurt via een directe link naar de sniffer.

Vier JavaScript-sniffers die je opwachten in online winkels
In de code van de sniffer zijn de veldnamen van het formulier die moeten worden gestolen, hard gecodeerd. Ook controleert de sniffer of de gebruiker zich op de betalingspagina bevindt door de lijst met sleutelwoorden te vergelijken met het huidige adres van de gebruiker.

Vier JavaScript-sniffers die je opwachten in online winkels
Sommige ontdekte versies van de sniffer waren obfuscated en bevatten een versleutelde string, waarin de belangrijkste array van bronnen werd opgeslagen: hierin stonden de veldnamen voor verschillende betalingssystemen, evenals het adres van de gate waarheen de gestolen gegevens moesten worden verzonden.

Vier JavaScript-sniffers die je opwachten in online winkels
De gestolen betalingsinformatie werd naar een script op de servers van de aanvallers gestuurd via het pad /savePayment/index.php или /tr/index.php. Naar verluidt dient dit script voor het verzenden van gegevens van de gate naar de hoofdserver, die gegevens van alle sniffers consolideert. Om de verzonden gegevens te verbergen, worden alle betalingsinformatie van het slachtoffer gecodeerd met behulp van base64, waarna verschillende substituties van symbolen plaatsvinden:

  • het symbool 'e' wordt vervangen door ':'
  • het symbool 'w' wordt vervangen door '+'
  • het symbool 'o' wordt vervangen door '%'
  • het symbool 'd' wordt vervangen door '#'
  • het symbool 'a' wordt vervangen door '-'
  • het symbool '7' wordt vervangen door '^'
  • het symbool 'h' wordt vervangen door '_'
  • het symbool 'T' wordt vervangen door '@'
  • het symbool '0' wordt vervangen door '/'
  • het symbool 'Y' wordt vervangen door '*'

Als gevolg van de symboolvervanging is de gecodeerde data, verkregen met behulp van base64 onmogelijk te decoderen zonder een omgekeerde transformatie uit te voeren.

Dit is een fragment van de code van een sniffer, die niet geobfusceerd is:

Vier JavaScript-sniffers die je opwachten in online winkels

Infrastructuuranalyse

In eerdere campagnes registreerden kwaadwillenden domeinnamen die leken op de domeinen van legitieme online winkels. Hun domein kon afwijken van het legitieme enkel door één teken of een andere TLD. Geregistreerde domeinen werden gebruikt om de sniffercode op te slaan, waarvan de link werd geïntegreerd in de code van de winkel.

Deze groep gebruikte ook domeinnamen die leken op de namen van populaire jQuery-plugins (slickjs[.]org voor websites die de plugin gebruiken slick.js), betalingsgateways (sagecdn[.]org voor websites die het betalingsysteem Sage Pay gebruiken).

Later begon de groep domeinen te creëren waarvan de naam niets te maken had met het domein van de winkel of de thematiek ervan.

Vier JavaScript-sniffers die je opwachten in online winkels
Elke domein had een website, waarop een directory werd gemaakt /js of /src. In deze directory werden de scripts van de sniffers opgeslagen: één sniffer voor elke nieuwe besmetting. De sniffer werd in de code van de website geïntegreerd via een directe link, maar in zeldzame gevallen modificeerden de kwaadwillenden een van de bestanden van de website en voegden er schadelijke code aan toe.

Code-analyse

De eerste obfusceringsalgoritme

In sommige van de aangetroffen monsters van sniffers uit deze familie was de code geobfusceerd en bevatte deze versleutelde gegevens die noodzakelijk waren voor de werking van de sniffer: in het bijzonder, het adres van de sniffergateway, de lijst met velden van het betalingsformulier, en in sommige gevallen de code van het vervalste betalingsformulier. In de code binnen de functie waren de middelen versleuteld met behulp van XOR met een sleutel die als argument aan dezelfde functie werd doorgegeven.

Vier JavaScript-sniffers die je opwachten in online winkels
Door de string met de bijbehorende sleutel, uniek voor elk monster, te ontcijferen, kan je een string krijgen die alle strings uit de sniffercode bevat, gescheiden door een scheidingsteken.

Vier JavaScript-sniffers die je opwachten in online winkels

De tweede obfusceringsalgoritme

In latere monsters van deze sniffers werd een ander obfusceringsmechanisme gebruikt: in dit geval waren de gegevens versleuteld met behulp van een zelfgeschreven algoritme. De string die de versleutelde gegevens bevatte die nodig waren voor de werking van de sniffer, werd als argument van de ontcijferfunctie doorgegeven.

Vier JavaScript-sniffers die je opwachten in online winkels
Met de browserconsole kunnen de versleutelde gegevens worden ontcijferd en kan een array worden verkregen die de middelen van de sniffer bevat.

Vier JavaScript-sniffers die je opwachten in online winkels

Relatie met eerdere MageCart-aanvallen

Tijdens de analyse van een van de domeinen die door de groep werden gebruikt als poort voor het verzamelen van gestolen gegevens, werd vastgesteld dat op dit domein een infrastructuur is opgezet voor het stelen van creditcardgegevens, gelijk aan die welke werd gebruikt door Group 1 — een van de eerste groepen, gevonden door de specialisten van RiskIQ.

Op de host van de CoffeMokko-sniffers zijn twee bestanden aangetroffen:

  • mage.js — een bestand met de code van de Group 1-sniffer met het poortadres js-cdn.link
  • mag.php — een PHP-script dat verantwoordelijk is voor het verzamelen van door de sniffer gestolen gegevens

Содержимое файла mage.js Vier JavaScript-sniffers die je opwachten in online winkels
Er werd ook vastgesteld dat de vroegste domeinen die door de groep achter de CoffeMokko-sniffers werden gebruikt, zijn geregistreerd op 17 mei 2017:

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

Het formaat van deze domeinnamen komt overeen met de domeinnamen van Group 1 die werden gebruikt bij de aanvallen in 2016.

Op basis van de gevonden feiten kan worden vermoed dat er een verbinding bestaat tussen de operators van de CoffeMokko-sniffers en de criminele groep Group 1. Vermoedelijk hebben de operators van CoffeMokko tools en software voor creditcarddiefstal van hun voorgangers geleend. Het is echter waarschijnlijker dat de criminele groep achter het gebruik van de CoffeMokko-sniffers dezelfde mensen zijn die de aanvallen hebben uitgevoerd als onderdeel van de activiteiten van Group 1. Na de publicatie van het eerste rapport over de activiteiten van de criminele groep zijn al hun domeinnamen geblokkeerd en zijn de tools grondig bestudeerd en beschreven. De groep was gedwongen een pauze te nemen om hun interne tools te verbeteren en de code van de sniffers opnieuw te schrijven om hun aanvallen voort te zetten en onopgemerkt te blijven.

Infrastructuur

DomeinDatum van ontdekking/v verschijning
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

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster