Quattro sniffer JavaScript che ti aspettano nei negozi online

Quattro sniffer JavaScript che ti aspettano nei negozi online

Quasi tutti noi utilizziamo i servizi dei negozi online, il che significa che prima o poi corriamo il rischio di diventare vittima di JavaScript sniffer, un codice speciale che gli aggressori implementano su un sito Web per rubare dati di carte bancarie, indirizzi, login e password degli utenti .

Sono già stati colpiti dagli sniffer quasi 400 utenti del sito web e dell'applicazione mobile della British Airways, così come i visitatori del sito web britannico del colosso sportivo FILA e del distributore americano di biglietti Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris: questi e molti altri sistemi di pagamento sono stati infettati.

Viktor Okorokov, analista del Threat Intelligence Group-IB, parla di come gli sniffer si infiltrano nel codice dei siti web e rubano informazioni sui pagamenti, nonché di quali CRM attaccano.

Quattro sniffer JavaScript che ti aspettano nei negozi online

"Minaccia nascosta"

È successo che per molto tempo gli sniffer di JS sono rimasti fuori dalla vista degli analisti antivirus e le banche e i sistemi di pagamento non li hanno visti come una seria minaccia. E completamente invano. Esperti del Gruppo-IB analizzato 2440 negozi online infetti, i cui visitatori – in totale circa 1,5 milioni di persone al giorno – erano a rischio di compromissione. Tra le vittime non ci sono solo gli utenti, ma anche negozi online, sistemi di pagamento e banche che hanno emesso carte compromesse.

Segnala Group-IB è diventato il primo studio sul mercato degli sniffer della rete oscura, sulla loro infrastruttura e sui metodi di monetizzazione, che porta ai loro creatori milioni di dollari. Abbiamo identificato 38 famiglie di sniffer, di cui solo 12 erano precedentemente note ai ricercatori.

Soffermiamoci in dettaglio sulle quattro famiglie di sniffer studiate durante lo studio.

ReactGet Famiglia

Gli sniffer della famiglia ReactGet vengono utilizzati per rubare i dati delle carte bancarie sui siti di shopping online. Lo sniffer può funzionare con un gran numero di diversi sistemi di pagamento utilizzati sul sito: un valore di parametro corrisponde a un sistema di pagamento e le singole versioni rilevate dello sniffer possono essere utilizzate per rubare credenziali, nonché per rubare dati di carte bancarie dal sistema di pagamento forme di più sistemi di pagamento contemporaneamente, come il cosiddetto sniffer universale. È stato riscontrato che in alcuni casi gli aggressori conducono attacchi di phishing contro gli amministratori dei negozi online per ottenere l’accesso al pannello amministrativo del sito.

Nel maggio 2017 è iniziata una campagna che utilizzava questa famiglia di sniffer: sono stati attaccati siti che utilizzavano CMS e piattaforme Magento, Bigcommerce e Shopify.

Come ReactGet viene implementato nel codice di un negozio online

Oltre alla “classica” implementazione di uno script tramite un collegamento, gli operatori della famiglia di sniffer ReactGet utilizzano una tecnica speciale: controllano con l'aiuto del codice JavaScript se l'indirizzo attuale in cui si trova l'utente soddisfa determinati criteri. Il codice dannoso verrà eseguito solo se la sottostringa è presente nell'URL corrente cassa o pagamento in un solo passaggio, una pagina/, fuori/una pag, cassa/uno, checkout/uno. Pertanto, il codice sniffer verrà eseguito esattamente nel momento in cui l'utente procede al pagamento degli acquisti e inserisce le informazioni di pagamento nel modulo sul sito.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Questo sniffer utilizza una tecnica non standard. Il pagamento e i dati personali della vittima vengono raccolti insieme e codificati utilizzando base64, quindi la stringa risultante viene utilizzata come parametro per inviare una richiesta al sito Web degli aggressori. Nella maggior parte dei casi il percorso verso la porta imita ad esempio un file JavaScript resp.js, dati.js e così via, ma vengono utilizzati anche collegamenti a file di immagine, GIF и JPG. La particolarità è che lo sniffer crea un oggetto immagine di 1 per 1 pixel e utilizza come parametro il collegamento precedentemente ricevuto src Immagini. Cioè, per l'utente tale richiesta nel traffico sembrerà una richiesta per un'immagine normale. Una tecnica simile è stata utilizzata nella famiglia di sniffer ImageID. Inoltre, la tecnica di utilizzare un'immagine da 1 x 1 pixel viene utilizzata in molti script di analisi online legittimi, che possono anche fuorviare l'utente.

Quattro sniffer JavaScript che ti aspettano nei negozi online

Analisi della versione

L'analisi dei domini attivi utilizzati dagli operatori sniffer ReactGet ha rivelato molte versioni diverse di questa famiglia di sniffer. Le versioni differiscono per la presenza o l'assenza di offuscamento e inoltre ogni sniffer è progettato per uno specifico sistema di pagamento che elabora i pagamenti con carta bancaria per i negozi online. Dopo aver selezionato il valore del parametro corrispondente al numero di versione, gli specialisti di Group-IB hanno ricevuto un elenco completo delle varianti dello sniffer disponibili 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 è rivolto lo sniffer.

Elenco degli sniffer e dei relativi sistemi di pagamento

URL dello sniffer sistema di pagamento
reactjsapi.com/react.js Authorize.Net
ajaxstatic.com/api.js?v=2.1.1 Salvataggio di carte
ajaxstatic.com/api.js?v=2.1.2 Authorize.Net
ajaxstatic.com/api.js?v=2.1.3 Authorize.Net
ajaxstatic.com/api.js?v=2.1.4 eWAY Rapido
ajaxstatic.com/api.js?v=2.1.5 Authorize.Net
ajaxstatic.com/api.js?v=2.1.6 Adyen
ajaxstatic.com/api.js?v=2.1.7 USAePay
ajaxstatic.com/api.js?v=2.1.9 Authorize.Net
apitstatus.com/api.js?v=2.1.1 USAePay
apitstatus.com/api.js?v=2.1.2 Authorize.Net
apitstatus.com/api.js?v=2.1.3 moneris
apitstatus.com/api.js?v=2.1.5 USAePay
apitstatus.com/api.js?v=2.1.6 PayPal
apitstatus.com/api.js?v=2.1.7 Sage Pay
apitstatus.com/api.js?v=2.1.8 Verisign
apitstatus.com/api.js?v=2.1.9 PayPal
apitstatus.com/api.js?v=2.3.0 Stripe
apitstatus.com/api.js?v=3.0.2 Realex
apitstatus.com/api.js?v=3.0.3 PayPal
apitstatus.com/api.js?v=3.0.4 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.8 DataCash
apitstatus.com/api.js?v=3.0.9 PayPal
asianfoodgracer.com/footer.js Authorize.Net
billgetstatus.com/api.js?v=1.2 Authorize.Net
billgetstatus.com/api.js?v=1.3 Authorize.Net
billgetstatus.com/api.js?v=1.4 Authorize.Net
billgetstatus.com/api.js?v=1.5 Verisign
billgetstatus.com/api.js?v=1.6 Authorize.Net
billgetstatus.com/api.js?v=1.7 moneris
billgetstatus.com/api.js?v=1.8 Sage Pay
billgetstatus.com/api.js?v=2.0 USAePay
billgetstatus.com/react.js Authorize.Net
cloudodesc.com/gtm.js?v=1.2 Authorize.Net
cloudodesc.com/gtm.js?v=1.3 ANZ eGate
cloudodesc.com/gtm.js?v=2.3 Authorize.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.9 Authorize.Net
cloudodesc.com/gtm.js?v=2.91 Adyen
cloudodesc.com/gtm.js?v=2.92 PsiGate
cloudodesc.com/gtm.js?v=2.93 Fonte informatica
cloudodesc.com/gtm.js?v=2.95 ANZ eGate
cloudodesc.com/gtm.js?v=2.97 Realex
geisseie.com/gs.js USAePay
gtmproc.com/age.js Authorize.Net
gtmproc.com/gtm.js?v=1.2 Authorize.Net
gtmproc.com/gtm.js?v=1.3 ANZ eGate
gtmproc.com/gtm.js?v=1.5 PayPal
gtmproc.com/gtm.js?v=1.6 PayPal
gtmproc.com/gtm.js?v=1.7 Realex
livecheckpay.com/api.js?v=2.0 Sage Pay
livecheckpay.com/api.js?v=2.1 PayPal
livecheckpay.com/api.js?v=2.2 Verisign
livecheckpay.com/api.js?v=2.3 Authorize.Net
livecheckpay.com/api.js?v=2.4 Verisign
livecheckpay.com/react.js Authorize.Net
livegetpay.com/pay.js?v=2.1.2 ANZ eGate
livegetpay.com/pay.js?v=2.1.3 PayPal
livegetpay.com/pay.js?v=2.1.5 Fonte informatica
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 Fonte informatica
livegetpay.com/pay.js?v=2.2.1 PayPal
livegetpay.com/pay.js?v=2.2.2 PayPal
livegetpay.com/pay.js?v=2.2.3 PayPal
livegetpay.com/pay.js?v=2.2.4 Verisign
livegetpay.com/pay.js?v=2.2.5 eWAY Rapido
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.9 Verisign
livegetpay.com/pay.js?v=2.3.0 Authorize.Net
livegetpay.com/pay.js?v=2.3.1 Authorize.Net
livegetpay.com/pay.js?v=2.3.2 Primo gateway globale di dati
livegetpay.com/pay.js?v=2.3.3 Authorize.Net
livegetpay.com/pay.js?v=2.3.4 Authorize.Net
livegetpay.com/pay.js?v=2.3.5 moneris
livegetpay.com/pay.js?v=2.3.6 Authorize.Net
livegetpay.com/pay.js?v=2.3.8 PayPal
livegetpay.com/pay.js?v=2.4.0 Verisign
maxstatics.com/site.js USAePay
mediapack.info/track.js?d=funlove.com USAePay
mediapack.info/track.js?d=qbedding.com Authorize.Net
mediapack.info/track.js?d=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.7 eWAY Rapido
mxcounter.com/c.js?v=1.8 Sage Pay
mxcounter.com/c.js?v=2.0 Authorize.Net
mxcounter.com/c.js?v=2.1 Braintree
mxcounter.com/c.js?v=2.10 Braintree
mxcounter.com/c.js?v=2.2 PayPal
mxcounter.com/c.js?v=2.3 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.33 PayPal
mxcounter.com/c.js?v=2.34 Authorize.Net
mxcounter.com/c.js?v=2.35 Verisign
mxcounter.com/click.js?v=1.2 PayPal
mxcounter.com/click.js?v=1.3 Authorize.Net
mxcounter.com/click.js?v=1.4 Stripe
mxcounter.com/click.js?v=1.6 Authorize.Net
mxcounter.com/click.js?v=1.7 eWAY Rapido
mxcounter.com/click.js?v=1.8 Sage Pay
mxcounter.com/click.js?v=2.0 Authorize.Net
mxcounter.com/click.js?v=2.1 Braintree
mxcounter.com/click.js?v=2.2 PayPal
mxcounter.com/click.js?v=2.3 Sage Pay
mxcounter.com/click.js?v=2.31 Sage Pay
mxcounter.com/click.js?v=2.32 Authorize.Net
mxcounter.com/click.js?v=2.33 PayPal
mxcounter.com/click.js?v=2.34 Authorize.Net
mxcounter.com/click.js?v=2.35 Verisign
mxcounter.com/cnt.js Authorize.Net
mxcounter.com/j.js Authorize.Net
newrelicnet.com/api.js?v=1.2 Authorize.Net
newrelicnet.com/api.js?v=1.4 Authorize.Net
newrelicnet.com/api.js?v=1.8 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.0 PayFort
nr-public.com/api.js?v=2.1 PayPal
nr-public.com/api.js?v=2.2 Authorize.Net
nr-public.com/api.js?v=2.3 Stripe
nr-public.com/api.js?v=2.4 Primo gateway globale di dati
nr-public.com/api.js?v=2.5 PsiGate
nr-public.com/api.js?v=2.6 Authorize.Net
nr-public.com/api.js?v=2.7 Authorize.Net
nr-public.com/api.js?v=2.8 moneris
nr-public.com/api.js?v=2.9 Authorize.Net
nr-public.com/api.js?v=3.1 Sage Pay
nr-public.com/api.js?v=3.2 Verisign
nr-public.com/api.js?v=3.3 moneris
nr-public.com/api.js?v=3.5 PayPal
nr-public.com/api.js?v=3.6 LinkPoint
nr-public.com/api.js?v=3.7 Westpac PayWay
nr-public.com/api.js?v=3.8 Authorize.Net
nr-public.com/api.js?v=4.0 moneris
nr-public.com/api.js?v=4.0.2 PayPal
nr-public.com/api.js?v=4.0.3 Adyen
nr-public.com/api.js?v=4.0.4 PayPal
nr-public.com/api.js?v=4.0.5 Authorize.Net
nr-public.com/api.js?v=4.0.6 USAePay
nr-public.com/api.js?v=4.0.7 EBiz Charge
nr-public.com/api.js?v=4.0.8 Authorize.Net
nr-public.com/api.js?v=4.0.9 Verisign
nr-public.com/api.js?v=4.1.2 Verisign
ordercheckpays.com/api.js?v=2.11 Authorize.Net
ordercheckpays.com/api.js?v=2.12 PayPal
ordercheckpays.com/api.js?v=2.13 moneris
ordercheckpays.com/api.js?v=2.14 Authorize.Net
ordercheckpays.com/api.js?v=2.15 PayPal
ordercheckpays.com/api.js?v=2.16 PayPal
ordercheckpays.com/api.js?v=2.17 Westpac 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.23 Authorize.Net
ordercheckpays.com/api.js?v=2.24 PayPal
ordercheckpays.com/api.js?v=2.25 PayFort
ordercheckpays.com/api.js?v=2.29 Fonte informatica
ordercheckpays.com/api.js?v=2.4 Flusso di pagamento PayPal Pro
ordercheckpays.com/api.js?v=2.7 Authorize.Net
ordercheckpays.com/api.js?v=2.8 Authorize.Net
ordercheckpays.com/api.js?v=2.9 Verisign
ordercheckpays.com/api.js?v=3.1 Authorize.Net
ordercheckpays.com/api.js?v=3.2 Authorize.Net
ordercheckpays.com/api.js?v=3.3 Sage Pay
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5 Stripe
ordercheckpays.com/api.js?v=3.6 Authorize.Net
ordercheckpays.com/api.js?v=3.7 Authorize.Net
ordercheckpays.com/api.js?v=3.8 Verisign
ordercheckpays.com/api.js?v=3.9 PayPal
ordercheckpays.com/api.js?v=4.0 Authorize.Net
ordercheckpays.com/api.js?v=4.1 Authorize.Net
ordercheckpays.com/api.js?v=4.2 Sage Pay
ordercheckpays.com/api.js?v=4.3 Authorize.Net
reactjsapi.com/api.js?v=0.1.0 Authorize.Net
reactjsapi.com/api.js?v=0.1.1 PayPal
reactjsapi.com/api.js?v=4.1.2 Selce
reactjsapi.com/api.js?v=4.1.4 PayPal
reactjsapi.com/api.js?v=4.1.5 Sage Pay
reactjsapi.com/api.js?v=4.1.51 Verisign
reactjsapi.com/api.js?v=4.1.6 Authorize.Net
reactjsapi.com/api.js?v=4.1.7 Authorize.Net
reactjsapi.com/api.js?v=4.1.8 Stripe
reactjsapi.com/api.js?v=4.1.9 Zebra grassa
reactjsapi.com/api.js?v=4.2.0 Sage Pay
reactjsapi.com/api.js?v=4.2.1 Authorize.Net
reactjsapi.com/api.js?v=4.2.2 Primo gateway globale di dati
reactjsapi.com/api.js?v=4.2.3 Authorize.Net
reactjsapi.com/api.js?v=4.2.4 eWAY Rapido
reactjsapi.com/api.js?v=4.2.5 Adyen
reactjsapi.com/api.js?v=4.2.7 PayPal
reactjsapi.com/api.js?v=4.2.8 Servizi mercantili QuickBooks
reactjsapi.com/api.js?v=4.2.9 Verisign
reactjsapi.com/api.js?v=4.2.91 Sage Pay
reactjsapi.com/api.js?v=4.2.92 Verisign
reactjsapi.com/api.js?v=4.2.94 Authorize.Net
reactjsapi.com/api.js?v=4.3.97 Authorize.Net
reactjsapi.com/api.js?v=4.5 Sage Pay
reactjsapi.com/react.js Authorize.Net
sydneysalonsupplies.com/gtm.js eWAY Rapido
tagmediaget.com/react.js Authorize.Net
tagstracking.com/tag.js?v=2.1.2 ANZ eGate
tagstracking.com/tag.js?v=2.1.3 PayPal
tagstracking.com/tag.js?v=2.1.5 Fonte informatica
tagstracking.com/tag.js?v=2.1.7 Authorize.Net
tagstracking.com/tag.js?v=2.1.8 Sage Pay
tagstracking.com/tag.js?v=2.1.9 Realex
tagstracking.com/tag.js?v=2.2.0 Fonte informatica
tagstracking.com/tag.js?v=2.2.1 PayPal
tagstracking.com/tag.js?v=2.2.2 PayPal
tagstracking.com/tag.js?v=2.2.3 PayPal
tagstracking.com/tag.js?v=2.2.4 Verisign
tagstracking.com/tag.js?v=2.2.5 eWAY Rapido
tagstracking.com/tag.js?v=2.2.7 Sage Pay
tagstracking.com/tag.js?v=2.2.8 Sage Pay
tagstracking.com/tag.js?v=2.2.9 Verisign
tagstracking.com/tag.js?v=2.3.0 Authorize.Net
tagstracking.com/tag.js?v=2.3.1 Authorize.Net
tagstracking.com/tag.js?v=2.3.2 Primo gateway globale di dati
tagstracking.com/tag.js?v=2.3.3 Authorize.Net
tagstracking.com/tag.js?v=2.3.4 Authorize.Net
tagstracking.com/tag.js?v=2.3.5 moneris
tagstracking.com/tag.js?v=2.3.6 Authorize.Net
tagstracking.com/tag.js?v=2.3.8 PayPal

Sniffatore di password

Uno dei vantaggi degli sniffer JavaScript che lavorano sul lato client di un sito web è la loro versatilità: il codice dannoso incorporato in un sito web può rubare qualsiasi tipo di dati, siano essi dati di pagamento o login e password di un account utente. Gli specialisti di Group-IB hanno scoperto un campione di uno sniffer appartenente alla famiglia ReactGet, progettato per rubare indirizzi e-mail e password degli utenti del sito.

Quattro sniffer JavaScript che ti aspettano nei negozi online

Intersezione con lo sniffer ImageID

Durante l'analisi di uno dei negozi infetti si è scoperto che il suo sito era stato infettato due volte: oltre al codice dannoso dello sniffer della famiglia ReactGet è stato rilevato anche il codice dello sniffer della famiglia ImageID. Questa sovrapposizione potrebbe essere la prova che gli operatori dietro entrambi gli sniffer utilizzano tecniche simili per iniettare codice dannoso.

Quattro sniffer JavaScript che ti aspettano nei negozi online

Sniffatore universale

L'analisi di uno dei nomi di dominio associati all'infrastruttura sniffer ReactGet ha rivelato che lo stesso utente aveva registrato altri tre nomi di dominio. Questi tre domini imitavano i domini di siti web reali e in precedenza venivano utilizzati per ospitare sniffer. Analizzando il codice di tre siti legittimi, è stato rilevato uno sniffer sconosciuto e ulteriori analisi hanno dimostrato che si trattava di una versione migliorata dello sniffer ReactGet. Tutte le versioni precedentemente monitorate di questa famiglia di sniffer erano mirate a un unico sistema di pagamento, ovvero ogni sistema di pagamento richiedeva una versione speciale dello sniffer. In questo caso, però, è stata scoperta una versione universale dello sniffer in grado di rubare informazioni dai moduli relativi a 15 diversi sistemi di pagamento e dai moduli dei siti di e-commerce per effettuare pagamenti online.

Quindi, all’inizio del lavoro, lo sniffer ha cercato i campi del modulo di base contenenti le informazioni personali della vittima: nome completo, indirizzo fisico, numero di telefono.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Lo sniffer ha quindi cercato oltre 15 diversi prefissi corrispondenti a diversi sistemi di pagamento e moduli di pagamento online.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Successivamente, i dati personali della vittima e le informazioni di pagamento sono stati raccolti insieme e inviati a un sito controllato dall’aggressore: in questo caso particolare sono state scoperte due versioni dello sniffer universale ReactGet, situate su due diversi siti hackerati. Tuttavia, entrambe le versioni hanno inviato i dati rubati allo stesso sito compromesso zoobashop.com.

Quattro sniffer JavaScript che ti aspettano nei negozi online
L'analisi dei prefissi utilizzati dallo sniffer per cercare i campi contenenti le informazioni di pagamento della vittima ci ha permesso 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)
  • Pagamenti Realex
  • PsiGate
  • Sistemi di pagamento Heartland

Quali strumenti vengono utilizzati per rubare le informazioni di pagamento?

Il primo strumento, scoperto durante l’analisi dell’infrastruttura degli aggressori, viene utilizzato per offuscare gli script dannosi responsabili del furto di carte bancarie. Su uno degli host dell'aggressore è stato scoperto uno script bash che utilizzava la CLI del progetto offuscatore javascript per automatizzare l'offuscamento dello sniffer code.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Il secondo strumento scoperto è progettato per generare il codice responsabile del caricamento dello sniffer principale. Questo strumento genera codice JavaScript che controlla se l'utente si trova sulla pagina di pagamento cercando stringhe nell'indirizzo corrente dell'utente cassa, carrello e così via, e se il risultato è positivo, il codice carica lo sniffer principale dal server degli aggressori. Per nascondere attività dannose, tutte le righe, comprese le righe di test per determinare la pagina di pagamento, nonché un collegamento allo sniffer, vengono codificate utilizzando base64.

Quattro sniffer JavaScript che ti aspettano nei negozi online

Attacchi di phishing

Dall'analisi dell'infrastruttura di rete degli aggressori è emerso che spesso il gruppo criminale ricorre al phishing per accedere all'area amministrativa del negozio online preso di mira. Gli aggressori registrano un dominio visivamente simile al dominio di un negozio e quindi distribuiscono su di esso un falso modulo di accesso al pannello di amministrazione di Magento. In caso di successo, gli aggressori avranno accesso al pannello amministrativo del CMS Magento, che darà loro la possibilità di modificare i componenti del sito web e implementare uno sniffer per rubare i dati delle carte di credito.

Quattro sniffer JavaScript che ti aspettano nei negozi online
infrastruttura

Nome di dominio Data di scoperta/apparizione
mediapack.info 04.05.2017
adsgetapi.com 15.06.2017
simcounter.com 14.08.2017
mageanalytics.com 22.12.2017
maxstatics.com 16.01.2018
reactjsapi.com 19.01.2018
mxcounter.com 02.02.2018
apitstatus.com 01.03.2018
orderracker.com 20.04.2018
tagstracking.com 25.06.2018
adsapigate.com 12.07.2018
trust-tracker.com 15.07.2018
fbstatspartner.com 02.10.2018
billgetstatus.com 12.10.2018
www.aldenmlilhouse.com 20.10.2018
balletbeautlful.com 20.10.2018
bargalnjunkie.com 20.10.2018
payselector.com 21.10.2018
tagsmediaget.com 02.11.2018
hs-payments.com 16.11.2018
ordercheckpays.com 19.11.2018
geisseie.com 24.11.2018
gtmproc.com 29.11.2018
livegetpay.com 18.12.2018
sydneysalonsupplies.com 18.12.2018
newrelicnet.com 19.12.2018
nr-public.com 03.01.2019
cloudodesc.com 04.01.2019
ajaxstatic.com 11.01.2019
livecheckpay.com 21.01.2019
asianfoodgracer.com 25.01.2019

Famiglia G-Analytics

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

Nella campagna attuale, il gruppo utilizza nomi di dominio che imitano servizi della vita reale, come Google Analytics e jQuery, mascherando l'attività degli sniffer con script legittimi e nomi di dominio simili a quelli legittimi. I siti che eseguivano il CMS Magento sono stati attaccati.

Come G-Analytics viene implementato nel codice di un negozio online

Una caratteristica distintiva di questa famiglia è l'uso di vari metodi per rubare le informazioni di pagamento degli utenti. Oltre alla classica iniezione di codice JavaScript sul lato client del sito, il gruppo criminale ha utilizzato anche tecniche di code injection sul lato server del sito, vale a dire script PHP che elaborano i dati immessi dagli utenti. Questa tecnica è pericolosa perché rende difficile per i ricercatori di terze parti rilevare il codice dannoso. Gli specialisti di Group-IB hanno scoperto una versione di uno sniffer incorporato nel codice PHP del sito, utilizzando un dominio come porta dittm.org.

Quattro sniffer JavaScript che ti aspettano nei negozi online
È stata scoperta anche una prima versione di uno sniffer che utilizza lo stesso dominio per raccogliere dati rubati dittm.org, ma questa versione è destinata all'installazione sul lato client di un negozio online.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Successivamente il gruppo ha cambiato tattica e ha iniziato a concentrarsi maggiormente sul nascondere attività dannose e sul camuffamento.

All’inizio del 2017 il gruppo ha iniziato ad utilizzare il dominio jquery-js.com, mascherato da CDN per jQuery: quando si accede al 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 le attività dello sniffer come un servizio legittimo di Google Analytics.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Quattro sniffer JavaScript che ti aspettano nei negozi online

Analisi della versione

Durante l'analisi dei domini utilizzati per memorizzare lo sniffer code, si è riscontrato che il sito contiene un gran numero di versioni, che differiscono per la presenza di offuscamento, nonché per la presenza o meno di codice irraggiungibile aggiunto al file per distrarre l'attenzione e nascondere il codice dannoso.

Totale sul sito jquery-js.com Sono state identificate sei versioni di sniffer. Questi sniffer inviano i dati rubati a un indirizzo situato sullo stesso sito web 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

Dominio successivo g-analytics.com, utilizzato dal gruppo negli attacchi dalla metà del 2018, funge da archivio per più sniffer. In totale sono state scoperte 16 diverse versioni dello sniffer. In questo caso la porta per l'invio dei dati rubati era mascherata da collegamento a un formato immagine 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 criminale monetizza i dati rubati vendendo le carte attraverso un negozio sotterraneo appositamente creato che fornisce servizi ai cardatori. L'analisi dei domini utilizzati dagli aggressori ci ha permesso di determinarlo google-analytics.cm è stato registrato dallo stesso utente del dominio cardz.vc. Dominio cardz.vc si riferisce a un negozio che vende carte bancarie rubate Cardsurfs (Flysurfs), che ha guadagnato popolarità ai tempi dell'attività della piattaforma commerciale clandestina AlphaBay come negozio che vende carte bancarie rubate utilizzando uno sniffer.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Analisi del dominio analitico.è, situato sullo stesso server dei domini utilizzati dagli sniffer per raccogliere dati rubati, gli specialisti di Group-IB hanno scoperto un file contenente i registri dei cookie stealer, che sembra essere stato successivamente abbandonato dallo sviluppatore. Una delle voci nel registro conteneva un dominio iozoz.com, precedentemente utilizzato in uno degli sniffer attivi nel 2016. Presumibilmente questo dominio è stato precedentemente utilizzato da un utente malintenzionato per raccogliere carte rubate tramite uno sniffer. Questo dominio è stato registrato con un indirizzo email [email protected], che veniva utilizzato anche per registrare i domini cardz.su и cardz.vc, relativo al negozio di carte Cardsurfs.

Sulla base dei dati ottenuti, si può presumere che la famiglia di sniffer G-Analytics e il negozio clandestino di carte bancarie Cardsurfs siano gestiti dalle stesse persone e che il negozio venga utilizzato per vendere carte bancarie rubate utilizzando lo sniffer.

infrastruttura

Nome di dominio Data di scoperta/apparizione
iozoz.com 08.04.2016
dittm.org 10.09.2016
jquery-js.com 02.01.2017
g-analytics.com 31.05.2018
google-analytics.is 21.11.2018
analitico.a 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
analitico.è 28.12.2018
googlc-analytics.cm 17.01.2019

Famiglia Illum

Illum è una famiglia di sniffer utilizzata per attaccare i negozi online che utilizzano il CMS Magento. Oltre all'introduzione di codice dannoso, gli operatori di questo sniffer utilizzano anche l'introduzione di veri e propri moduli di pagamento falsi che inviano dati alle porte controllate dagli aggressori.

Analizzando l'infrastruttura di rete utilizzata dagli operatori di questo sniffer, è stato notato un gran numero di script dannosi, exploit, moduli di pagamento falsi, nonché una raccolta di esempi con sniffer dannosi della concorrenza. Sulla base delle informazioni relative alle date di comparsa dei nomi a dominio utilizzati dal gruppo si può supporre che la campagna sia iniziata alla fine del 2016.

Come Illum viene implementato nel codice di un negozio online

Le prime versioni dello sniffer scoperte erano integrate direttamente nel codice del sito compromesso. I dati rubati sono stati inviati a cdn.illum[.]pw/records.php, il cancello è stato codificato utilizzando base64.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Successivamente è stata scoperta una versione confezionata dello sniffer che utilizza un gate diverso: records.nstatistics[.]com/records.php.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Secondo rapporto Willem de Groot, lo stesso host è stato utilizzato nello sniffer su cui è stato implementato sito della rivista, di proprietà del partito politico tedesco CSU.

Analisi del sito web degli aggressori

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

Quattro sniffer JavaScript che ti aspettano nei negozi online
Tra gli strumenti trovati sul server degli aggressori c'erano script ed exploit per l'escalation dei privilegi nel sistema operativo Linux: ad esempio il Linux Privilege Escalation Check Script sviluppato da Mike Czumak, nonché un exploit per CVE-2009-1185.

Gli aggressori hanno utilizzato due exploit per attaccare direttamente i negozi online: prima in grado di iniettare codice dannoso core_config_data sfruttando CVE-2016-4010, secondo sfrutta una vulnerabilità RCE nei plugin per CMS Magento, consentendo l'esecuzione di codice arbitrario su un server web vulnerabile.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Inoltre, durante l'analisi del server sono stati scoperti diversi campioni di sniffer e moduli di pagamento falsi, utilizzati dagli aggressori per raccogliere informazioni di pagamento da siti compromessi. Come puoi vedere dall'elenco seguente, alcuni script sono stati creati individualmente per ciascun sito compromesso, mentre per alcuni CMS e gateway di pagamento è stata utilizzata una soluzione universale. Ad esempio, script segapay_standart.js и segapay_onpage.js progettato per l'implementazione su siti che utilizzano il gateway di pagamento Sage Pay.

Elenco di script per vari gateway di pagamento

Copione Casello stradale
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=

ospite pagamento adesso[.]tk, usato come cancello in una sceneggiatura pagamento_forminsite.js, è stato scoperto come soggettoAltName in diversi certificati relativi al servizio CloudFlare. Inoltre, l'host conteneva uno script male.js. A giudicare dal nome dello script, potrebbe essere utilizzato nell'ambito dello sfruttamento di CVE-2016-4010, grazie al quale è possibile iniettare codice dannoso nel footer di una pagina su cui è in esecuzione il CMS Magento. L'host ha utilizzato questo script come cancello richiesta.requestnet[.]tkutilizzando lo stesso certificato dell'host pagamento adesso[.]tk.

Forme di pagamento false

La figura seguente mostra un esempio di modulo per l'inserimento dei dati della carta. Questo modulo è stato utilizzato per infiltrarsi in un negozio online e rubare i dati delle carte.

Quattro sniffer JavaScript che ti aspettano nei negozi online
La figura seguente mostra un esempio di un falso modulo di pagamento PayPal utilizzato dagli aggressori per infiltrarsi nei siti con questo metodo di pagamento.
Quattro sniffer JavaScript che ti aspettano nei negozi online
infrastruttura

Nome di dominio Data di scoperta/apparizione
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
request.payrightnow.cf 25/05/2018
pagamentonow.tk 16/07/2017
linea-di-pagamento.tk 01/03/2018
pagamentopal.cf 04/09/2017
requestnet.tk 28/06/2017

Famiglia CoffeeMokko

La famiglia di sniffer CoffeMokko, progettata per rubare carte bancarie agli utenti di negozi online, è in uso almeno da maggio 2017. Presumibilmente gli operatori di questa famiglia di sniffer sono il gruppo criminale Gruppo 1, descritto dagli specialisti di RiskIQ nel 2016. Sono stati attaccati siti che utilizzano CMS come Magento, OpenCart, WordPress, osCommerce e Shopify.

Come CoffeMokko viene implementato nel codice di un 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 collegamento diretto allo sniffer.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Il codice sniffer codifica i nomi dei campi del modulo da cui i dati devono essere rubati. Lo sniffer verifica anche se l'utente si trova sulla pagina di pagamento controllando l'elenco delle parole chiave con l'indirizzo attuale dell'utente.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Alcune versioni dello sniffer scoperte erano offuscate e contenevano una stringa crittografata in cui era archiviata la serie principale di risorse: conteneva i nomi dei campi del modulo per vari sistemi di pagamento, nonché l'indirizzo del gate a cui dovevano essere inviati i dati rubati.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Le informazioni di pagamento rubate venivano inviate lungo il percorso a uno script sul server degli aggressori /savePayment/index.php o /tr/index.php. Presumibilmente, questo script viene utilizzato per inviare dati dal gate al server principale, che consolida i dati di tutti gli sniffer. Per nascondere i dati trasmessi, tutte le informazioni di pagamento della vittima vengono crittografate utilizzando base64, e quindi si verificano diverse sostituzioni di caratteri:

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

Come risultato delle sostituzioni di caratteri codificate utilizzando base64 I dati non possono essere decodificati senza eseguire la conversione inversa.

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

Quattro sniffer JavaScript che ti aspettano nei negozi online

Analisi delle infrastrutture

Nelle prime campagne, gli aggressori hanno registrato nomi di dominio simili a quelli di siti di shopping online legittimi. Il loro dominio potrebbe differire da quello legittimo per un simbolo o un altro TLD. I domini registrati venivano utilizzati per memorizzare lo sniffer code, un collegamento al quale era incorporato nel codice del negozio.

Questo gruppo utilizzava anche nomi di dominio che ricordano i popolari plugin 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 i cui nomi non avevano nulla a che fare con il dominio del negozio o con il tema del negozio.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Ogni dominio corrispondeva ad un sito su cui è stata creata la directory /js o / src. In questa directory sono stati archiviati gli script sniffer: uno sniffer per ogni nuova infezione. Lo sniffer era incorporato nel codice del sito web tramite un collegamento diretto, ma in rari casi gli aggressori hanno modificato uno dei file del sito web e vi hanno aggiunto codice dannoso.

Analisi del codice

Primo algoritmo di offuscamento

In alcuni campioni scoperti di sniffer di questa famiglia, il codice era offuscato e conteneva dati crittografati necessari al funzionamento dello sniffer: in particolare, l'indirizzo del gate dello sniffer, un elenco di campi del modulo di pagamento e, in alcuni casi, il codice di un falso modulo di pagamento. Nel codice all'interno della funzione, le risorse venivano crittografate utilizzando XOR dalla chiave che è stata passata come argomento alla stessa funzione.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Decriptando la stringa con l'apposita chiave, univoca per ogni campione, è possibile ottenere una stringa contenente tutte le stringhe dello sniffer code separate da un carattere separatore.

Quattro sniffer JavaScript che ti aspettano nei negozi online

Secondo algoritmo di offuscamento

Nei campioni successivi di sniffer di questa famiglia è stato utilizzato un diverso meccanismo di offuscamento: in questo caso i dati sono stati crittografati utilizzando un algoritmo autoscritto. Una stringa contenente i dati crittografati necessari al funzionamento dello sniffer è stata passata come argomento alla funzione di decrittografia.

Quattro sniffer JavaScript che ti aspettano nei negozi online
Utilizzando la console del browser, è possibile decrittografare i dati crittografati e ottenere un array contenente risorse sniffer.

Quattro sniffer JavaScript che ti aspettano nei negozi online

Collegamento ai primi attacchi MageCart

Dall'analisi di uno dei domini utilizzati dal gruppo come gateway per la raccolta dei dati rubati, è emerso che tale dominio ospitava un'infrastruttura per il furto di carte di credito, identica a quella utilizzata dal Gruppo 1, uno dei primi gruppi, fondare dagli specialisti di RiskIQ.

Sono stati trovati due file sull'host della famiglia di sniffer CoffeMokko:

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

Contenuto del file mage.js Quattro sniffer JavaScript che ti aspettano nei negozi online
È stato inoltre stabilito che i primi domini utilizzati dal gruppo dietro la famiglia di sniffer 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 ai nomi di dominio del Gruppo 1 utilizzati negli attacchi del 2016.

Sulla base dei fatti accertati si può presumere che esista un collegamento tra gli operatori degli sniffer CoffeMokko e il gruppo criminale Group 1. Presumibilmente, gli operatori di CoffeMokko avrebbero potuto prendere in prestito strumenti e software dai loro predecessori per rubare le carte. Tuttavia, è più probabile che il gruppo criminale dietro l'utilizzo della famiglia di sniffer CoffeMokko siano gli stessi che hanno effettuato gli attacchi del Gruppo 1. Dopo la pubblicazione del primo rapporto sulle attività del gruppo criminale, tutti i loro nomi di dominio sono stati bloccato e gli strumenti sono stati studiati nei dettagli e descritti. Il gruppo è stato costretto a prendersi una pausa, a perfezionare i propri strumenti interni e a riscrivere lo sniffer code per continuare i suoi attacchi e rimanere inosservato.

infrastruttura

Nome di dominio Data di scoperta/apparizione
link-js.link 17.05.2017
info-js.link 17.05.2017
track-js.link 17.05.2017
map-js.link 17.05.2017
smart-js.link 17.05.2017
adorebeauty.org 03.09.2017
security-payment.su 03.09.2017
braincdn.org 04.09.2017
sagecdn.org 04.09.2017
slickjs.org 04.09.2017
oakandfort.org 10.09.2017
citywlnery.org 15.09.2017
dobell.su 04.10.2017
childrensplayclothing.org 31.10.2017
jewsondirect.com 05.11.2017
shop-rnib.org 15.11.2017
www.armadiolondon.org 16.11.2017
misshaus.org 28.11.2017
batteria-force.org 01.12.2017
kik-vape.org 01.12.2017
www.greatfurnituretradingco.org 02.12.2017
etradesupply.org 04.12.2017
replacemyremote.org 04.12.2017
all-about-sneakers.org 05.12.2017
mage-checkout.org 05.12.2017
nililotan.org 07.12.2017
lamoodbighat.net 08.12.2017
walletgear.org 10.12.2017
dahlie.org 12.12.2017
davidsfootwear.org 20.12.2017
blackriverimaging.org 23.12.2017
exrpesso.org 02.01.2018
parchi.su 09.01.2018
pmtonline.su 12.01.2018
otocap.org 15.01.2018
christohperward.org 27.01.2018
coffeetea.org 31.01.2018
www.energycoffe.org 31.01.2018
www.energytea.org 31.01.2018
teacoffe.net 31.01.2018
Adaptivecss.org 01.03.2018
coffemokko.com 01.03.2018
londontea.net 01.03.2018
ukcoffe.com 01.03.2018
labbe.biz 20.03.2018
batterianart.com 03.04.2018
btosports.net 09.04.2018
www.chicksaddlery.net 16.04.2018
paypaypay.org 11.05.2018
ar500arnor.com 26.05.2018
Authorizecdn.com 28.05.2018
slickmin.com 28.05.2018
bannerbuzz.info 03.06.2018
kandypens.net 08.06.2018
mylrendyphone.com 15.06.2018
freshchat.info 01.07.2018
3lift.org 02.07.2018
abtasty.net 02.07.2018
mechat.info 02.07.2018
zoplm.com 02.07.2018
zapaljs.com 02.09.2018
foodandcot.com 15.09.2018
freshdepor.com 15.09.2018
swappastore.com 15.09.2018
verywellfitness.com 15.09.2018
elegrina.com 18.11.2018
majsurplus.com 19.11.2018
top5value.com 19.11.2018

Fonte: habr.com

Aggiungi un commento