Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Praticamente ognuno di noi utilizza servizi di negozio online, il che significa che prima o poi rischia di diventare vittima di JavaScript sniffer: un codice speciale che i malintenzionati inseriscono nel sito 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 a causa di sniffer, 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 Threat Intelligence Group-IB, Viktor Okorokov, parla di come gli sniffer si infiltrano nel codice del sito e rubano informazioni di pagamento, e di quali CRM attaccano.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

«Minaccia nascosta»

È successo che gli sniffer JS siano rimasti per lungo tempo sotto il radar degli analisti antivirus, mentre le banche e i sistemi di pagamento non li hanno considerati una minaccia seria. E a ragione. Gli esperti di Group-IB hanno analizzato 2440 negozi online compromessi, con visitatori che, complessivamente, raggiungono circa 1,5 milioni di persone al giorno, sono stati esposti al rischio di compromissione. Tra le vittime figurano non solo gli utenti, ma anche i negozi online, i sistemi di pagamento e le banche che hanno emesso carte compromesse.

Rapporto Group-IB è stata la prima ricerca sul mercato darknet degli sniffers, la loro infrastruttura e i metodi di monetizzazione che fruttano milioni di dollari ai loro creatori. Abbiamo identificato 38 famiglie di sniffers, di cui solo 12 erano precedentemente conosciute dai ricercatori.

Analizziamo in dettaglio quattro famiglie di sniffers esaminate durante lo studio.

Famiglia ReactGet

I sniffatori della famiglia ReactGet vengono utilizzati per rubare dati di carte di credito sui siti di e-commerce. Lo sniffatore può funzionare con un'ampia gamma di sistemi di pagamento diversi utilizzati sul sito: un valore di parametro corrisponde a un sistema di pagamento, e versioni separate dello sniffatore possono essere utilizzate per rubare sia le credenziali che i dati delle carte di credito dai moduli di pagamento di diversi sistemi di pagamento, come un cosiddetto sniffatore universale. È stato accertato che in alcuni casi gli aggressori conducono attacchi di phishing contro gli amministratori dei negozi online per ottenere accesso al pannello di amministrazione del sito.

La campagna che utilizza questa famiglia di sniffatori è iniziata a maggio 2017, con siti basati su CMS e piattaforme come Magento, Bigcommerce, Shopify che sono stati presi di mira.

Come ReactGet viene integrato nel codice del negozio online

Oltre all'implementazione 'classica' dello script tramite link, gli operatori di sniffing della famiglia ReactGet utilizzano una tecnica particolare: attraverso codice JavaScript, viene verificato se l'URL attuale su cui si trova l'utente soddisfa determinati criteri. Il codice malevolo verrà eseguito solo se nell'URL corrente è presente una sottostringa checkout o onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. In questo modo, il codice dello sniffing si attiverà 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 tendono agguati nei negozi online
Questo sniffere utilizza una tecnica non standard. I dati di pagamento e personali della vittima vengono raccolti insieme, codificati con base64, e quindi la stringa risultante viene utilizzata come parametro per inviare una richiesta al sito degli aggressori. Spesso il percorso verso il gateway imita un file JavaScript, ad esempio resp.js, data.js e così via, ma vengono anche utilizzati collegamenti a file immagine, GIF e JPG. La particolarità è che lo sniffere crea un oggetto immagine di dimensione 1x1 pixel e utilizza il link ottenuto in precedenza come parametro src immagini. Quindi, per l'utente, tale richiesta nel traffico apparirà come una richiesta di un'immagine normale. Una tecnica simile è stata utilizzata negli sniffers della famiglia ImageID. Inoltre, la tecnica che utilizza un'immagine delle dimensioni di 1 su 1 pixel viene applicata in molti script legittimi di analisi online, il che può anche confondere l'utente.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Analisi delle versioni

L'analisi dei domini attivi utilizzati dagli operatori degli sniffers ReactGet ha rivelato molte diverse versioni di questi sniffers. Le versioni si differenziano per la presenza o meno di offuscamento, e inoltre, ogni sniffer è destinato a un determinato sistema di pagamento che elabora transazioni con carte di credito per negozi online. Esaminando il valore del parametro corrispondente al numero di versione, gli esperti di Group-IB hanno ottenuto un elenco completo delle variazioni disponibili degli sniffers, e in base ai nomi dei campi dei moduli che ogni sniffer cerca nel codice della pagina, hanno identificato i sistemi di pagamento ai quali è mirato lo sniffer.

Elenco degli sniffers e dei relativi sistemi di pagamento

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 di password

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

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Intersezione con lo sniffer ImageID

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

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Sniffer universale

Durante l'analisi di uno dei nomi di dominio associati all'infrastruttura degli sniffer ReactGet, è stato stabilito che lo stesso utente aveva registrato altri tre nomi di dominio. Questi tre domini imitavano quelli di siti reali e venivano utilizzati in precedenza per ospitare sniffer. Analizzando il codice di tre siti legittimi, è stata trovata una versione sconosciuta di uno sniffer, e ulteriori analisi hanno rivelato che si trattava di una versione avanzata dello sniffer ReactGet. Tutte le versioni precedentemente tracciate di sniffer di questa famiglia erano mirate a un singolo sistema di pagamento, il che significa che per ciascun 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 da moduli relativi a 15 diversi sistemi di pagamento e moduli di siti ecommerce per effettuare pagamenti online.

All'inizio della sua attività, 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 tendono agguati nei negozi online
Successivamente, lo sniffer cercava in oltre 15 diversi prefissi, corrispondenti a vari sistemi di pagamento e moduli per pagamenti online.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
In seguito, i dati personali della vittima e le informazioni di pagamento venivano raccolti e inviati a un sito controllato dall'attaccante: in questo caso specifico sono state trovate due versioni dello sniffer universale ReactGet, ospitate su due diversi siti compromessi. Tuttavia, entrambe le versioni inviavano i dati rubati allo stesso sito compromesso. zoobashop.com.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
L'analisi dei prefissi utilizzati dallo sniffer per cercare i campi contenenti informazioni di pagamento della vittima ha rivelato 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 script dannosi responsabili del furto delle carte bancarie. Su uno degli host degli aggressori è stato rinvenuto uno script bash che utilizza il CLI del progetto javascript-obfuscator per automatizzare l'offuscamento del codice dei sniffatori.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Il secondo strumento individuato è progettato per generare il codice responsabile del caricamento dello sniffatore principale. Questo strumento genera codice JavaScript che verifica se l'utente si trova sulla pagina di pagamento, cercando nell'indirizzo attuale dell'utente le stringhe checkout, carrello e così via, e se il risultato è positivo, il codice carica lo sniffatore principale dal server dell'attaccante. 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 tendono agguati nei negozi online

Attacchi di phishing

Durante l'analisi dell'infrastruttura di rete degli aggressori, è emerso che spesso per ottenere accesso al pannello di amministrazione del negozio online target, il gruppo criminale utilizza il phishing. Gli attaccanti registrano un dominio visivamente simile a quello del negozio, per poi implementare una falsa pagina di accesso al pannello di amministrazione Magento. In caso di successo, gli aggressori otterranno accesso al pannello di amministrazione del CMS Magento, consentendo loro di modificare i componenti del sito e inserire uno sniffer per rubare i dati delle carte di credito.

Quattro sniffatori JavaScript che vi tendono agguati 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 sniffer è utilizzata per rubare le informazioni delle carte dei clienti dai negozi online. Il primo dominio registrato dal gruppo è stato registrato nell'aprile del 2016, il che potrebbe indicare l'inizio delle attività del gruppo a metà del 2016.

Nella campagna attuale, il gruppo utilizza nomi di dominio che imitano servizi realmente esistenti, come Google Analytics e jQuery, camuffando l'attività degli sniffer con script legittimi e nomi di dominio simili a quelli legittimi. Siti che operano sotto CMS Magento sono stati colpiti dall'attacco.

Come viene integrato G-Analytics nel codice del negozio online

Una caratteristica distintiva di questa famiglia è l'uso di vari metodi per il furto delle informazioni di pagamento dell'utente. Oltre all'inserimento classico di codice JavaScript nella parte client del sito, il gruppo criminale ha anche utilizzato la tecnica di inserimento del codice nella parte server del sito, in particolare nei script PHP che elaborano i dati immessi dagli utenti. Questa tecnica è pericolosa perché rende difficile il rilevamento del codice dannoso da parte di ricercatori indipendenti. Gli specialisti di Group-IB hanno scoperto una versione di uno sniffer inserito nel codice PHP del sito, che utilizza come gateway il dominio dittm.org.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
È stata inoltre scoperta una versione precedente dello sniffer che utilizza lo stesso dominio per raccogliere dati rubati dittm.org, ma questa versione è già progettata per essere installata sul lato client del negozio online.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Successivamente, il gruppo ha cambiato la propria tattica, iniziando a prestare maggiore attenzione al nascondimento delle attività malevole e all'occultamento.

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

Nel mezzo del 2018, il gruppo ha acquisito 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 tendono agguati nei negozi online
Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Analisi delle versioni

Durante l'analisi dei domini utilizzati per ospitare il codice degli sniffer, è stato riscontrato che sul sito erano presenti molte versioni che si differenziano per la presenza di offuscamento, nonché per la presenza o l'assenza di codice inaccessibile aggiunto al file per deviare l'attenzione e nascondere il codice dannoso.

Complessivamente sul sito jquery-js.com sono state scoperte sei versioni degli 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 successivo g-analytics.com, utilizzato dal gruppo negli attacchi a partire dalla metà del 2018, funge da deposito per un numero maggiore di sniffer. In totale, sono state trovate 16 versioni diverse dello sniffer. In questo caso, il gate per l'invio dei dati rubati era mascherato da un link a un'immagine in 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

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

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Analizzando il dominio analytic.is, situato sullo stesso server dei domini utilizzati dagli sniffer per raccogliere dati rubati, i specialisti di Group-IB hanno scoperto un file contenente i log del 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 utilizzato in precedenza da un attaccante per raccogliere carte rubate tramite sniffer. Questo dominio è stato registrato sull'indirizzo email kts241@gmail.com, utilizzato anche per la registrazione dei domini cardz.su e cardz.vc, relativo al negozio di carte Cardsurfs.

Sulla base dei dati ricevuti, si può ipotizzare che la famiglia di sniffer G-Analytics e il negozio sotterraneo di carte bancarie Cardsurfs siano gestiti dalle stesse persone, e che il negozio venga utilizzato per la vendita di carte bancarie rubate tramite lo 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 utilizzati per attacchi a negozi online che operano con CMS Magento. Oltre all'inserimento di codice dannoso, gli operatori di questo sniffer utilizzano anche moduli di pagamento falsi che inviano dati a gateway controllati dai malintenzionati.

Nell'analisi dell'infrastruttura di rete utilizzata dagli operatori di questo sniffer, è stata notata una grande quantità di script dannosi, exploit, moduli di pagamento falsi, così come una raccolta di esempi di sniffer dannosi dei concorrenti. Basandosi sulle 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 si integra nel codice del negozio online

Le prime versioni dello sniffer rilevate venivano integrate direttamente nel codice del sito compromesso. I dati rubati venivano inviati all'indirizzo cdn.illum[.]pw/records.php, mentre il gateway era codificato utilizzando base64.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Successivamente è stata trovata una versione impacchettata dello sniffer che usava un altro gateway — records.nstatistics[.]com/records.php.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Secondo secondo il rapporto Willem de Groot, lo stesso host era utilizzato nello sniffer che era stato integrato nel sito del negozio, appartenente al partito politico tedesco CSU.

Analisi del sito degli aggressori

Gli esperti di Group-IB hanno scoperto e analizzato il sito utilizzato da questo gruppo criminale per immagazzinare strumenti e raccogliere informazioni rubate.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Tra gli strumenti rinvenuti nel server degli aggressori, c'erano script ed exploit per l'escalation dei privilegi su sistemi operativi Linux: per esempio, il Linux Privilege Escalation Check Script, sviluppato da Mike Czumak, e un exploit per CVE-2009-1185.

Direttamente per gli attacchi ai negozi online, gli aggressori hanno utilizzato due exploit: il primo è in grado di iniettare codice dannoso in core_config_data attraverso l'exploit CVE-2016-4010, il secondo sfrutta una vulnerabilità di tipo RCE nei plugin per CMS Magento, permettendo di eseguire codice arbitrario sul server web vulnerabile.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Durante l'analisi del server sono stati rinvenuti anche vari campioni di sniffer e moduli di pagamento falsi utilizzati dagli aggressori per raccogliere informazioni di pagamento dai siti compromessi. Come si può notare dall'elenco sottostante, alcuni script sono stati creati su misura per ciascun sito compromesso, mentre per determinate CMS e gateway di pagamento sono state utilizzate soluzioni universali. Per esempio, gli script segapay_standart.js e segapay_onpage.js sono progettati per l'inserimento nei siti che utilizzano il gateway di pagamento Sage Pay.

Elenco degli script per vari 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 gate nello script payment_forminsite.js, è stato rilevato come subjectAltName in diversi certificati relativi al servizio CloudFlare. Inoltre, sul server era presente uno script evil.js. A giudicare dal nome dello script, potrebbe essere stato utilizzato per sfruttare la CVE-2016-4010, che consente di inserire codice dannoso nel footer di un sito gestito da CMS Magento. Come gate, questo script ha applicato l'host request.requestnet[.]tk, utilizzando lo stesso certificato dell'host paymentnow[.]tk.

Moduli di pagamento falsi

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

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Nell'immagine successiva è un esempio di modulo di pagamento falso di PayPal, utilizzato dagli aggressori per l'inserimento su siti che utilizzano questo metodo di pagamento.
Quattro sniffatori JavaScript che vi tendono agguati 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, progettata per rubare le carte di credito degli utenti dei negozi online, è attiva almeno dal maggio 2017. Si presume 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 integra nel codice del negozio online

Gli operatori di questa famiglia creano sniffer unici per ogni infezione: il file dello sniffer si trova nella directory src o js sul server degli aggressori. L'integrazione nel codice del sito avviene tramite un link diretto allo sniffer.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Nel codice dello sniffer sono codificati i nomi dei campi del modulo da cui devono essere rubati i dati. Inoltre, lo sniffer verifica se l'utente si trova sulla pagina di pagamento confrontando l'elenco delle parole chiave con l'indirizzo attuale dell'utente.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Alcune versioni del sniffatore rilevate erano offuscate e contenevano una stringa criptata in cui era memorizzato l'array principale delle risorse: lì erano inclusi i nomi dei campi dei moduli per vari sistemi di pagamento, così come l'indirizzo della porta per inviare i dati rubati.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Le informazioni di pagamento rubate venivano inviate a uno script sul server degli aggressori tramite /savePayment/index.php или /tr/index.php. Si presume che questo script serva a inviare i dati dalla porta al server principale, che consolida i dati da tutti gli sniffatori. Per nascondere i dati trasmessi, tutte le informazioni di pagamento della vittima vengono codificate utilizzando base64, e poi avvengono diverse sostituzioni di caratteri:

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

A causa delle sostituzioni di caratteri, è impossibile decodificare i dati senza effettuare la trasformazione inversa. base64 данные невозможно декодировать, не проведя обратного преобразования.

Ecco un frammento di codice di uno sniffer che non è stato offuscato:

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Analisi dell'infrastruttura

In campagne precedenti, gli aggressori registravano nomi di dominio simili a quelli di siti legittimi di e-commerce. Il loro dominio poteva differire da quello legittimo di un solo carattere o da un altro TLD. I domini registrati venivano utilizzati per ospitare il codice dello sniffer, il cui link veniva incorporato nel codice del negozio.

Questa gruppo usava anche nomi di dominio che assomigliavano ai nomi di popolari plugin per jQuery (slickjs[.]org per i siti che utilizzano il plugin slick.js), gateway di pagamento (sagecdn[.]org per i siti che utilizzano il sistema di pagamento Sage Pay).

Successivamente, il gruppo ha iniziato a creare domini il cui nome non aveva nulla a che fare né con il dominio del negozio né con la sua tematica.

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

Analisi del codice

Il primo algoritmo di offuscamento

In alcuni campioni rilevati di questo tipo di sniffers, il codice era stato 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 falsificato. Nel codice all'interno della funzione, le risorse erano state criptate tramite XOR con una chiave che veniva passata come argomento della stessa funzione.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online
Decifrando la stringa con la chiave corrispondente, unica per ogni campione, si può ottenere una stringa contenente tutte le stringhe dal codice dello sniffer separate da un carattere delimitatore.

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Il secondo algoritmo di offuscamento

Nei campioni più recenti di questo tipo di sniffers è stato utilizzato un altro meccanismo di offuscamento: in questo caso, i dati erano stati criptati tramite un algoritmo personalizzato. La stringa contenente i dati criptati, necessari per il funzionamento dello sniffer, veniva passata come argomento alla funzione di decifratura.

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

Quattro sniffatori JavaScript che vi tendono agguati nei negozi online

Collegamento con i precedenti attacchi MageCart

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

Sul 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 tendono agguati nei negozi online
È stato inoltre accertato che i primi domini utilizzati dal gruppo dietro la 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 quello dei nomi di dominio del Gruppo 1, utilizzati negli attacchi del 2016.

Sulla base dei fatti riscontrati, si può supporre che ci sia un legame tra gli operatori di sniffer CoffeMokko e il gruppo criminale Group 1. È probabile che gli operatori di CoffeMokko abbiano preso in prestito strumenti e software dai loro predecessori per rubare carte. Tuttavia, è più probabile che il gruppo criminale responsabile dell'uso degli sniffer della famiglia CoffeMokko sia composto dalle stesse persone che hanno effettuato attacchi nell'ambito delle attività del Group 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 esaminati e descritti in dettaglio. Il gruppo è stato costretto a prendersi una pausa, a perfezionare i propri strumenti interni e a riscrivere il codice degli sniffer per continuare i propri attacchi e rimanere inosservati.

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