Quattro sniffatori JavaScript che vi aspettano nei negozi online

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Praticamente ognuno di noi utilizza i servizi dei negozi online, il che significa che, prima o poi, rischiamo di diventare vittime di sniffatori JavaScript: un codice speciale che i malintenzionati integrano nei siti per rubare i dati delle carte di credito, indirizzi, nomi utente e password degli utenti.

Quasi 400.000 utenti del sito e dell'app mobile della compagnia aerea British Airways hanno già subito danni dagli sniffatori, così come i visitatori del sito britannico del gigante sportivo FILA e del distributore americano di biglietti Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris: questi e molti altri sistemi di pagamento sono stati compromessi.

L'analista del gruppo Threat Intelligence Group-IB, Viktor Okorokov, spiega come gli sniffatori siano integrati nel codice dei siti e come rubino le informazioni sui pagamenti, oltre a quali CRM attaccano.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

«Minaccia nascosta»

È capitato che, per lungo tempo, gli sniffatori JS siano rimasti al di fuori dell'attenzione degli analisti antivirus, e le banche e i sistemi di pagamento non li consideravano una minaccia seria. E a ragione. Gli esperti di Group-IB hanno analizzato 2.440 negozi online compromessi, i cui visitatori – per un totale di circa 1,5 milioni di persone al giorno – erano a rischio di compromissione. Tra le vittime ci sono non solo gli utenti, ma anche i negozi online, i sistemi di pagamento e le banche che hanno emesso carte compromesse.

Rapporto Group-IB è stato il primo a studiare il mercato darknet degli sniffatori, la loro infrastruttura e i metodi di monetizzazione che portano ai loro creatori milioni di dollari. Abbiamo identificato 38 famiglie di sniffatori, di cui solo 12 erano già noti ai ricercatori.

Esaminiamo in dettaglio quattro famiglie di sniffatori studiate durante la ricerca.

Famiglia ReactGet

I sniffatori della famiglia ReactGet vengono utilizzati per rubare dati di carte di credito sui siti di negozi online. Lo sniffatore può operare con un gran numero di diversi sistemi di pagamento utilizzati sul sito: un valore del parametro corrisponde a un sistema di pagamento, mentre versioni specifiche dello sniffatore possono essere utilizzate per rubare credenziali e dati di carte di credito dai moduli di pagamento di più sistemi di pagamento, come un cosiddetto sniffatore universale. È stato stabilito che, in alcuni casi, gli aggressori eseguono attacchi di phishing sui responsabili dei negozi online al fine di ottenere accesso al pannello di amministrazione del sito.

La campagna che utilizza questa famiglia di sniffatori è iniziata a maggio 2017, subendo attacchi siti gestiti da CMS e piattaforme Magento, Bigcommerce, Shopify.

Come ReactGet si integra nel codice del negozio online

Oltre all'integrazione "classica" dello script tramite link, gli operatori degli sniffatori della famiglia ReactGet utilizzano una tecnica particolare: tramite codice JavaScript viene controllato se l'indirizzo attuale, in cui si trova l'utente, soddisfa determinati criteri. Il codice malevolo verrà eseguito solo se nella URL attuale è presente la sottostringa checkout o onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. In questo modo, il codice dello sniffatore verrà eseguito proprio nel momento in cui l'utente procederà al pagamento e inserirà le informazioni di pagamento nel modulo sul sito.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Questo sniffatore utilizza una tecnica non convenzionale. I dati di pagamento e personali della vittima vengono raccolti insieme, codificati tramite base64, e la stringa risultante viene utilizzata come parametro per inviare una richiesta al sito degli aggressori. Nella maggior parte dei casi, il percorso verso il gateway imita un file JavaScript, ad esempio resp.js, data.js e così via, ma vengono anche utilizzati link a file immagine, GIF e JPG. La peculiarità è che lo sniffatore crea un oggetto immagine delle dimensioni di 1 su 1 pixel e utilizza il link precedentemente ottenuto come parametro src immagini. Cioè, per l'utente, tale richiesta nel traffico apparirà come una richiesta di un'immagine normale. Una tecnica simile è stata utilizzata negli sniffer della famiglia ImageID. Inoltre, la tecnica che utilizza un'immagine di dimensione 1 per 1 pixel è applicata in molti script legittimi di analisi online, il che può anche confondere l'utente.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Analisi delle versioni

L'analisi dei domini attivi utilizzati dagli operatori degli sniffer ReactGet ha permesso di scoprire molte versioni diverse di sniffer di questa famiglia. Le versioni si differenziano per la presenza o meno di offuscamento e, inoltre, ogni sniffer è destinato a un determinato sistema di pagamento che gestisce i pagamenti con carta di credito per gli e-commerce. Esaminando il valore del parametro corrispondente al numero di versione, gli esperti di Group-IB hanno ottenuto un elenco completo delle variazioni disponibili degli sniffer e, in base ai nomi dei campi del modulo che ogni sniffer cerca nel codice della pagina, hanno identificato i sistemi di pagamento a cui il sniffer è destinato.

Elenco degli sniffer e dei sistemi di pagamento corrispondenti

URL dello snifferSistema di pagamento
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

Sniffer delle password

Uno dei vantaggi degli sniffer JavaScript, che operano sul lato client del sito, è la loro versatilità: il codice malevolo integrato nel sito è in grado di rubare dati di qualsiasi tipo, sia che si tratti di dati di pagamento o di login e password per l'account dell'utente. Gli esperti di Group-IB hanno scoperto un campione di sniffer appartenente alla famiglia ReactGet, destinato a rubare indirizzi email e password degli utenti del sito.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Intersezione con lo sniffer ImageID

Durante l'analisi di uno dei negozi infettati, è stato stabilito che il suo sito era stato infettato due volte: oltre al codice malevolo dello sniffer della famiglia ReactGet, è stato trovato anche il codice dello sniffer della famiglia ImageID. Questa intersezione potrebbe essere una prova del fatto che gli operatori che si trovano dietro l'uso di entrambi gli sniffer applicano tecniche simili per integrare codice malevolo.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Sniffer universale

Durante l'analisi di uno dei nomi di dominio appartenenti all'infrastruttura di sniffing di ReactGet, è stato stabilito che lo stesso utente aveva registrato altri tre nomi di dominio. Questi tre domini imitavano i nomi di dominio di siti web realmente esistenti e in precedenza erano stati utilizzati per ospitare sniffers. Durante l'analisi del codice di tre siti web legittimi è stato individuato uno sniffer sconosciuto, e ulteriori analisi hanno mostrato che si trattava di una versione avanzata dello sniffer ReactGet. Tutte le versioni precedentemente tracciate degli sniffer di questa famiglia erano mirate a un'unica piattaforma di pagamento, il che significava che per ogni sistema di pagamento era necessaria una versione speciale dello sniffer. Tuttavia, in questo caso è stata trovata una versione universale dello sniffer, in grado di rubare informazioni dai moduli relativi a 15 diversi sistemi di pagamento e moduli di siti e-commerce per l'elaborazione di pagamenti online.

Quindi, all'inizio del suo funzionamento, lo sniffer cercava i campi di base del modulo contenenti le informazioni personali della vittima: nome completo, indirizzo fisico, numero di telefono.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Successivamente, lo sniffer cercava attraverso più di 15 diversi prefissi, corrispondenti a vari sistemi di pagamento e moduli per pagamenti online.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Successivamente, i dati personali della vittima e le informazioni di pagamento venivano raccolti insieme e inviati a un sito controllato dal criminale: in questo caso specifico sono state identificate due versioni dello sniffer universale ReactGet, alloggiate su due diversi siti compromessi. Tuttavia, entrambe le versioni inviavano i dati rubati allo stesso sito compromesso. zoobashop.com.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
L'analisi dei prefissi utilizzati dallo sniffer per cercare i campi contenenti le informazioni di pagamento della vittima ha consentito di determinare che questo campione di sniffer era mirato ai seguenti sistemi di pagamento:

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

Quali strumenti vengono utilizzati per rubare le informazioni di pagamento

Il primo strumento scoperto durante l'analisi dell'infrastruttura degli aggressori serve per offuscare gli script dannosi responsabili del furto di carte di credito. Su uno degli host degli aggressori è stato trovato uno script bash che utilizza il CLI del progetto javascript-obfuscator per automatizzare l'offuscamento del codice degli sniffer.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Il secondo strumento rilevato è progettato per generare codice responsabile del caricamento del sniffatore principale. Questo strumento genera codice JavaScript che verifica se l'utente si trova sulla pagina di pagamento, cercando nella stringa dell'indirizzo attuale dell'utente checkout, carrello e così via, e se il risultato è positivo, il codice carica lo sniffatore principale dal server degli aggressori. Per nascondere l'attività dannosa, tutte le stringhe, comprese le stringhe di test per determinare la pagina di pagamento, così come il link allo sniffatore, sono codificate utilizzando base64.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Attacchi di phishing

Durante l'analisi dell'infrastruttura di rete degli aggressori è stato stabilito che spesso per ottenere accesso al pannello di amministrazione del negozio online target, il gruppo criminale utilizza il phishing. Gli aggressori registrano un dominio visivamente simile a quello del negozio, e poi distribuiscono su di esso un modulo di accesso fasullo al pannello di amministrazione di Magento. In caso di successo, gli aggressori otterranno accesso al pannello di amministrazione CMS Magento, il che permette loro di modificare i componenti del sito e inserire uno sniffatore per rubare i dati delle carte di credito.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Infrastruttura

DominioData di rilevamento/apparizione
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

Famiglia G-Analytics

Questa famiglia di sniffatori è utilizzata per rubare le carte dei clienti dei negozi online. Il primo nome di dominio utilizzato dal gruppo è stato registrato nell'aprile 2016, il che potrebbe indicare l'inizio dell'attività del gruppo a metà del 2016.

Nell'attuale campagna, il gruppo utilizza nomi di dominio che imitano servizi realmente esistenti, come Google Analytics e jQuery, mascherando l'attività degli sniffatori con script legittimi e nomi di dominio simili a quelli legittimi. I siti colpiti sono quelli che operano sotto il CMS Magento.

Come G-Analytics viene integrato nel codice del negozio online

La caratteristica distintiva di questa famiglia è l'uso di diversi metodi per rubare le informazioni di pagamento dell'utente. Oltre all'implementazione classica di codice JavaScript nella parte client del sito, il gruppo criminoso ha anche utilizzato la tecnica di iniettare codice nella parte server del sito, cioè negli script PHP che elaborano i dati forniti dall'utente. Questa tecnica è pericolosa perché rende difficile il rilevamento del codice malevolo da parte di ricercatori esterni. Gli specialisti di Group-IB hanno scoperto una versione dello sniffer iniettato nel codice PHP del sito, che utilizza come gateway il dominio dittm.org.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
È stata anche scoperta una versione precedente dello sniffer che utilizza lo stesso dominio per raccogliere dati rubati, dittm.orgma questa versione è già destinata all'installazione sul lato client del negozio online.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
In seguito, il gruppo ha cambiato la sua tattica, iniziando a concentrarsi maggiormente sulla mascheratura delle attività malevole.

All'inizio del 2017, il gruppo ha iniziato a utilizzare il dominio jquery-js.com, che si maschera da CDN per jQuery: navigando verso il sito degli aggressori, l'utente viene reindirizzato a un sito legittimo, jquery.com.

E a metà del 2018, il gruppo ha adottato il nome di dominio g-analytics.com e ha iniziato a mascherare l'attività dello sniffer come un servizio legittimo di Google Analytics.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Quattro sniffatori JavaScript che vi aspettano nei negozi online

Analisi delle versioni

Durante l'analisi dei domini utilizzati per ospitare il codice degli sniffer, è stato stabilito che sul sito sono presenti numerose versioni che variano per la presenza di offuscamento e per la presenza o assenza di codice inaccessibile, aggiunto al file per deviare l'attenzione e nascondere il codice malevolo.

In totale, sul sito jquery-js.com sono state identificate sei versioni di sniffer. I dati rubati da questi sniffer vengono inviati a un indirizzo situato sullo stesso sito dello sniffer stesso: 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 dominio più recente g-analytics.com, utilizzato dal gruppo negli attacchi dalla metà del 2018, funge da archivio per un numero maggiore di sniffer. Sono state scoperte 16 diverse versioni dello sniffer. In questo caso, il gateway per inviare i dati rubati era mascherato come un link a un'immagine di formato 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

Monetizzazione dei dati rubati

Il gruppo criminoso monetizza i dati rubati vendendo carte attraverso un negozio sotterraneo appositamente creato che offre servizi ai carder. L'analisi dei domini utilizzati dagli aggressori ha permesso di determinare che google-analytics.cm è stato registrato dallo stesso utente che ha registrato il dominio cardz.vc. Il dominio cardz.vc si riferisce a un negozio di vendita di carte bancarie rubate, Cardsurfs (Flysurfs), che ha guadagnato popolarità già ai tempi dell'attività del mercato nero AlphaBay come negozio di vendita di carte bancarie rubate tramite sniffer.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Analizzando il dominio analytic.is, situato sullo stesso server di domini utilizzati da sniffer per la raccolta di dati rubati, gli esperti di Group-IB hanno scoperto un file contenente log di Cookie-stiller, che sembra essere stato successivamente abbandonato dallo sviluppatore. Una delle voci nel log conteneva il dominio iozoz.com, che era stato precedentemente utilizzato in uno degli sniffer attivi nel 2016. Si presume che questo dominio fosse stato utilizzato in precedenza da un malintenzionato per raccogliere carte rubate tramite sniffer. Questo dominio è stato registrato con l'indirizzo email kts241@gmail.com, che è stato utilizzato anche per registrare i domini cardz.su e cardz.vc, relativi al negozio di carte Cardsurfs.

Dai dati ottenuti, si può ipotizzare che la famiglia di sniffer G-Analytics e il mercato nero di carte bancarie Cardsurfs siano gestiti dalle stesse persone, e che il negozio venga utilizzato per realizzare carte bancarie rubate tramite sniffer.

Infrastruttura

DominioData di rilevamento/apparizione
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

Famiglia Illum

Illum è una famiglia di sniffer utilizzata per attacchi a negozi online che operano sotto CMS Magento. Oltre a iniettare codice malevolo, gli operatori di questo sniffer utilizzano anche l'inserimento di moduli di pagamento falsi che inviano dati a gate controllati dai malintenzionati.

Nell'analizzare l'infrastruttura di rete utilizzata dagli operatori di questo sniffer, è stato notato un grande numero di script dannosi, exploit, moduli di pagamento falsi, e una raccolta di esempi di sniffer malevoli concorrenti. Dalle informazioni sulle date di registrazione dei nomi di dominio utilizzati dal gruppo, si può supporre che l'inizio della campagna risalga alla fine del 2016.

Come Illum viene inserito nel codice del negozio online

Le prime versioni scoperte di questo sniffer venivano inserite direttamente nel codice del sito compromesso. I dati rubati venivano inviati a cdn.illum[.]pw/records.php, il gate era codificato utilizzando base64.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
In seguito è stata trovata una versione confezionata dello sniffer, che utilizza un altro gateway — records.nstatistics[.]com/records.php.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Secondo relazione Willem de Groot, lo stesso host è stato utilizzato nello sniffer, che è stato inserito su sito del negozio, di proprietà del partito politico tedesco CSU.

Analisi del sito degli aggressori

Gli specialisti di Group-IB hanno scoperto e analizzato un sito utilizzato da questo gruppo criminale per archiviare strumenti e raccogliere informazioni rubate.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Tra gli strumenti trovati sul server degli aggressori, sono stati rinvenuti script ed exploit per l'escalation dei privilegi nel sistema operativo Linux: ad esempio, lo script per il controllo dell'escalation dei privilegi di Linux, sviluppato da Mike Czumak, così come un exploit per CVE-2009-1185.

In particolare, per attacchi ai negozi online, gli aggressori hanno utilizzato due exploit: primo capace di inserire codice dannoso in core_config_data attraverso l'esploitazione di CVE-2016-4010, secondo sfrutta una vulnerabilità di tipo RCE nei plugin per CMS Magento, permettendo di eseguire codice arbitrario su un server web vulnerabile.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Durante l'analisi del server sono stati trovati diversi campioni di sniffer e moduli di pagamento falsi utilizzati dagli aggressori per raccogliere informazioni sui pagamenti dai siti compromessi. Come si può notare dall'elenco qui sotto, alcuni script sono stati creati individualmente per ciascun sito compromesso, mentre per determinati CMS e gateway di pagamento è stata utilizzata una soluzione universale. Ad esempio, gli script segapay_standart.js e segapay_onpage.js sono progettati per essere inseriti su siti che utilizzano il gateway di pagamento Sage Pay.

Elenco degli script per diversi gateway di pagamento

ScriptGateway di pagamento
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, utilizzato come gateway nello script payment_forminsite.js, è stato trovato come subjectAltName in diversi certificati relativi al servizio CloudFlare. Inoltre, sul host era presente uno script evil.js. Judicando dal nome dello script, poteva essere utilizzato nell'ambito dell'esploitazione di CVE-2016-4010, grazie al quale è possibile inserire codice dannoso nel footer di un sito gestito da CMS Magento. Come gateway, questo script ha utilizzato l'host request.requestnet[.]tk, che utilizza lo stesso certificato dell'host paymentnow[.]tk.

Moduli di pagamento falsi

Di seguito, un esempio di modulo per l'inserimento dei dati della carta. Questo modulo è stato utilizzato per l'inserimento su un sito di un negozio online e per il furto dei dati della carta.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Nell'immagine seguente è un esempio di un modulo di pagamento PayPal falso, utilizzato dai criminali per infiltrarsi nei siti che adottano questo metodo di pagamento.
Quattro sniffatori JavaScript che vi aspettano nei negozi online
Infrastruttura

DominioData di rilevamento/apparizione
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

Famiglia CoffeMokko

La famiglia di sniffer CoffeMokko, destinata a rubare carte di credito degli utenti dei negozi online, è in uso almeno dal maggio 2017. Si ipotizza che gli operatori di questa famiglia di sniffer siano un gruppo criminale noto come Group 1, descritto dagli esperti di RiskIQ nel 2016. Gli attacchi hanno colpito siti gestiti da CMS come Magento, OpenCart, WordPress, osCommerce, Shopify.

Come CoffeMokko si infiltra nel codice del negozio online

Gli operatori di questa famiglia creano sniffer unici per ogni infezione: il file sniffer si trova nella directory src o js sul server dei criminali. L'infiltrazione nel codice del sito avviene attraverso un link diretto al sniffer.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Nel codice dello sniffer sono hardcoded i nomi dei campi del modulo da cui è necessario rubare i dati. Inoltre, lo sniffer verifica se l'utente si trova sulla pagina di pagamento confrontando un elenco di parole chiave con l'indirizzo attuale dell'utente.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Alcune versioni dello sniffer individuate erano offuscate e contenevano una stringa crittografata in cui era memorizzato il principale array di risorse: in esso c'erano i nomi dei campi dei moduli per vari sistemi di pagamento, così come l'indirizzo del gateway a cui inviare i dati rubati.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Le informazioni di pagamento rubate venivano inviate a uno script sul server dei criminali tramite il percorso /savePayment/index.php или /tr/index.php. Questo script, si presume, funge da intermediario per inviare i dati dal gateway al server principale che consolida i dati da tutti gli sniffer. Per nascondere i dati trasferiti, tutte le informazioni di pagamento della vittima vengono codificate utilizzando base64, e poi si eseguono diverse sostituzioni di caratteri:

  • il carattere "e" viene sostituito con ":"
  • il carattere "w" viene sostituito con " + "
  • il carattere "o" viene sostituito con "%"
  • il carattere "d" viene sostituito con "#"
  • il carattere "a" viene sostituito con "-"
  • il carattere "7" viene sostituito con "^"
  • il carattere "h" viene sostituito con "_"
  • il carattere "T" viene sostituito con "@"
  • il carattere "0" viene sostituito con " / "
  • il carattere "Y" viene sostituito con "*"

Di conseguenza, i dati codificati usando base64 non possono essere decodificati senza effettuare una trasformazione inversa.

Ecco come appare un frammento di codice di uno sniffer non offuscato:

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Analisi dell'infrastruttura

Nelle prime campagne, i criminali registravano nomi di dominio simili a quelli dei legittimi siti di negozi online. Il loro dominio poteva differire da quello legittimo per un solo carattere o un altro TLD. I nomi di dominio registrati venivano utilizzati per ospitare il codice dello sniffer, di cui il link veniva inserito nel codice del negozio.

Inoltre, questo gruppo utilizzava nomi di dominio che ricordavano i nomi di popolari plugin per jQuery (slickjs[.]org per siti che utilizzano il plugin slick.js), gateway di pagamento (sagecdn[.]org per siti che utilizzano il sistema di pagamento Sage Pay).

Successivamente, il gruppo ha iniziato a creare domini i cui nomi non avevano nulla a che fare né con il dominio del negozio né con la tematica del negozio.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Ogni dominio corrispondeva a un sito, su cui veniva creata una directory /js o /src. In questa directory venivano memorizzati gli script degli sniffer: uno sniffer per ogni nuova infezione. Lo sniffer veniva inserito nel codice del sito tramite un link diretto, ma in rari casi i criminali modificavano uno dei file del sito e vi aggiungevano codice dannoso.

Analisi del codice

Primo algoritmo di offuscamento

In alcuni campioni rilevati di sniffer di questa famiglia, il codice era offuscato e conteneva dati criptati necessari per il funzionamento dello sniffer: in particolare, l'indirizzo del gateway dello sniffer, l'elenco dei campi del modulo di pagamento, e in alcuni casi — il codice di un modulo di pagamento falso. Nel codice all'interno della funzione, le risorse erano criptate tramite XOR con una chiave che veniva passata come argomento di questa stessa funzione.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Decriptando la stringa con la chiave appropriata, unica per ogni campione, si può ottenere una stringa che contiene tutte le stringhe del codice dello sniffer separate da un carattere delimitatore.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Secondo algoritmo di offuscamento

In campioni più recenti di sniffer di questa famiglia è stato utilizzato un altro meccanismo di offuscamento: in questo caso i dati erano criptati tramite un algoritmo autoprodotto. La stringa contenente i dati criptati, necessari per il funzionamento dello sniffer, veniva passata come argomento della funzione di decrittazione.

Quattro sniffatori JavaScript che vi aspettano nei negozi online
Utilizzando la console del browser, è possibile decriptare i dati criptati e ottenere un array contenente le risorse dello sniffer.

Quattro sniffatori JavaScript che vi aspettano nei negozi online

Collegamento con i primi attacchi MageCart

Durante l'analisi di uno dei domini utilizzati dal gruppo come gateway per raccogliere dati rubati, è emerso che su questo dominio era stata implementata un'infrastruttura per il furto di carte di credito, identica a quella utilizzata dal Gruppo 1 — uno dei primi gruppi, scoperti dagli specialisti di RiskIQ.

Sull'host della famiglia di sniffers CoffeMokko sono stati trovati due file:

  • mage.js — un file contenente il codice dello sniffer del Gruppo 1 con l'indirizzo del gateway js-cdn.link
  • mag.php — uno script PHP responsabile della raccolta dei dati rubati dallo sniffer

Содержимое файла mage.js Quattro sniffatori JavaScript che vi aspettano nei negozi online
È stato inoltre stabilito che i domini più antichi utilizzati dal gruppo alla base della famiglia di sniffers CoffeMokko sono stati registrati il 17 maggio 2017:

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

Il formato di questi nomi di dominio corrisponde a quelli del Gruppo 1, che erano stati utilizzati negli attacchi del 2016.

Sulla base dei fatti riscontrati, si può ipotizzare che ci sia un collegamento tra gli operatori degli sniffer CoffeMokko e il gruppo criminale Gruppo 1. È probabile che gli operatori di CoffeMokko abbiano mutuato dai loro predecessori strumenti e software per il furto di carte. Tuttavia, è più probabile che il gruppo criminale responsabile dell'uso degli sniffer della famiglia CoffeMokko sia composto dalle stesse persone che hanno effettuato gli attacchi nel contesto delle attività del Gruppo 1. Dopo la pubblicazione del primo rapporto sulle attività del gruppo criminale, tutti i loro nomi di dominio sono stati bloccati e gli strumenti sono stati analizzati e descritti in dettaglio. Il gruppo è stato costretto a prendersi una pausa, a rivedere i propri strumenti interni e a riscrivere il codice degli sniffer per poter continuare i propri attacchi e rimanere non notati.

Infrastruttura

DominioData di rilevamento/apparizione
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

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster