Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Gotovo svi koristimo usluge online trgovina, što znači da prije ili kasnije riskiramo da postanemo žrtva JavaScript sniffera - posebnog koda koji napadači implementiraju na web stranicu za krađu podataka o bankovnim karticama, adresa, prijava i lozinki korisnika. .

Skoro 400 korisnika web stranice i mobilne aplikacije British Airwaysa već je pogođeno njuškama, kao i posjetitelji britanske web stranice sportskog giganta FILA-e i američkog distributera karata Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - ovi i mnogi drugi sistemi plaćanja su zaraženi.

Analitičar Threat Intelligence Group-IB Viktor Okorokov govori o tome kako njuškari infiltriraju kod web stranice i kradu informacije o plaćanju, kao i koje CRM-ove napadaju.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

"Skrivena prijetnja"

Dogodilo se da su dugo vremena JS snifferi ostali van vidokruga antivirusnih analitičara, a banke i platni sistemi u njima nisu vidjeli ozbiljnu prijetnju. I potpuno uzalud. Stručnjaci Grupe-IB analiziran 2440 zaraženih online prodavnica, čiji su posetioci - ukupno oko 1,5 miliona ljudi dnevno - bili u opasnosti od kompromitovanja. Među žrtvama nisu samo korisnici, već i internet prodavnice, platni sistemi i banke koje su izdale kompromitovane kartice.

Izveštaj Group-IB je postala prva studija darknet tržišta za njuškale, njihovu infrastrukturu i metode monetizacije, koja njihovim kreatorima donosi milione dolara. Identifikovali smo 38 porodica njuškača, od kojih je samo 12 ranije bilo poznato istraživačima.

Zaustavimo se detaljno na četiri porodice njuškala koje su proučavane tokom studije.

ReactGet Family

Sniffers iz ReactGet porodice se koriste za krađu podataka o bankovnim karticama na stranicama za online kupovinu. Sniffer može raditi s velikim brojem različitih sistema plaćanja koji se koriste na stranici: jedna vrijednost parametra odgovara jednom sistemu plaćanja, a pojedinačne otkrivene verzije njuškala mogu se koristiti za krađu akreditiva, kao i za krađu podataka o bankovnoj kartici iz plaćanja oblici više platnih sistema odjednom, poput takozvanog univerzalnog njuškala. Utvrđeno je da u nekim slučajevima napadači provode phishing napade na administratore online trgovine kako bi dobili pristup administrativnom panelu stranice.

Kampanja koja koristi ovu porodicu njuškala počela je u maju 2017. godine; napadnute su stranice koje koriste CMS i Magento, Bigcommerce i Shopify platforme.

Kako je ReactGet implementiran u kod online trgovine

Pored „klasične“ implementacije skripte putem veze, operateri ReactGet porodice njuškača koriste posebnu tehniku: pomoću JavaScript koda provjeravaju da li trenutna adresa na kojoj se korisnik nalazi ispunjava određene kriterije. Zlonamjerni kod će se izvršiti samo ako je podniz prisutan u trenutnom URL-u odjavljivanje ili naplata u jednom koraku, jedna stranica/, out/onepag, naplata/jedan, ckout/one. Dakle, sniffer kod će se izvršiti tačno u trenutku kada korisnik nastavi sa plaćanjem kupovine i unese podatke o plaćanju u obrazac na sajtu.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Ovaj njuškalo koristi nestandardnu ​​tehniku. Plaćanje i lični podaci žrtve se prikupljaju zajedno i kodiraju koristeći base64, a zatim se rezultirajući niz koristi kao parametar za slanje zahtjeva web stranici napadača. Najčešće, put do kapije imitira JavaScript datoteku, na primjer resp.js, data.js i tako dalje, ali se koriste i veze do slikovnih datoteka, GIF и JPG. Posebnost je u tome što njuškalo kreira objekat slike dimenzija 1 sa 1 piksel i koristi prethodno primljenu vezu kao parametar src Slike. Odnosno, za korisnika će takav zahtjev u prometu izgledati kao zahtjev za običnu sliku. Slična tehnika je korištena u ImageID porodici njuškača. Osim toga, tehnika korištenja slike veličine 1x1 piksel koristi se u mnogim legitimnim skriptama za online analitiku, što također može dovesti u zabludu korisnika.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Analiza verzije

Analiza aktivnih domena koje koriste ReactGet operatori njuškanja otkrila je mnogo različitih verzija ove porodice njuškala. Verzije se razlikuju po prisutnosti ili odsustvu zamagljivanja, a osim toga, svaki sniffer je dizajniran za određeni sistem plaćanja koji obrađuje plaćanja bankovnim karticama za online trgovine. Nakon što su sortirali vrijednost parametra koji odgovara broju verzije, stručnjaci Grupe-IB dobili su kompletnu listu dostupnih varijacija njuškala, a prema nazivima polja obrasca koje svaki njuškalo traži u kodu stranice, identifikovali su sisteme plaćanja na koje je njuškalo usmjereno.

Lista njuškala i njihovih odgovarajućih sistema plaćanja

Sniffer URL Sistem plaćanja
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.4 eWAY 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.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 pruga
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 Cyber ​​izvor
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 Cyber ​​izvor
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 Cyber ​​izvor
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 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.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 First Data Global Gateway
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
maxstatis.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 pruga
mxcounter.com/c.js?v=1.6 Authorize.Net
mxcounter.com/c.js?v=1.7 eWAY 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.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 pruga
mxcounter.com/click.js?v=1.6 Authorize.Net
mxcounter.com/click.js?v=1.7 eWAY Rapid
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 pruga
nr-public.com/api.js?v=2.4 First 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.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 EBizCharge
nr-public.com/api.js?v=4.0.8 Authorize.Net
nr-public.com/api.js?v=4.0.9 Verisign
nr-public.com/api.js?v=4.1.2 Verisign
ordercheckpays.com/api.js?v=2.11 Authorize.Net
ordercheckpays.com/api.js?v=2.12 PayPal
ordercheckpays.com/api.js?v=2.13 Moneris
ordercheckpays.com/api.js?v=2.14 Authorize.Net
ordercheckpays.com/api.js?v=2.15 PayPal
ordercheckpays.com/api.js?v=2.16 PayPal
ordercheckpays.com/api.js?v=2.17 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 Cyber ​​izvor
ordercheckpays.com/api.js?v=2.4 PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7 Authorize.Net
ordercheckpays.com/api.js?v=2.8 Authorize.Net
ordercheckpays.com/api.js?v=2.9 Verisign
ordercheckpays.com/api.js?v=3.1 Authorize.Net
ordercheckpays.com/api.js?v=3.2 Authorize.Net
ordercheckpays.com/api.js?v=3.3 Sage Pay
ordercheckpays.com/api.js?v=3.4 Authorize.Net
ordercheckpays.com/api.js?v=3.5 pruga
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 kremen
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 pruga
reactjsapi.com/api.js?v=4.1.9 Fat Zebra
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 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.7 PayPal
reactjsapi.com/api.js?v=4.2.8 QuickBooks trgovačke usluge
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 Rapid
tagsmediaget.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 Cyber ​​izvor
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 Cyber ​​izvor
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 Rapid
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 First Data Global Gateway
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

Password sniffer

Jedna od prednosti JavaScript sniffera koji rade na strani klijenta web stranice je njihova svestranost: zlonamjerni kod ugrađen u web stranicu može ukrasti bilo koju vrstu podataka, bilo da su to podaci o plaćanju ili login i lozinka korisničkog računa. Stručnjaci Group-IB otkrili su uzorak njuškala koji pripada porodici ReactGet, dizajniran za krađu adresa e-pošte i lozinki korisnika stranice.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Raskrsnica sa ImageID njuškalom

Prilikom analize jedne od zaraženih prodavnica ustanovljeno je da je njena web stranica dva puta zaražena: pored zlonamjernog koda sniffera porodice ReactGet, otkriven je i kod sniffera porodice ImageID. Ovo preklapanje može biti dokaz da operateri koji stoje iza oba njuškala koriste slične tehnike za ubacivanje zlonamjernog koda.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Univerzalni njuškalo

Analiza jednog od imena domena povezanih s ReactGet infrastrukturom njuškanja otkrila je da je isti korisnik registrirao tri druga imena domena. Ova tri domena imitiraju domene web stranica iz stvarnog života i ranije su korištene za hostiranje njuškala. Prilikom analize koda tri legitimna sajta, otkriven je nepoznati sniffer, a dalja analiza je pokazala da se radi o poboljšanoj verziji ReactGet sniffera. Sve do sada praćene verzije ove porodice njuškača bile su usmjerene na jedan sistem plaćanja, odnosno svaki platni sistem zahtijevao je posebnu verziju njuškala. Međutim, u ovom slučaju je otkrivena univerzalna verzija njuškala koja je sposobna da ukrade informacije iz obrazaca vezanih za 15 različitih sistema plaćanja i modula e-commerce stranica za plaćanje putem interneta.

Dakle, na početku rada njuškač je tražio osnovna polja obrasca koja sadrže lične podatke žrtve: puno ime, fizičku adresu, broj telefona.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Sniffer je zatim pretražio preko 15 različitih prefiksa koji odgovaraju različitim sistemima plaćanja i modulima za online plaćanje.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Zatim su zajedno prikupljeni lični podaci žrtve i informacije o plaćanju i poslani na lokaciju koju kontroliše napadač: u ovom konkretnom slučaju otkrivene su dvije verzije univerzalnog ReactGet njuškala, koje se nalaze na dvije različite hakovane stranice. Međutim, obje verzije slale su ukradene podatke na istu hakovanu stranicu zoobashop.com.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Analiza prefiksa koje je njuškalo koristio za traženje polja koja sadrže informacije o plaćanju žrtve omogućila nam je da utvrdimo da je ovaj uzorak njuškala bio namijenjen sljedećim sistemima plaćanja:

  • Authorize.Net
  • Verisign
  • Prvi podaci
  • USAePay
  • pruga
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Realex plaćanja
  • PsiGate
  • Heartland platni sustavi

Koji se alati koriste za krađu informacija o plaćanju?

Prvi alat, otkriven tokom analize infrastrukture napadača, koristi se za prikrivanje zlonamjernih skripti odgovornih za krađu bankovnih kartica. Bash skripta koja koristi CLI projekta otkrivena je na jednom od napadačevih hostova javascript-obfuscator za automatizaciju zamagljivanja sniffer koda.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Drugi otkriveni alat dizajniran je za generiranje koda odgovornog za učitavanje glavnog sniffera. Ovaj alat generira JavaScript kod koji provjerava da li je korisnik na stranici za plaćanje tražeći stringove na trenutnoj adresi korisnika odjavljivanje, kolica i tako dalje, a ako je rezultat pozitivan, onda kod učitava glavni sniffer sa servera napadača. Da bi se sakrila zlonamjerna aktivnost, svi redovi, uključujući testne linije za određivanje stranice plaćanja, kao i link na njuškalo, kodirani su pomoću base64.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Phishing napadi

Analiza mrežne infrastrukture napadača otkrila je da kriminalna grupa često koristi phishing kako bi pristupila administrativnom panelu ciljane online trgovine. Napadači registruju domen koji je vizuelno sličan domenu prodavnice, a zatim na njega postavljaju lažni obrazac za prijavu na Magento administrativni panel. Ako uspiju, napadači će dobiti pristup administrativnom panelu Magento CMS-a, koji im daje priliku da uređuju komponente web stranice i implementiraju njuškalo za krađu podataka o kreditnoj kartici.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Infrastruktura

Ime domena Datum otkrića/pojavljivanja
mediapack.info 04.05.2017
adsgetapi.com 15.06.2017
simcounter.com 14.08.2017
mageanalytics.com 22.12.2017
maxstatis.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

G-Analytics porodica

Ova porodica njuškala se koristi za krađu korisničkih kartica iz online prodavnica. Prvi naziv domene koji je koristila grupa registrovan je u aprilu 2016. godine, što može ukazivati ​​na to da je grupa počela sa radom sredinom 2016. godine.

U trenutnoj kampanji, grupa koristi imena domena koja imitiraju usluge iz stvarnog života, kao što su Google Analytics i jQuery, maskirajući aktivnost njuškača legitimnim skriptama i imenima domena sličnim legitimnim. Web lokacije koje koriste Magento CMS su napadnute.

Kako se G-Analytics implementira u kod online trgovine

Posebnost ove porodice je korištenje različitih metoda za krađu podataka o plaćanju korisnika. Pored klasičnog ubrizgavanja JavaScript koda na klijentsku stranu sajta, kriminalna grupa je koristila i tehnike ubacivanja koda na serversku stranu sajta, odnosno PHP skripte koje obrađuju podatke koje je uneo korisnik. Ova tehnika je opasna jer otežava istraživačima trećih strana da otkriju zlonamjerni kod. Stručnjaci Grupe-IB otkrili su verziju njuškala ugrađenog u PHP kod stranice, koristeći domenu kao kapiju dittm.org.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Otkrivena je i rana verzija njuškala koji koristi istu domenu za prikupljanje ukradenih podataka dittm.org, ali ova verzija je namijenjena za instalaciju na strani klijenta online trgovine.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Grupa je kasnije promijenila svoju taktiku i počela se više fokusirati na skrivanje zlonamjernih aktivnosti i kamuflaže.

Početkom 2017. godine grupa je počela koristiti domenu jquery-js.com, maskiran kao CDN za jQuery: kada ode na lokaciju napadača, korisnik se preusmjerava na legitimnu stranicu jquery.com.

Sredinom 2018. grupa je usvojila naziv domene g-analytics.com i počeo da prikriva aktivnosti njuškača kao legitimnu uslugu Google Analytics.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Analiza verzije

Tokom analize domena koji se koriste za pohranjivanje sniffer koda, ustanovljeno je da stranica sadrži veliki broj verzija, koje se razlikuju po prisutnosti zamagljivanja, kao i prisutnosti ili odsustvu nedostupnog koda koji se dodaje u fajl radi odvlačenja pažnje. i sakriti zlonamjerni kod.

Ukupno na web lokaciji jquery-js.com Identificirano je šest verzija njuškala. Ovi njuškari šalju ukradene podatke na adresu koja se nalazi na istoj web stranici kao i sam njuškalo: 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

Kasnije domen g-analytics.com, koju grupa koristi u napadima od sredine 2018. godine, služi kao spremište za više njuškala. Ukupno je otkriveno 16 različitih verzija njuškala. U ovom slučaju, kapija za slanje ukradenih podataka bila je prikrivena kao link ka formatu slike 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

Monetizacija ukradenih podataka

Kriminalna grupa ukradene podatke unovčava prodajom kartica putem posebno kreirane podzemne prodavnice koja pruža usluge kartičarima. Analiza domena koje su napadači koristili omogućila nam je da to utvrdimo google-analytics.cm je registrovan od strane istog korisnika kao i domena cardz.vc. Domain cardz.vc odnosi se na trgovinu koja prodaje ukradene bankovne kartice Cardsurfs (Flysurfs), koja je stekla popularnost još u danima djelovanja podzemne trgovačke platforme AlphaBay kao trgovina koja prodaje bankovne kartice ukradene pomoću njuškala.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Analiziranje domena analytical.is, koji se nalazi na istom serveru kao i domeni koje koriste njuškari za prikupljanje ukradenih podataka, stručnjaci Grupe-IB otkrili su datoteku koja sadrži dnevnike krađe kolačića, za koju se čini da je kasnije napušten od strane programera. Jedan od unosa u dnevnik sadržavao je domenu iozoz.com, koji je prethodno korišten u jednom od njuškala aktivnih 2016. Pretpostavlja se da je ovaj domen ranije koristio napadač za prikupljanje kartica ukradenih pomoću njuškala. Ova domena je registrovana na e-mail adresu [email zaštićen], koji je također korišten za registraciju domena cardz.su и cardz.vc, vezano za kardiranje Cardsurfs.

Na osnovu dobijenih podataka može se pretpostaviti da G-Analytics familiju njuškala i podzemnu prodavnicu bankovnih kartica Cardsurfovima upravljaju isti ljudi, a trgovina služi za prodaju bankovnih kartica ukradenih pomoću njuškala.

Infrastruktura

Ime domena Datum otkrića/pojavljivanja
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
analytical.to 04.12.2018
google-analytics.to 06.12.2018
google-analytics.cm 28.12.2018
analytical.is 28.12.2018
googlc-analytics.cm 17.01.2019

Porodica Illum

Illum je porodica njuškala koji se koristi za napad na online prodavnice koje koriste Magento CMS. Osim uvođenja zlonamjernog koda, operateri ovog sniffera koriste i uvođenje punopravnih lažnih obrazaca plaćanja koji šalju podatke na kapije koje kontroliraju napadači.

Prilikom analize mrežne infrastrukture koju koriste operateri ovog sniffera, uočen je veliki broj zlonamjernih skripti, eksploatacija, lažnih obrazaca plaćanja, kao i zbirka primjera sa zlonamjernim snifferima od konkurenata. Na osnovu podataka o datumima pojavljivanja naziva domena koje koristi grupa, može se pretpostaviti da je kampanja počela krajem 2016. godine.

Kako je Illum implementiran u kod online trgovine

Prve verzije otkrivenog njuškala bile su ugrađene direktno u kod kompromitovanog sajta. Ukradeni podaci su poslani na cdn.illum[.]pw/records.php, kapija je kodirana pomoću base64.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Kasnije je otkrivena upakovana verzija njuškala koja koristi drugačiju kapiju - records.nstatistics[.]com/records.php.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Prema izvještaj Willem de Groot, isti host je korišten u snifferu, koji je implementiran na sajt magazina, u vlasništvu njemačke političke stranke CSU.

Analiza web stranice napadača

Stručnjaci Grupe-IB otkrili su i analizirali web stranicu koju koristi ova kriminalna grupa za pohranjivanje alata i prikupljanje ukradenih informacija.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Među alatima pronađenim na serveru napadača bile su skripte i eksploatacije za povećanje privilegija u Linux OS-u: na primjer, skripta za provjeru eskalacije privilegija Linuxa koju je razvio Mike Czumak, kao i eksploat za CVE-2009-1185.

Napadači su koristili dva eksploatacije direktno za napad na online trgovine: первый sposoban za ubacivanje zlonamjernog koda core_config_data korišćenjem CVE-2016-4010, drugi iskorištava RCE ranjivost u dodacima za CMS Magento, omogućavajući izvršavanje proizvoljnog koda na ranjivom web serveru.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Takođe, tokom analize servera otkriveni su različiti uzorci njuškala i lažnih obrazaca za plaćanje koje su napadači koristili za prikupljanje informacija o plaćanju sa hakovanih sajtova. Kao što možete vidjeti iz liste ispod, neke skripte su kreirane pojedinačno za svaku hakovanu stranicu, dok je univerzalno rješenje korišteno za određene CMS i gejtvejeve za plaćanje. Na primjer, skripte segapay_standart.js и segapay_onpage.js dizajniran za implementaciju na web-lokacijama koje koriste Sage Pay platni prolaz.

Lista skripti za različite pristupe za plaćanje

Skripta Payment gateway
sr.illum[.]pw/mjs_special/visiondirect.co.uk.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/topdierenshop.nl.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/tiendalenovo.es.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/pro-bolt.com.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/plae.co.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/ottolenghi.co.uk.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/oldtimecandy.com.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/mylook.ee.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs_special/luluandsky.com.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/julep.com.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs_special/gymcompany.es.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/grotekadoshop.nl.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs_special/fushi.co.uk.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/fareastflora.com.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs_special/compuindia.com.js //request.payrightnow[.]cf/alldata.php
sr.illum[.]pw/mjs/segapay_standart.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs/segapay_onpage.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs/replace_standart.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/mjs/all_inputs.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/mjs/add_inputs_standart.js //request.payrightnow[.]cf/checkpayment.php
sr.illum[.]pw/magento/payment_standart.js //cdn.illum[.]pw/records.php
sr.illum[.]pw/magento/payment_redirect.js //payrightnow[.]cf/?payment=
sr.illum[.]pw/magento/payment_redcrypt.js //payrightnow[.]cf/?payment=
sr.illum[.]pw/magento/payment_forminsite.js //paymentnow[.]tk/?payment=

Domaćin plaćanje sada[.]tk, koristi se kao kapija u skripti payment_forminsite.js, otkriveno je kao subjectAltName u nekoliko certifikata vezanih za CloudFlare uslugu. Osim toga, host je sadržavao skriptu evil.js. Sudeći po nazivu skripte, mogao bi se koristiti kao dio eksploatacije CVE-2016-4010, zahvaljujući čemu je moguće ubaciti zlonamjerni kod u podnožje stranice na kojoj se pokreće CMS Magento. Domaćin je koristio ovu skriptu kao kapiju request.requestnet[.]tkkoristeći isti certifikat kao i host plaćanje sada[.]tk.

Lažni obrasci za plaćanje

Na slici ispod prikazan je primjer obrasca za unos podataka kartice. Ovaj obrazac je korišten za infiltriranje u internetsku trgovinu i krađu podataka o kartici.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Na sljedećoj slici prikazan je primjer lažnog PayPal obrasca za plaćanje koji su napadači koristili za infiltriranje web lokacija s ovim načinom plaćanja.
Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Infrastruktura

Ime domena Datum otkrića/pojavljivanja
cdn.illum.pw 27/11/2016
records.nstatistics.com 06/09/2018
request.payrightnow.cf 25/05/2018
paymentnow.tk 16/07/2017
payment-line.tk 01/03/2018
paymentpal.cf 04/09/2017
requestnet.tk 28/06/2017

CoffeeMokko porodica

Porodica njuškala CoffeMokko, dizajnirana za krađu bankovnih kartica od korisnika online prodavnica, u upotrebi je najmanje od maja 2017. godine. Pretpostavlja se da su operateri ove porodice njuškača kriminalna grupa Grupa 1, koju su opisali stručnjaci RiskIQ 2016. godine. Napadnute su stranice koje koriste CMS-ove kao što su Magento, OpenCart, WordPress, osCommerce i Shopify.

Kako je CoffeMokko implementiran u kod online trgovine

Operateri ove porodice kreiraju jedinstvene sniffere za svaku infekciju: datoteka sniffera se nalazi u direktoriju src ili js na serveru napadača. Ugradnja u šifru web-mjesta vrši se putem direktne veze na sniffer.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Sniffer kod čvrsto kodira imena polja obrasca iz kojih treba ukrasti podatke. Sniffer također provjerava da li je korisnik na stranici za plaćanje provjeravanjem liste ključnih riječi sa trenutnom adresom korisnika.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Neke otkrivene verzije njuškala bile su zamagljene i sadržavale su šifrovani niz u koji je bio pohranjen glavni niz resursa: sadržavao je nazive polja obrasca za različite platne sisteme, kao i adresu ulaza na koju treba poslati ukradene podatke.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Ukradeni podaci o plaćanju su usput poslani u skriptu na serveru napadača /savePayment/index.php ili /tr/index.php. Pretpostavlja se da se ova skripta koristi za slanje podataka sa kapije na glavni server, koji konsoliduje podatke sa svih njuškara. Kako bi se sakrili preneseni podaci, svi podaci o plaćanju žrtve su šifrirani pomoću base64, a zatim dolazi do nekoliko zamjena znakova:

  • znak "e" se zamjenjuje sa ":"
  • simbol "w" zamjenjuje se sa "+"
  • znak "o" se zamjenjuje sa "%"
  • znak "d" zamjenjuje se s "#"
  • znak "a" se zamjenjuje sa "-"
  • simbol "7" se zamjenjuje sa "^"
  • znak "h" se zamjenjuje sa "_"
  • simbol "T" se zamjenjuje sa "@"
  • znak "0" je zamijenjen sa "/"
  • znak "Y" se zamjenjuje sa "*"

Kao rezultat zamjene znakova kodiranih korištenjem base64 Podaci se ne mogu dekodirati bez izvođenja obrnute konverzije.

Ovako izgleda fragment koda za njuškanje koji nije zamagljen:

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Analiza infrastrukture

U ranim kampanjama, napadači su registrovali imena domena slična onima na legitimnim sajtovima za kupovinu na mreži. Njihov domen se može razlikovati od legitimnog po jednom simbolu ili drugom TLD-u. Registrirani domeni su korišteni za pohranjivanje koda sniffera, veza do kojeg je ugrađena u kod trgovine.

Ova grupa je također koristila imena domena koja podsjećaju na popularne jQuery dodatke (slickjs[.]org za web lokacije koje koriste dodatak slick.js), pristupnici za plaćanje (sagecdn[.]org za sajtove koji koriste sistem plaćanja Sage Pay).

Kasnije je grupa počela da kreira domene čija imena nisu imala nikakve veze sa domenom prodavnice ili temom prodavnice.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Svaka domena je odgovarala lokaciji na kojoj je kreiran direktorij /js ili / src. Sniffer skripte su pohranjene u ovom direktoriju: jedan sniffer za svaku novu infekciju. Sniffer je ugrađen u kôd web stranice putem direktne veze, ali u rijetkim slučajevima napadači su modificirali jednu od datoteka web stranice i dodali zlonamjerni kod u nju.

Analiza koda

Prvi algoritam zamagljivanja

U nekim otkrivenim uzorcima njuškala ove porodice, kod je bio zamagljen i sadržavao je šifrovane podatke neophodne za rad njuškala: posebno adresu njuškala, listu polja obrasca za plaćanje, a u nekim slučajevima i šifru lažnog obrazac za plaćanje. U kodu unutar funkcije, resursi su šifrirani pomoću XOR pomoću ključa koji je proslijeđen kao argument istoj funkciji.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Dešifriranjem stringa odgovarajućim ključem, jedinstvenim za svaki uzorak, možete dobiti string koji sadrži sve nizove iz koda sniffera kroz znak za razdvajanje.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Drugi algoritam zamagljivanja

U kasnijim uzorcima njuškala ove porodice korišćen je drugačiji mehanizam zamagljivanja: u ovom slučaju podaci su šifrovani pomoću algoritma koji je sam napisao. Niz koji sadrži šifrirane podatke potrebne za rad njuškala je proslijeđen kao argument funkciji dešifriranja.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Koristeći konzolu pretraživača, možete dešifrirati šifrirane podatke i dobiti niz koji sadrži resurse njuškanja.

Četiri JavaScript njuškala koja vas čekaju u online prodavnicama

Veza sa ranim MageCart napadima

Prilikom analize jednog od domena koje grupa koristi kao gateway za prikupljanje ukradenih podataka, ustanovljeno je da ovaj domen ima infrastrukturu za krađu kreditnih kartica, identičnu onoj koju koristi Grupa 1, jedna od prvih grupa, otkriveno od strane RiskIQ stručnjaka.

Dva fajla pronađena su na domaćinu porodice njuškača CoffeMokko:

  • mage.js — fajl koji sadrži kod grupe 1 sniffer sa adresom izlaza js-cdn.link
  • mag.php — PHP skripta odgovorna za prikupljanje podataka ukradenih od strane sniffera

Sadržaj datoteke mage.js Četiri JavaScript njuškala koja vas čekaju u online prodavnicama
Također je utvrđeno da su najraniji domeni koje je koristila grupa iza porodice njuškača CoffeMokko registrovani 17. maja 2017. godine:

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

Format ovih imena domena odgovara imenima domena Grupe 1 koji su korišteni u napadima 2016.

Na osnovu otkrivenih činjenica može se pretpostaviti da postoji veza između operatera njuškala CoffeMokko i kriminalne grupe 1. Pretpostavlja se da su CoffeMokko operateri mogli posuditi alate i softver od svojih prethodnika kako bi ukrali kartice. Međutim, vjerovatnije je da su kriminalna grupa koja stoji iza upotrebe njuškala porodice CoffeMokko isti ljudi koji su izvršili napade Grupe 1. Od objavljivanja prvog izvještaja o aktivnostima kriminalne grupe, sva imena njihovih domena su bila blokiran, a alati su detaljno proučeni i opisani. Grupa je bila primorana da napravi pauzu, usavrši svoje interne alate i prepiše kod za njuškanje kako bi nastavili sa svojim napadima i ostali neotkriveni.

Infrastruktura

Ime domena Datum otkrića/pojavljivanja
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
closetlondon.org 16.11.2017
misshaus.org 28.11.2017
battery-force.org 01.12.2017
kik-vape.org 01.12.2017
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
parks.su 09.01.2018
pmtonline.su 12.01.2018
otocap.org 15.01.2018
christohperward.org 27.01.2018
coffetea.org 31.01.2018
energycoffe.org 31.01.2018
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
batterynart.com 03.04.2018
btosports.net 09.04.2018
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
verywellfitnesse.com 15.09.2018
elegrina.com 18.11.2018
majsurplus.com 19.11.2018
top5value.com 19.11.2018

izvor: www.habr.com

Dodajte komentar