Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Takmer každý z nás využíva služby online obchodov, čo znamená, že skôr či neskôr riskuje stať sa obeťou JavaScriptových snifferov — špeciálneho kódu, ktorý útočníci vkladajú na webstránku na krádež údajov o bankových kartách, adresách, prihlasovacích menách a heslách používateľov.

Z snifferov už bolo postihnutých takmer 400 000 používateľov webu a mobilnej aplikácie leteckej spoločnosti British Airways, ako aj návštevníci britského webu športového giganta FILA a amerického distribútora vstupeniek Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris — tieto a mnohé ďalšie platobné systémy boli nakazené.

Analytik Threat Intelligence Group-IB Viktor Okorokov rozpráva o tom, ako sa sniffery vkladajú do kódu webu a kradnú platobné informácie, ako aj o tom, ktoré CRM systémy sú ich cieľom.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

„Skrytá hrozba“

Stalo sa, že dlhú dobu JS sniffery zostávali mimo zorného poľa antivírusových analytikov a banky a platobné systémy nevideli v nich vážnu hrozbu. A to je úplne zbytočné. Odborníci Group-IB analyzovali 2440 infikovaných online obchodov, ktorých návštevníci — celkovo približne 1,5 milióna ľudí denne — čelili riziku kompromitácie. Medzi postihnutými sú nielen používatelia, ale aj online obchody, platobné systémy a banky, ktoré vydali skompromitované karty.

Správa Group-IB sa stal prvým výskumom darknet trhu snifferov, ich infraštruktúry a spôsobov monetizácie, ktoré prinášajú ich tvorcom milióny dolárov. Identifikovali sme 38 rodín snifferov, z ktorých len 12 bolo predtým známych výskumníkom.

Podrobne sa zameriame na štyri rodiny snifferov, ktoré sme preskúmali v rámci štúdie.

Rodina ReactGet

Sniffery rodiny ReactGet sa používajú na krádež údajov o bankových kartách na webových stránkach online obchodov. Sniffer môže pracovať s množstvom rôznych platobných systémov, ktoré sa používajú na stránke: jedna hodnota parametra zodpovedá jednému platobnému systému, a jednotlivé detekované verzie sniffera môžu byť použité na krádež prihlasovacích údajov, ako aj na krádež údajov o bankových kartách z platobných formulárov naraz niekoľkých platobných systémov, ako takzvaný univerzálny sniffer. Bolo zistené, že v niektorých prípadoch útočníci vykonávajú phishingové útoky na administrátorov online obchodov s cieľom získať prístup k administratívnej časti webovej stránky.

Kampaň s použitím tejto rodiny snifferov sa začala v máji 2017, terčom útokov boli stránky riadené CMS a platformami Magento, Bigcommerce, Shopify.

Ako sa ReactGet vloží do kódu online obchodu

Okrem "klasického" vloženia skriptu cez odkaz, operátori snifferov rodiny ReactGet používajú špeciálnu techniku: pomocou JavaScript kódu sa kontroluje, či aktuálna adresa, na ktorej sa používateľ nachádza, vyhovuje určitým kritériám. Malicious kód sa spustí len v tom prípade, ak sa v aktuálnej URL adrese nachádza podreťazec checkout alebo onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Týmto spôsobom sa kód sniffera vykoná práve v momente, keď používateľ prejde k platbe a zadá platobné informácie do formulára na stránke.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Tento sniffer používa netradičnú techniku. Platobné a osobné údaje obete sa zhromažďujú spolu, kódujú pomocou base64, a potom sa získaný reťazec používa ako parameter na odoslanie požiadavky na webovú stránku útočníkov. Najčastejšie cesta k bráne imituje JavaScript súbor, napríklad resp.js, data.js a tak ďalej, ale používajú sa aj odkazy na súbory obrázkov, GIF a JPG. Zvláštnosťou je, že sniffer vytvára obrazový objekt s rozmermi 1 na 1 pixel a používa predtým získaný odkaz ako parameter. src obrázkov. To znamená, že pre používateľa bude takýto dopyt v prevádzke vyzerať ako dopyt bežného obrázka. Podobná technika bola použitá v snifferoch rodiny ImageID. Okrem toho sa technika využívajúca obrázok s rozmermi 1 na 1 pixel používa vo viacerých legitímnych skriptoch online analytiky, čo môže tiež zmiasť používateľa.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Analýza verzií

Analýza aktívnych domén používaných operátormi snifferov ReactGet odhalila množstvo rôznych verzií snifferov tejto rodiny. Verzie sa líšia prítomnosťou alebo neprítomnosťou obfuskovania, a navyše, každá sniffer je určený pre konkrétny platobný systém, ktorý spracováva platby kartami pre online obchody. Prevracaním hodnoty parametra zodpovedajúceho číslu verzie odborníci Group-IB získali úplný zoznam dostupných variácií snifferov a podľa názvov polí formulárov, ktoré každý sniffer hľadá v kóde stránky, určili platobné systémy, na ktoré sa sniffer zameriava.

Zoznam snifferov a príslušných platobných systémov

URL snifferaPlatobný systém
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 hesiel

Jednou z výhod JavaScript snifferov, ktoré pracujú na strane klienta webovej stránky, je univerzálnosť: zavedený na stránku škodlivý kód je schopný ukradnúť dáta akéhokoľvek typu, či už ide o platobné údaje alebo prihlásenie a heslo používateľského účtu. Odborníci Group-IB objavili vzor sniffera patriaceho do rodiny ReactGet, určeného na krádež e-mailových adries a hesiel používateľov webu.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Prekrytie so snifferom ImageID

Počas analýzy jednej z infikovaných predajní bolo zistené, že jeho webová stránka bola infikovaná dvakrát: okrem škodlivého kódu sniffera rodiny ReactGet bol objavený kód sniffera rodiny ImageID. Toto prekrytie môže byť dôkazom toho, že operátori, ktorí stoja za používaním oboch snifferov, používajú podobné techniky na zavedenie škodlivého kódu.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Univerzálny sniffer

Pri analýze jedného z doménových mien súvisiacich s infraštruktúrou snifferov ReactGet sa zistilo, že ten istý používateľ zaregistroval tri ďalšie doménové mená. Tieto tri domény napodobňovali domény skutočne existujúcich stránok a predtým boli používané na hostovanie snifferov. Pri analýze kódu troch legitímnych stránok bol objavený neznámy sniffer, a ďalšia analýza ukázala, že ide o vylepšenú verziu sniffera ReactGet. Všetky predtým sledované verzie snifferov tejto rodiny boli zamerané na nejaký konkrétny platobný systém, teda pre každý platobný systém bola potrebná špeciálna verzia sniffera. V tomto prípade však bola objavená univerzálna verzia sniffera, schopná kradnúť informácie z formulárov, týkajúcich sa 15 rôznych platobných systémov a modulov ecommerce stránok pre online platby.

Takže na začiatku práce sniffer hľadal základné polia formulára, ktoré obsahovali osobné údaje obete: celé meno, fyzickú adresu, telefónne číslo.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Následne sniffer hľadal viac ako 15 rôznych prefixov, zodpovedajúcich rôznym platobným systémom a modulom pre online platby.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Potom sa osobné údaje obete a platobné informácie spojili a odoslali na kontrolovanú stránku útočníka: v tomto konkrétnom prípade boli objavené dve verzie univerzálneho sniffera ReactGet, uložené na dvoch rôznych hacknutých stránkach. Avšak obidve verzie odosielali ukradnuté údaje na tú istú hacknutú stránku. zoobashop.com.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Analýza prefixov, ktoré sniffer použil na hľadanie polí, obsahujúcich platobné informácie obete, umožnila určiť, že tento vzor sniffera bol zameraný na nasledujúce platobné systémy:

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

Aké nástroje sa používajú na krádež platobných informácií

Prvý nástroj, objavený počas analýzy infraštruktúry útočníkov, slúži na obfuskáciu škodlivých skriptov, zodpovedajúcich za krádež bankových kariet. Na jednom z hostiteľov útočníkov bol objavený bash skript, ktorý používa CLI projektu javascript-obfuscator na automatizáciu obfuskácie kódu snifferov.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Druhý odhalený nástroj je určený na generovanie kódu, ktorý zodpovedá za načítanie hlavného sniffra. Tento nástroj generuje JavaScriptový kód, ktorý overuje, či sa používateľ nachádza na stránke platby, vyhľadávaním v aktuálnej adrese používateľa. checkout, nákupný košík a tak ďalej, a ak je výsledok pozitívny, kód načíta hlavný sniffer zo servera útočníkov. Na skrytie škodlivej aktivity sú všetky reťazce, vrátane testovacích reťazcov na určenie stránky platby a odkazu na sniffer, zakódované pomocou base64.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Phishingové útoky

Pri analýze sieťovej infraštruktúry útočníkov bolo zistené, že často na získanie prístupu do administrátorského panelu cieľového online obchodu zločinecká skupina používa phishing. Útočníci registrujú doménu, ktorá vizuálne pripomína doménu obchodu, a následne na ňu nasadzujú falošný formulár pre prihlásenie do administrátorského panelu Magento. V prípade úspechu útočníci získajú prístup do administrátorského panelu CMS Magento, čo im umožňuje upravovať komponenty stránky a zaviesť sniffer na krádež údajov z kreditných kariet.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Infrastruktúra

DoménaDátum objavenia / vzniku
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

Rodina G-Analytics

Toto je rodina snifferov používaných na krádež kariet klientov online obchodov. Prvé doménové meno, ktoré skupina použila, bolo registrované v apríli 2016, čo môže naznačovať začiatok aktivity skupiny v polovici roku 2016.

V aktuálnej kampani skupina používa doménové mená, ktoré napodobňujú skutočne existujúce služby, ako Google Analytics a jQuery, maskuje aktivitu snifferov legitímnymi skriptami a podobnými na legitímne domény. Cieľom útokov sa stali stránky prevádzkované pod manažmentom CMS Magento.

Ako G-Analytics sa zavádza do kódu online obchodu.

Hlavná črta tejto skupiny je využívanie rôznych metód na krádež platobných informácií používateľov. Okrem klasického zavádzania JavaScriptového kódu do klientskej časti webu, zločinecká skupina tiež používala techniku zavádzania kódu do serverovej časti webu, konkrétne do PHP skriptov, ktoré spracúvajú údaje zadané používateľom. Táto technika je nebezpečná, pretože sťažuje detekciu škodlivého kódu tretími stranami. Špecialisti z Group-IB objavili verziu sniffera, zavedeného do PHP kódu webu, ktorý používa ako bránu doménu dittm.org.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Bola tiež objavená predchádzajúca verzia sniffera, ktorá na zber ukradnutých údajov používa rovnakú doménu dittm.org, ale táto verzia je určená už na inštaláciu na klientskej strane online obchodu.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Neskôr skupina zmenila svoju taktiku a začala viac dbať na skrývanie škodlivej aktivity a maskovanie.

Na začiatku roku 2017 začala skupina používať doménu jquery-js.com, ktorá sa maskovala ako CDN pre jQuery: po prechode na stránku útočníkov je používateľ presmerovaný na legitímnu stránku jquery.com.

A v polovici roku 2018 skupina prešla na doménové meno g-analytics.com a začala maskovať činnosť sniffera pod legitímnu službu Google Analytics.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Analýza verzií

Pri analýze domén používaných na uchovávanie kódu snifferov bolo zistené, že na stránke sa nachádza veľké množstvo verzií, ktoré sa líšia prítomnosťou obfuskovania, ako aj prítomnosťou alebo neprítomnosťou nedostupného kódu pridaného do súboru na rozptýlenie pozornosti a zakrytie škodlivého kódu.

Na stránke jquery-js.com bolo zistených šesť verzií snifferov. Ukradnuté údaje tieto sniffery posielajú na adresu, ktorá sa nachádza na tej istej stránke, ako je samotný 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

Neskorší domén g-analytics.com, používaný skupinou v útokoch od polovice roku 2018, slúži ako úložisko pre väčší počet snifferov. Celkovo bolo objavených 16 rôznych verzií sniffera. V tomto prípade bola brána na odosielanie ukradnutých údajov maskovaná ako odkaz na obrázok formátu 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

Monetizácia ukradnutých údajov

Zločinecká skupina monetizuje ukradnuté údaje predajom kariet prostredníctvom špeciálne vytvoreného podzemného obchodu, ktorý poskytuje služby carderom. Analýza domén používaných útočníkmi umožnila určiť, že google-analytics.cm bol zaregistrovaný tým istým používateľom, ktorý aj doménu cardz.vc. Doména cardz.vc sa týka obchodu predávajúceho ukradnuté bankové karty Cardsurfs (Flysurfs), ktorý sa stal populárnym ešte v čase aktivity podzemného trhu AlphaBay ako obchod predávajúci bankové karty, ukradnuté pomocou sniffera.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Analizujúc doménu analytic.is, nachádzajúcu sa na tom istom serveri, ktorý je využívaný sniffermi na zber ukradnutých údajov, odborníci z Group-IB objavili súbor obsahujúci logy cookie-stiller, ktorý sa zdá byť neskôr opustený vývojárom. Jedna z položiek v logu obsahovala doménu iozoz.com, ktorá bola predtým použitá v jednom zo snifferov aktívnych v roku 2016. Predpokladá sa, že táto doména bola predtým použitá útočníkom na zber ukradnutých kariet pomocou sniffera. Táto doména bola registrovaná na emailovú adresu kts241@gmail.com, ktorá bola tiež použitá na registráciu domén cardz.su a cardz.vc, týkajúcich sa obchodovania s kartami Cardsurfs.

Na základe získaných údajov môžeme predpokladať, že rodina snifferov G-Analytics a podzemný obchod s bankovými kartami Cardsurfs sú riadené tými istými osobami, a obchod sa používa na realizáciu bankových kariet ukradnutých pomocou sniffera.

Infrastruktúra

DoménaDátum objavenia / vzniku
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

Rodina Illum

Illum je rodina snifferov používaná na útoky na internetové obchody, ktoré fungujú na platforme CMS Magento. Okrem zavádzania škodlivého kódu, operátori tohto sniffera tiež používajú zavádzanie plne funkčných falošných platobných formulárov, ktoré zasielajú údaje na kontrolované útočníkmi brány.

Pri analýze sieťovej infraštruktúry, ktorú využívajú operátori tohto sniffera, bolo zaznamenané veľké množstvo škodlivých skriptov, exploitov, falošných platobných formulárov, ako aj zbierka príkladov s škodlivými sniffermi konkurencie. Na základe informácií o dátumoch vzniku domén používanej skupinou je možné predpokladať, že začiatok kampane sa datuje na koniec roku 2016.

Ako Illum preniká do kódu online obchodu

Prvé zistené verzie sniffera boli vkladané priamo do kódu kompromitovanej stránky. Uk stolené údaje boli zasielané na adresu cdn.illum[.]pw/records.php, brána bola zakódovaná pomocou base64.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Neskôr bola objavená zabalená verzia sniffera, využívajúca iný gateway — records.nstatistics[.]com/records.php.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Podľa správe Willem de Groot, rovnaký hostiteľ bol použitý v snifferi, ktorý bol nasadený na web stránke obchodu, patriacom nemeckej politickej strane CSU.

Analýza webu útočníkov

Odborníci Group-IB objavili a analyzovali web, ktorý táto zločinecká skupina používala na uchovávanie nástrojov a zhromažďovanie ukradnutých informácií.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Medzi nástrojmi nájdenými na serveri útočníkov sa nachádzali skripty a exploit pre zvýšenie oprávnení v OS Linux: napríklad skript na kontrolu zvýšenia oprávnení v systéme Linux, vytvorený Mikeom Čumakom (Mike Czumak), ako aj exploit pre CVE-2009-1185.

Priamo na útoky na online obchody útočníci použili dve exploitácie: prvý je schopný vložiť škodlivý kód do core_config_data s využitím exploitácie CVE-2016-4010, druhý využíva zraniteľnosť typu RCE v pluginoch pre CMS Magento, čo umožňuje vykonávať ľubovoľný kód na zraniteľnom webovom serveri.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Takisto v priebehu analýzy servera boli zistené rôzne vzorky snifferov a falošných platobných formulárov, ktoré útočníci používali na zhromažďovanie platobných informácií z napadnutých webových stránok. Ako môžete vidieť z nižšie uvedeného zoznamu, niektoré skripty boli vytvorené individuálne pre každú napadnutú stránku, zatiaľ čo pre určité CMS a platobné brány bolo použité univerzálne riešenie. Napríklad skripty segapay_standart.js a segapay_onpage.js sú určené na vloženie na weby, ktoré používajú platobnú bránu Sage Pay.

Zoznam skriptov pre rôzne platobné brány

SkriptPlatobná brána
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=

Hostiteľ paymentnow[.]tk, použitá ako gate v skripte payment_forminsite.js, bola zistená ako subjectAltName v niekoľkých certifikátoch, týkajúcich sa služby CloudFlare. Okrem toho na hostiteľovi bol uložený skript evil.js. Podľa názvu skriptu mohol byť použitý v rámci exploitácie CVE-2016-4010, vďaka ktorej je možné vložiť škodlivý kód do päty webu riadeného CMS Magento. Ako gate tento skript použil hostiteľ request.requestnet[.]tk, využívajúci ten istý certifikát ako hostiteľ paymentnow[.]tk.

Falošné platobné formuláre

Nižšie na obrázku je zobrazený príklad formulára pre zadávanie údajov z karty. Tento formulár sa používal na vloženie na web online obchodu a krádež údajov z kariet.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Na nasledujúcom obrázku je príklad falošného platobného formulára PayPal, ktorý zločinci použili na vniknutie na stránky s týmto platobným spôsobom.
Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Infrastruktúra

DoménaDátum objavenia / vzniku
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

Rodina CoffeMokko

Rodina snifferov CoffeMokko, určených na krádeže bankových kariet používateľov internetových obchodov, sa používa minimálne od mája 2017. Podľa všetkého operátormi tejto rodiny snifferov je zločinecká skupina Group 1, opísaná odborníkmi RiskIQ v roku 2016. Útoky boli zamerané na stránky spravované takými CMS, ako sú Magento, OpenCart, WordPress, osCommerce, Shopify.

Ako CoffeMokko preniká do kódu online obchodu

Operátori tejto rodiny vytvárajú jedinečné sniffery pre každé nakazenie: súbor sniffera je umiestnený v adresári src alebo js na serveri útočníkov. Vniknutie do kódu stránky je realizované prostredníctvom priameho odkazu na sniffer.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
V kóde sniffera sú pevne zakódované názvy polí formulárov, z ktorých je potrebné ukradnúť údaje. Tiež sniffer kontroluje, či sa používateľ nachádza na stránke platby, porovnávaním zoznamu kľúčových slov s aktuálnou adresou používateľa.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Niektoré zistené verzie sniffera boli obfuskované a obsahovali zašifrovaný reťazec, v ktorom bol uložený hlavný zdrojový pole: presne v ňom bolo meno polí formulárov pre rôzne platobné systémy, ako aj adresa brány, na ktorú je potrebné posielať ukradnuté údaje.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Ukradené platobné informácie sa posielali skriptu na serveri útočníkov cez cestu /savePayment/index.php или /tr/index.php. Predpokladá sa, že tento skript slúži na posielanie údajov z brány na hlavný server, ktorý konsoliduje údaje zo všetkých snifferov. Na skrytie prenášaných údajov sú všetky platobné informácie obete kódované pomocou base64, a potom sa uskutočňuje niekoľko výmien znakov:

  • znak „e“ sa nahrádza na „:“
  • znak „w“ sa nahrádza na „+“
  • znak „o“ sa nahrádza na „%“
  • znak „d“ sa nahrádza na „#“
  • znak „a“ sa nahrádza na „-“
  • znak „7“ sa nahrádza na „^“
  • znak „h“ sa nahrádza na „_“
  • znak „T“ sa nahrádza na „@“
  • znak „0“ sa nahrádza na „/“
  • znak „Y“ sa nahrádza na „*“

V dôsledku výmeny znakov sa zašifrované pomocou base64 údaje nedajú dešifrovať, ak sa neuskutoční spätné spracovanie.

Takto vyzerá fragment kódu sniffera, ktorý nebol obfuskovaný:

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Analýza infraštruktúry

V skorších kampaniach útočníci registrovali doménové mená, ktoré sa podobali doménam legitímnych stránok online obchodov. Ich doména sa mohla líšiť od legitímnej len jedným znakom alebo iným TLD. Registrované domény sa používali na uchovávanie kódu sniffera, odkaz na ktorý bol vkladaný do kódu obchodu.

Táto skupina tiež používala doménové mená, ktoré pripomínali názvy populárnych pluginov pre jQuery (slickjs[.]org pre stránky používajúce plugin slick.js), platobných brán (sagecdn[.]org pre stránky používajúce platobný systém Sage Pay).

Neskôr skupina začala vytvárať domény, ktorých názov nemal nič spoločného ani s doménou obchodu, ani s témou obchodu.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Každej doméne zodpovedal web, na ktorom sa vytvárala adresár /js alebo /src. V tomto adresári sa uchovávali skripty snifferov: po jednom snifferovi na každé nové infikovanie. Sniffer bol vkladaný do kódu stránky prostredníctvom priameho odkazu, ale v niektorých prípadoch útočníci modifikovali jeden z súborov stránky a pridávali do neho škodlivý kód.

Analýza kódu

Prvý algoritmus obfuskácie

V niektorých zistených vzorkách snifferov tejto rodiny bol kód obfuskovaný a obsahoval šifrované údaje potrebné na fungovanie sniffera: konkrétne adresu brány sniffera, zoznam polí platobného formulára a v niektorých prípadoch aj kód falošného platobného formulára. V kóde vo vnútri funkcie boli zdroje šifrované pomocou XOR s kľúčom, ktorý bol odovzdávaný ako argument tejto funkcie.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Dešifrovaním reťazca príslušným kľúčom, ktorý bol jedinečný pre každý vzor, je možné získať reťazec, ktorý obsahuje všetky reťazce z kódu sniffera cez znak oddeľovača.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Druhý algoritmus obfuskácie

V neskorších vzorkách snifferov tejto rodiny bol použitý iný mechanizmus obfuskácie: v tomto prípade boli údaje šifrované pomocou vlastného algoritmu. Reťazec obsahujúci šifrované údaje potrebné na fungovanie sniffera bol odovzdávaný ako argument funkcie dešifrovania.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Pomocou konzoly prehliadača je možné dešifrovať šifrované údaje a získať pole, ktoré obsahuje zdroje sniffera.

Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch

Spojenie s ranými útokmi MageCart

Pri analýze jednej z domén, ktoré skupina používala ako bránu na zhromažďovanie ukradnutých údajov, bolo zistené, že na tejto doméne je nasadená infraštruktúra na krádež kreditných kariet, identická s tou, ktorá bola použitá skupinou 1 — jednou z prvých skupín, zistených odborníkmi RiskIQ.

Na hosťovi rodiny snifferov CoffeMokko boli objavené dva súbory:

  • mage.js — súbor obsahujúci kód sniffera skupiny 1 s adresou brány js-cdn.link
  • mag.php — PHP skript zodpovedný za zbieranie ukradnutých údajov snifferom

Содержимое файла mage.js Štyri JavaScript sniffery, ktoré na vás čakajú v internetových obchodoch
Tiež bolo zistené, že najstaršie domény používané skupinou stojacou za rodinou snifferov CoffeMokko boli registrované 17. mája 2017:

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

Formát týchto domén súhlasí s doménami skupiny 1, ktoré boli použité v útokoch v roku 2016.

Na základe zistených faktov sa dá predpokladať, že medzi operátormi snifferov CoffeMokko a zločineckou skupinou skupiny 1 existuje spojenie. Predpokladá sa, že operátori CoffeMokko mohli prevziať od svojich predchodcov nástroje a softvér na krádež kariet. Skôr je však pravdepodobné, že zločinecká skupina stojaca za využívaním snifferov z rodiny CoffeMokko sú tie isté osoby, ktoré uskutočnili útoky v rámci činnosti skupiny 1. Po publikovaní prvej správy o činnosti zločineckej skupiny boli všetky ich domény zablokované a nástroje boli podrobne preskúmané a popísané. Skupina bola nútená oddýchnuť si, vylepšiť svoje interné nástroje a prepísať kód snifferov, aby mohla pokračovať vo svojich útokoch a zostať nepovšimnutá.

Infrastruktúra

DoménaDátum objavenia / vzniku
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

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster