Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Skoraj vsak od nas uporablja storitve spletnih trgovin, kar pomeni, da bomo prej ali slej tvegali, da postanemo žrtev JavaScript snifferjev — posebne kode, ki jo zlonamerni uporabniki vstavijo na spletno stran za krajo podatkov o bančnih karticah, naslovih, ali uporabniških imenih in geslih.

Že skoraj 400.000 uporabnikov spletne strani in mobilne aplikacije letalske družbe British Airways je utrpelo škodo zaradi snifferjev, prav tako obiskovalci britanske strani športnega velikana FILA in ameriškega distributerja vstopnic Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris — te in mnoge druge plačilne sisteme so napadli.

Analitik skupine Threat Intelligence Group-IB Viktor Okorokov razlaga, kako snifferji vstopajo v kodo spletne strani in kradejo plačilne informacije, ter na katere CRM sisteme nastavljajo napade.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

»Skrita grožnja«

Tako se je zgodilo, da so JS snifferji dolgo časa ostali zunaj vidnega polja protivirusnih analitikov, banke in plačilni sistemi pa jih niso videli kot resno grožnjo. In povsem neutemeljeno. Strokovnjaki Group-IB so analizirali 2440 okuženih spletnih trgovin, katerih obiskovalci — skupaj približno 1,5 milijona na dan — so bili izpostavljeni tveganju kompromitacije. Med tistimi, ki so utrpeli škodo, niso samo uporabniki, temveč tudi spletne trgovine, plačilni sistemi in banke, ki so izdale kompromitirane kartice.

Poročilo Group-IB je postalo prva raziskava o darknet trgu snifferjev, njihovi infrastrukturi in načinih monetizacije, ki njihovim ustvarjalcem prinaša milijone dolarjev. Ugotovili smo 38 družin snifferjev, od katerih je le 12 prej poznalo raziskovalcem.

Podrobneje se bomo osredotočili na štiri družine snifferjev, ki smo jih preučevali med raziskavo.

Družina ReactGet

Snimferji družine ReactGet se uporabljajo za krajo podatkov kreditnih kartic na spletnih straneh spletnih trgovin. Snimfer lahko deluje z veliko različnimi plačilnimi sistemi, ki se uporabljajo na strani: en vrednost parametra ustreza enemu plačilnemu sistemu, dodatne odkrite različice snimferja pa se lahko uporabljajo za krajo prijavnih podatkov, kot tudi za krajo podatkov kreditnih kartic iz plačilnih obrazcev takoj več plačilnih sistemov, kot tako imenovani univerzalni snimfer. Ugotovljeno je bilo, da v nekaterih primerih napadalci izvajajo phishing napade na skrbnike spletnih trgovin z namenom pridobitve dostopa do administratorskega vmesnika spletne strani.

Kampanja z uporabo te družine snimferjev se je začela maja 2017, napadeni so bili spletni strani pod upravljanjem CMS in platform Magento, Bigcommerce, Shopify.

Kako ReactGet vstopa v kodo spletne trgovine

Poleg 'klasičnega' vstavitve skripta prek povezave, operaterji snimferjev družine ReactGet uporabljajo posebno tehniko: s pomočjo JavaScript kode preverjajo, ali trenutni naslov, na katerem se nahaja uporabnik, ustreza določenim kriterijem. Zlonamerna koda se bo izvedla le, če trenutni URL vsebuje podniz checkout ili onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Tako bo koda snimferja izvedena ravno v trenutku, ko bo uporabnik prešel na plačilo in vnesel plačilne podatke v obrazec na spletni strani.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Ta snimfer uporablja nestandardno tehniko. Plačilni in osebni podatki žrtve se zbirajo skupaj, kodirani s pomočjo base64, nato pa se pridobljena vrstica uporablja kot parameter za pošiljanje zahteve na spletno stran napadalcev. Najpogosteje pot do gajta posnema JavaScript datoteko, na primer resp.js, data.js in tako naprej, vendar se uporabljajo tudi povezave na slikovne datoteke, GIF in JPG. Značilnost je, da snimfer ustvari slikovni objekt velikosti 1 na 1 piksel in uporabi prej pridobljeno povezavo kot parameter src slike. To pomeni, da bo takšen poziv za uporabnika v prometu izgledal kot zahteva navadne slike. Podobna tehnika je bila uporabljena v sniffers družine ImageID. Poleg tega se tehnika z uporabo slike velikosti 1 na 1 piksel uporablja v mnogih legitimnih skriptih za spletno analitiko, kar lahko uporabnika še dodatno zmede.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Analiza različic

Analiza aktivnih domen, ki jih uporabljajo operaterji sniffers ReactGet, je omogočila odkritje številnih različnih različic teh sniffers. Različice se razlikujejo po prisotnosti ali odsotnosti obfuzacije, poleg tega pa je vsak sniffer namenjen določenemu plačilnemu sistemu, ki obdeluje plačila s kreditnimi karticami za spletne trgovine. S preizkušanjem vrednosti parametra, ki ustreza številu različice, so strokovnjaki iz Group-IB dobili celoten seznam razpoložljivih variacij snifferjev, po imenu polj oblik, ki jih vsak sniffer išče v kodi strani, pa so določili plačilne sisteme, na katere je sniffer usmerjen.

Seznam snifferjev in povezanih plačilnih sistemov

URL snifferjaPlačilni sistem
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 gesel

Ena od prednosti JavaScript snifferjev, ki delujejo na klijentovi strani spletne strani, je njihova vsestranskost: vdelana zlonamerna koda na strani lahko ukrade podatke katerega koli tipa, bodisi plačilne podatke bodisi uporabniško ime in geslo računa. Strokovnjaki iz Group-IB so odkrili vzorec snifferja, ki pripada družini ReactGet, namenjenemu kraji elektronskih naslovov in gesel uporabnikov spletne strani.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Prekrivanje s snifferjem ImageID

Med analizo ene od okuženih trgovin je bilo ugotovljeno, da je bila njena spletna stran okužena dvakrat: poleg zlonamerne kode snifferja družine ReactGet je bila odkrita tudi koda snifferja družine ImageID. To prekrivanje bi lahko kazalo na to, da operaterji, ki stojijo za uporabo obeh snifferjev, uporabljajo podobne tehnike za vpeljavo zlonamerne kode.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Univerzalni sniffer

При анализе одного из доменных имен, связанных с инфраструктурой снифферов ReactGet, было установлено, что тот же пользователь зарегистрировал три других доменных имени. Эти три домена имитировали настоящие сайты и ранее использовались для размещения снифферов. При анализе кода трех легитимных сайтов был обнаружен неизвестный сниффер, а дальнейший анализ показал, что это усовершенствованная версия сниффера ReactGet. Все ранее отслеженные версии снифферов этого семейства были нацелены на одну конкретную платежную систему, то есть для каждой такой системы требовалась своя версия сниффера. Однако в данном случае была обнаружена универсальная версия, способная похищать информацию из форм, относящихся к 15 разным платежным системам и модулям ecommerce-сайтов для проведения онлайн-платежей.

В начале работы сниффер искал базовые поля формы, содержащие персональную информацию жертвы: полное имя, физический адрес, номер телефона.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Затем сниффер искал более чем по 15 различным префиксам, соответствующим различным платежным системам и модулям для онлайн-платежей.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
После этого персональные данные жертвы и платежная информация собирались воедино и отправлялись на подконтрольный злоумышленнику сайт: в этом конкретном случае были обнаружены две версии универсального сниффера ReactGet, размещенные на двух разных взломанных сайтах. Однако обе версии отправляли украденные данные на один и тот же взломанный сайт. zoobashop.com.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Анализ префиксов, используемых сниффером для поиска полей с платежной информацией жертвы, позволил определить, что этот образец сниффера был нацелен на следующие платежные системы:

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

Какие инструменты используются для кражи платежной информации

Первый инструмент, обнаруженный в ходе анализа инфраструктуры атакующих, служит для обфускации вредоносных скриптов, отвечающих за кражу банковских карт. На одном из хостов атакующих был найден bash-скрипт, использующий CLI проекта javascript-obfuscator для автоматизации обфускации кода снифферов.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Drugi od pronađenih alata služi za generisanje koda koji je odgovoran za učitavanje glavnog sniffera. Ovaj alat generiše JavaScript kod koji proverava da li se korisnik nalazi na stranici za plaćanje, tražeći u trenutnoj adresi korisnika niz checkout, korpa i tako dalje, i ako je rezultat pozitivan, kod učitava glavni sniffer s servera napadača. Kako bi sakrili malicioznu aktivnost, svi stringovi, uključujući testne stringove za identifikaciju stranice za plaćanje, kao i link na sniffer, su kodirani pomoću base64.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Phishing napadi

Tokom analize mrežne infrastrukture napadača utvrđeno je da često za pristup administratorskoj panelu ciljnog online prodavca zločinačka grupa koristi phishing. Napadači registruju domen koji je vizuelno sličan domenu prodavnice, a zatim postavljaju lažni obrazac za prijavu administratorske panele Magento. U slučaju uspeha, napadači dobijaju pristup u CMS Magento administrativni panel, što im omogućava da uređuju komponente sajta i implementiraju sniffer za krađu podataka o kreditnim karticama.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Infrastruktura

DomenDatum otkrića/pojave
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

G-Analytics Family

Ova porodica sniffera se koristi za krađu kartica klijenata online prodavnica. Najpre registrovano domensko ime koje je koristila grupa bilo je u aprilu 2016. godine, što može ukazivati na početak aktivnosti grupe sredinom 2016. godine.

U trenutnoj kampanji grupa koristi domenska imena koja imituju stvarne servise, poput Google Analytics i jQuery, maskirajući aktivnost sniffera legitimnim skriptama i sličnim legitimnim domenima. Meta su bili sajtovi koji koriste CMS Magento.

Kako se G-Analytics implementira u kod online prodavnice

Posebna značilnost ove porodice je korišćenje različitih metoda krađe platnih informacija korisnika. Osim klasičnog umetanja JavaScript koda u klijentski deo sajta, zločinačka grupa je takođe koristila tehniku umetanja koda u serverski deo sajta, naročito PHP skripte koje obrađuju podatke koje korisnik unosi. Ova tehnika je opasna jer otežava otkrivanje malicioznog koda od strane vanjskih istražitelja. Stručnjaci Group-IB su otkrili verziju sniffer-a ugrađenog u PHP kod sajta, koji koristi kao gateway domen dittm.org.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Takođe je otkrivena ranoj verziji sniffer-a, koja koristi isti domen za prikupljanje ukradenih podataka dittm.org, ali ova verzija je već namenjena za instalaciju na klijentskoj strani online prodavnice.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Kasnije je grupa promenila svoju taktiku i počela da se više fokusira na skrivanje maliciozne aktivnosti i maskiranje.

Početkom 2017. godine grupa je počela da koristi domen jquery-js.com, koji se maskira kao CDN za jQuery: kada korisnik pređe na sajt napadača, preusmerava ga na legitiman sajt jquery.com.

A sredinom 2018. godine grupa je usvojila domen g-analytics.com i počela da maskira aktivnosti sniffer-a kao legitiman servis Google Analytics.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Analiza različic

Tokom analize domena koji se koriste za skladištenje koda sniffer-a, utvrđeno je da na sajtu postoji veliki broj verzija koje se razlikuju po prisutnosti obfuskacije, kao i po prisustvu ili odsustvu nedostupnog koda koji je dodat u fajl radi odvlačenja pažnje i sakrivanja malicioznog koda.

Svega na sajtu jquery-js.com je otkriveno šest verzija sniffer-a. Ukradeni podaci se šalju na adresu koja se nalazi na istom sajtu gde je i sam sniffer: 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

Kasniji domen g-analytics.com, koji grupa koristi u napadima od sredine 2018. godine, služi kao skladište za veći broj sniffer-a. Svega je otkriveno 16 različitih verzija sniffer-a. U ovom slučaju, gateway za slanje ukradenih podataka je maskiran kao link na sliku formata 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

Zločinačka grupa monetizuje ukradene podatke prodajom kartica putem specijalno kreirane podzemne prodavnice koja nudi usluge karderima. Analiza domena koje koriste napadači omogućila je određivanje da google-analytics.cm был зарегистрирован тем же пользователем, что и домен cardz.vc. Домен cardz.vc относится к магазину по продаже украденных банковских карт Cardsurfs (Flysurfs), который обрел популярность еще во времена активности подпольной торговой площадки AlphaBay как магазин по продаже банковских карт, украденных при помощи сниффера.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Анализируя домен analytic.is, расположенный на том же сервере, что и домены, используемые снифферами для сбора украденных данных, специалисты Group-IB обнаружили файл, содержащий логи Cookie-стиллера, который, похоже, позднее был заброшен разработчиком. Одна из записей в логе содержала домен iozoz.com, который ранее был использован в одном из снифферов, активных в 2016 году. Предположительно, этот домен ранее использовался злоумышленником для сбора украденных при помощи сниффера карт. Этот домен был зарегистрирован на email-адрес kts241@gmail.com, который также был использован для регистрации доменов cardz.su in cardz.vc, относящихся к кардинговому магазину Cardsurfs.

Исходя из полученных даннных, можно сделать предположение, что семейство снифферов G-Analytics и подпольный магазин по продаже банковских карт Cardsurfs управляются одними и теми же людьми, а магазин используется для реализации банковских карт, украденных при помощи сниффера.

Infrastruktura

DomenDatum otkrića/pojave
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

Семейство Illum

Illum — семейство снифферов, применяемое для атак на онлайн-магазины, работающие под управлением CMS Magento. Помимо внедрения вредоносного кода, операторы этого сниффера также используют внедрение полноценных поддельных форм оплаты, которые отправляют данные на подконтрольные злоумышленникам гейты.

При анализе сетевой инфраструктуры, которую используют операторы этого сниффера, было отмечено большое количество вредоносных скриптов, эксплойтов, поддельных платежных форм, а также сборник примеров с вредоносными снифферами конкурентов. Исходя из информации о датах появления доменных имен, используемых группой, можно предположить, что начало кампании приходится на конец 2016 года.

Как Illum внедряется в код онлайн-магазина

Первые обнаруженные версии сниффера внедрялись прямо в код скомпрометированного сайта. Украденные данные отправлялись по адресу cdn.illum[.]pw/records.php, гейт же был закодирован при помощи base64.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Kasneje je bila odkrita pakirana različica snifferja, ki uporablja drugo vrata — records.nstatistics[.]com/records.php.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Po poročilu Willem de Groot, enak gostitelj je bil uporabljen v snifferju, ki je bil nameščen na spletni strani trgovine, ki pripada nemški politični stranki CSU.

Analiza spletne strani kriminalcev

Strokovnjaki Group-IB so odkrili in analizirali spletno stran, ki jo uporablja ta kriminalna skupina za shranjevanje orodij in zbiranje ukradene informacije.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Med orodji, odkritimi na strežniku kriminalcev, so bili najdeni skripti in eksploit za povečanje privilegijev v operacijskem sistemu Linux: na primer, skript za preverjanje povečanja privilegijev Linux, ki ga je razvil Mike Czumak, kot tudi eksploit za CVE-2009-1185.

Natančno za napade na spletne trgovine so kriminalci uporabljali dva eksploit: prvi zmožen je vstaviti zlonamerno kodo v core_config_data s pomočjo izkoriščanja CVE-2016-4010, drugi izkorišča ranljivost tipa RCE v vtičnikih za CMS Magento, kar omogoča izvajanje poljubne kode na ranljivem spletni strežniku.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Prav tako so med analizo strežnika odkrili različne vzorce snifferjev in lažnih plačilnih obrazcev, ki jih kriminalci uporabljajo za zbiranje plačilnih informacij s hekerskih spletnih strani. Kot je razvidno iz spodnjega seznama, so bili nekateri skripti ustvarjeni posebej za vsako hekersko spletno stran, medtem ko je bilo za nekatere CMS in plačilne prehode uporabljeno univerzalno rešitev. Na primer, skripti segapay_standart.js in segapay_onpage.js so namenjeni vstavitvi na spletne strani, ki uporabljajo plačilni prehod Sage Pay.

Seznam skriptov za različne plačilne prehode

SkriptPlačilni prehod
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=

Strežnik paymentnow[.]tk, uporabljen kot vrata v skriptu payment_forminsite.js, je bil odkrit kot subjectAltName v več certifikatih, povezanih s storitvijo CloudFlare. Poleg tega je na gostitelju bil skript evil.js. Glede na ime skripte je bil lahko uporabljen v okviru izkoriščanja CVE-2016-4010, s katerim je mogoče vstaviti zlonamerno kodo v nogo spletne strani, upravljane s CMS Magento. Kot vrata je ta skript uporabil gostitelj request.requestnet[.]tk, ki uporablja isti certifikat kot gostitelj paymentnow[.]tk.

Lažni plačilni obrazci

Spodaj na sliki je prikazan primer obrazca za vnos podatkov s kartice. Ta obrazec je bil uporabljen za vstavljanje na spletno stran spletne trgovine in krajo podatkov s kartice.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Na naslednjem risanju je primer ponarejenega plačilnega obrazca PayPal, ki so ga zlonamerni uporabniki uporabili za infiltracijo na spletne strani s to metodo plačila.
Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Infrastruktura

DomenDatum otkrića/pojave
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

Družina CoffeMokko

Družina snifferjev CoffeMokko, namenjenih kraji bančnih kartic uporabnikov spletnih trgovin, se uporablja vsaj od maja 2017. Domneva se, da so operaterji te družine snifferjev kriminalna skupina Group 1, opisana s strani strokovnjakov RiskIQ leta 2016. Napadi so bili usmerjeni na spletne strani, ki jih upravljajo CMS-ji, kot so Magento, OpenCart, WordPress, osCommerce, Shopify.

Kako se CoffeMokko vgradi v kodo spletne trgovine

Operaterji te družine ustvarjajo edinstvene snifferje za vsako okužbo: datoteka snifferja se nahaja v imeniku src ili js na strežniku zlonamernih uporabnikov. Infiltracija v kodo spletne strani se izvede preko neposredne povezave na sniffer.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
V kodi snifferja so trdno zakodirana imena polj obrazca, iz katerih je treba ukrasti podatke. Sniffer prav tako preverja, ali se uporabnik nahaja na strani z obdelavo plačil, tako da primerja seznam ključnih besed z aktualnim naslovom uporabnika.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Nekatere odkritje različice snifferja so bile obfuscirane in so imele šifrirano vrstico, v kateri je bila shranjena glavna tabela virov: prav tam so bila imena polj obrazcev za različne plačilne sisteme, pa tudi naslov vrat, na katerega je treba poslati ukradene podatke.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Ukradena plačilna informacija se je pošiljala skriptu na strežniku zlonamernih uporabnikov preko poti /savePayment/index.php или /tr/index.php. Domneva se, da ta skript služi za pošiljanje podatkov z vrat na glavni strežnik, ki konsolidira podatke iz vseh snifferjev. Za prikrivanje posredovanih podatkov se vsa plačilna informacija žrtve kodira s pomočjo base64, nato pa pride do več zamenjav znakov:

  • znak «e» se zamenja z «:»
  • znak «w» se zamenja z «+»
  • znak «o» se zamenja z «%»
  • znak «d» se zamenja z «#»
  • znak «a» se zamenja z «-»
  • znak «7» se zamenja z «^»
  • znak «h» se zamenja z «_»
  • znak «T» se zamenja z «@»
  • znak «0» se zamenja z «/»
  • znak «Y» se zamenja z «*»

Zaradi zamenjav znakov je podatke, kodirane s pomočjo base64 nemogoče dekodirati, ne da bi se izvedlo obratno preoblikovanje.

Tako izgleda del kode snifferja, ki ni bil obfuskiran:

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Analiza infrastrukture

V prejšnjih kampanjah so zlonamerni akterji registrirali domena, podobne domenam legitimnih spletnih trgovin. Njihova domena se je lahko razlikovala od legitimne samo po enem znaku ali drugem TLD-ju. Registrirane domene so se uporabljale za shranjevanje kode snifferja, povezava do katere je bila vdelana v kodo trgovine.

Poleg tega je ta skupina uporabljala domene, ki spominjajo na imena priljubljenih vtičnikov za jQuery (slickjs[.]org za spletna mesta, ki uporabljajo vtičnik slick.js), plačilnih prehodov (sagecdn[.]org za spletna mesta, ki uporabljajo plačilni sistem Sage Pay).

Kasneje je skupina začela ustvarjati domene, katerih imena niso imela nič skupnega niti z domeno trgovine niti s tematiko trgovine.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Vsaki domeni je ustrezala spletna stran, na kateri je bila ustvarjena mapa /js ili /src. V tej mapi so bili shranjeni skripti snifferjev: en sniffer za vsako novo okužbo. Sniffer je bil vdelan v kodo spletne strani preko neposredne povezave, vendar so zlonamerni akterji v redkih primerih spremenili eno izmed datotek spletne strani in v njej dodali zlonamerno kodo.

Analiza kode

Prvi algoritem obfuskacije

V nekaterih odkritih vzorcih snifferjev te družine je bil koda obfuskirana in je vsebovala šifrirane podatke, potrebne za delovanje snifferja: zlasti naslov prehoda snifferja, seznam polj plačilne oblike, v nekaterih primerih pa tudi kodo lažne plačilne oblike. V kodi znotraj funkcije so bili viri šifrirani z XOR po ključu, ki je bil posredovan kot argument te iste funkcije.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Če dešifrirate vrstico s pravilnim ključem, edinstvenim za vsak vzorec, lahko dobite vrstico, ki vsebuje vse vrstice iz kode snifferja, ločene z ločilnim znakom.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Drugi algoritem obfuskacije

V poznejših vzorcih snifferjev te družine je bil uporabljen drug mehanizem obfuskacije: v tem primeru so bili podatki šifrirani z uporabo samorazvitega algoritma. Vrstica, ki vsebuje šifrirane podatke, potrebne za delovanje snifferja, je bila posredovana kot argument funkcije za dešifriranje.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
S pomočjo konzole brskalnika je mogoče dešifrirati šifrirane podatke in dobiti tabelo, ki vsebuje vire snifferja.

Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah

Povezava z zgodnjimi napadi MageCart

Med analizo enega od domen, ki jih skupina uporablja kot vrata za zbiranje ukradenih podatkov, je bilo ugotovljeno, da je na tej domeni nameščena infrastruktura za krajo kreditnih kartic, identična tisti, ki so jo uporabljali Group 1 - ena izmed prvih skupin, odkritih s strani strokovnjakov RiskIQ.

Na strežniku družine snifferjev CoffeMokko so bili odkriti dva datoteki:

  • mage.js — datoteka, ki vsebuje kodo snifferja Group 1 z naslovom vrat js-cdn.link
  • mag.php — PHP skript, ki je odgovoren za zbiranje ukradenih podatkov s strani snifferja

Содержимое файла mage.js Štiri JavaScript snifferji, ki prežijo na vas v spletnih trgovinah
Prav tako je bilo ugotovljeno, da so bile najranije domene, ki jih je skupina, odgovorna za družino snifferjev CoffeMokko, registrirane 17. maja 2017:

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

Format teh domenskih imen se ujema z domenskimi imeni Group 1, ki so bila uporabljena v napadih leta 2016.

Na podlagi odkritega lahko sklepamo, da obstaja povezanost med operaterji snifferjev CoffeMokko in kriminalno skupino Group 1. Predvideva se, da so operaterji CoffeMokko lahko prevzeli orodja in programsko opremo za krajo kartic od svojih predhodnikov. Vendar je bolj verjetno, da so člani, ki stojijo za uporabo snifferjev družine CoffeMokko, iste osebe, ki so izvedle napade v okviru aktivnosti Group 1. Po objavi prvega poročila o dejavnostih kriminalne skupine so bila vsa njihova domenska imena blokirana, orodja pa so bila podrobno preučena in opisana. Skupina je bila prisiljena vzeti odmor, da bi izboljšala svoja notranja orodja in prepisala kodo snifferjev, da bi lahko nadaljevala s svojimi napadi in ostala neopažena.

Infrastruktura

DomenDatum otkrića/pojave
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

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster