Négy JavaScript-betörő, amely vár ránk az online boltokban

Négy JavaScript-betörő, amely vár ránk az online boltokban

Majdhogynem mindannyian szoktunk online boltok szolgáltatásait igénybe venni, ami azt jelenti, hogy előbb vagy utóbb kockázatot vállalunk, hogy áldozatul esünk a JavaScript-betörőknek — olyan speciális kódnak, amelyet a támadók beépítenek a webhelyekre az ügyfelek bankkártyaadatai, címek, felhasználónevek és jelszavak eltulajdonítása érdekében.

A betörők már közel 400 000 felhasználót érintettek a British Airways weboldala és mobilalkalmazása esetében, valamint a brit FILA sportruházati óriás weboldalának látogatóit és az amerikai Ticketmaster jegyértékesítő látogatóit. A PayPal, Chase Paymenttech, USAePay, Moneris — ezek és még sok más fizetési rendszer megsérült.

A Threat Intelligence Group-IB elemzője, Viktor Okorokov beszél arról, hogyan épülnek be a betörők a webhely kódjába és lopják el a fizetési információkat, valamint arról, hogy milyen CRM rendszereket támadnak meg.

Négy JavaScript-betörő, amely vár ránk az online boltokban

„Rejtett fenyegetés”

Úgy alakult, hogy a JS-betörők sokáig elkerülték az antivírus elemzők figyelmét, és a bankok, valamint a pénzügyi rendszerek nem látták őket komoly fenyegetésnek. És abszolút tévesen. A Group-IB szakértői elemzték 2440 fertőzött online bolt, melynek látogatói — összesen körülbelül 1,5 millió ember naponta — kockázatnak voltak kitéve. Az áldozatok közt nem csupán felhasználók, hanem online boltok, pénzügyi rendszerek és bankok is szerepelnek, amelyek megkérdőjelezett kártyákat bocsátottak ki.

Jelentés A Group-IB volt az első, aki a betörők sötétpiacát, annak infrastruktúráját és monetizálási módjait tanulmányozta, amelyek millió dollárt hoznak létre a készítőik számára. Összesen 38 családot fedeztünk fel, amelyek közül csak 12 volt korábban ismert a kutatók számára.

Részletesebben foglalkozzunk a kutatás során vizsgált négy betörő családdal.

ReactGet család

A ReactGet család snifferjeit az online boltok webhelyein található bankkártya adatok ellopására használják. A sniffer képes működni a webhelyen használt különböző fizetési rendszerekkel: egy paraméter értéke egy fizetési rendszerhez tartozik, míg a különböző felfedezett sniffer verziók azonosító adatok eltulajdonítására, valamint bankkártya adatok eltulajdonítására használhatók több fizetési rendszer űrlapjából, úgynevezett univerzális snifferként. Megállapították, hogy egyes esetekben a támadók phishing támadásokat indítanak az online boltok adminisztrátorai ellen, hogy hozzáférjenek a webhely adminisztrátori paneljéhez.

E család snifferjeivel végzett kampány 2017 májusában kezdődött, a támadás célpontja a CMS által kezelt webhelyek voltak, például Magento, Bigcommerce, Shopify platformok.

Hogyan integrálódik a ReactGet az online bolt kódjába

A klasszikus script linken keresztüli integráció mellett a ReactGet család sniffer operátorai egy különleges technikát alkalmaznak: JavaScript-kódigo alkalmazásával ellenőrzik, hogy az aktuális cím, ahol a felhasználó tartózkodik, megfelel-e bizonyos kritériumoknak. A rosszindulatú kód csak akkor fog elindulni, ha az aktuális URL-ben jelen van egy részstring checkout vagy onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Ily módon a sniffer kódja pontosan abban a pillanatban fut le, amikor a felhasználó a vásárlások kifizetésére lép, és megadja a fizetési információkat a webhely űrlapján.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Ez a sniffer nem szabványos technikát alkalmaz. Az áldozat fizetési és személyes adatai egyesítve, kódolva lesznek base64, majd a kapott string paraméterként kerül elküldésre a támadó webhelyére. Leggyakrabban a kapuhoz vezető úton JavaScript fájlok utánzása történik, például resp.js, data.js és így tovább, de képfájlokra mutató linkeket is használnak, GIF és JPG. Az a jellemző, hogy a sniffer egy 1x1 pixel méretű képet hoz létre, és a korábban megszerzett linket használja paraméterként. src A felhasználó számára ez a forgalmi kérés úgy fog megjelenni, mint egy normál kép kérés. Hasonló technikát alkalmaztak az ImageID család snifferjeinél. Ezen kívül az 1x1 pixeles képet használó technika számos legitim online elemző szkriptben is alkalmazásra kerül, ami szintén megtévesztheti a felhasználót.

Négy JavaScript-betörő, amely vár ránk az online boltokban

Verziók elemzése

A ReactGet sniffer operátorai által használt aktív domainek elemzése számos különféle verziójú sniffer felfedezéséhez vezetett. A verziók eltérnek az obfuszkálás jelenlétől vagy hiányától, és minden sniffer egy adott bankkártyás online bolt szolgáltatásához van optimalizálva. A verziószám paraméterének értékének módosításával a Group-IB szakértői teljes listát kaptak a rendelkezésre álló sniffer variációkról, és a code-page kódjában keresett űrlapmezők neve alapján meghatározták a sniffer által célzott fizetési rendszereket.

Sniffer lista és a hozzájuk tartozó fizetési rendszerek

Sniffer URLFizetési rendszer
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

Jelszó sniffer

A JavaScript-alapú, kliensoldali sniffer egyik előnye a sokoldalúság: a weboldalra beültetett kártékony kód képes bármilyen adat, például a bankkártya adatok vagy a felhasználói fiók bejelentkezési adatok eltulajdonítására. A Group-IB szakértői egy ReactGet családba tartozó sniffer mintát fedeztek fel, amely a weboldal felhasználóinak e-mail címét és jelszavát célozta meg.

Négy JavaScript-betörő, amely vár ránk az online boltokban

Átfedés az ImageID snifferrel

Egy fertőzött bolt elemzése során kiderült, hogy a weboldal kétszer is fertőzött volt: a ReactGet család snifferének kártékony kódján kívül felfedeztek egy ImageID család snifferének kódját is. Ez az átfedés arra utalhat, hogy a két sniffer használatához kapcsolódó operátorok hasonló technikákat alkalmaznak a kártékony kód beültetésére.

Négy JavaScript-betörő, amely vár ránk az online boltokban

Univerzális sniffer

Egy, a ReactGet sznifferhez kapcsolódó domain nevek elemzése során megállapították, hogy ugyanaz a felhasználó három másik domain nevet is regisztrált. Ezek a domain nevek létező weboldalak domain neveit imitálták, és korábban sznifferek tárolására használták őket. Három legitim weboldal kódjának elemzése során egy ismeretlen szniffert fedeztek fel, amelyről később kiderült, hogy a ReactGet szniffer továbbfejlesztett verziója. Az eddig nyomon követett sznifferek mindegyike egy-egy adott fizetési rendszerre összpontosított, tehát minden fizetési rendszerhez speciális szniffer verzióra volt szükség. Ugyanakkor ebben az esetben egy univerzális szniffer verziót találtak, amely képes információkat lopni 15 különböző fizetési rendszer és e-kereskedelmi modul űrlapjaiból online tranzakciók lebonyolításához.

Tehát a szniffer a munka kezdetén az áldozat személyes adatait tartalmazó alap űrlapmezők keresésével indított: teljes név, lakcím, telefonszám.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Ezután a szniffer több mint 15 különböző előtagra keresett, amelyek különböző online fizetési rendszerekhez és modulokhoz tartoztak.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Később az áldozat személyes adatai és a fizetési információk egyesítésre kerültek, majd egy támadók által irányított weboldalra elküldésre. Ebben az esetben két verzióját találta meg az univerzális ReactGet szniffernek, amelyek két különböző feltört weboldalon voltak találhatók. Mindkét verzió azonban az ellopott adatokat ugyanarra a feltört weboldalra küldte. zoobashop.com.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A szniffer által a áldozatának fizetési információit tartalmazó mezők keresésére használt előtagok elemzése lehetővé tette annak meghatározását, hogy ez a szniffer minta a következő fizetési rendszerekre irányult:

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

Milyen eszközöket használnak a fizetési információk ellopására

Az első eszközt, amelyet a támadók infrastruktúrájának elemzése során találtak, a bankkártyák eltulajdonításáért felelős rosszindulatú szkriptek obfuszkálására használják. A támadók egyik hosztján egy bash-szkriptet találtak, amely a következő projekt CLI-jét használja: javascript-obfuscator a sznifferek kódjának obfuszkálásának automatizálására.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A második észlelt eszköz olyan kód generálására szolgál, amely a fő sniffere betöltéséért felelős. Ez az eszköz JavaScript kódot generál, amely ellenőrzi, hogy a felhasználó a fizetési oldalon van-e, az aktuális felhasználói cím megkeresésével. checkout, kosár és így tovább, és ha az eredmény pozitív, a kód betölti a fő sniffert a támadó szerveréről. A káros tevékenység elrejtése érdekében az összes sor, beleértve a fizetési oldal meghatározására szolgáló tesztsorokat és a sniffere hivatkozást, kódolva van. base64.

Négy JavaScript-betörő, amely vár ránk az online boltokban

Adathalász támadások

A támadók hálózati infrastruktúrájának elemzése során megállapítást nyert, hogy gyakran az online bolt adminisztrációs paneljéhez való hozzáférés megszerzésére adathalászatot alkalmaznak. A támadók olyan domaint regisztrálnak, amely vizuálisan hasonlít a bolt domainjére, majd hamis bejelentkezési űrlapot telepítenek a Magento adminisztrációs paneljéhez. Siker esetén a támadók hozzáférést nyernek a CMS Magento adminisztrációs paneljéhez, amely lehetővé teszi számukra a weboldal összetevőinek szerkesztését és a sniffere adatlopásra való beillesztését.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Infrastruktúra

DomainekFelfedezés dátuma
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 család

Ez a snifferek család az online boltok ügyfeleinek kártyáinak ellopására szolgál. Az első domain nevet, amelyet a csoport használt, 2016 áprilisában regisztrálták, ami arra utalhat, hogy a csoport 2016 közepén kezdte meg tevékenységét.

A jelenlegi kampány során a csoport olyan domain neveket használ, amelyek valós szolgáltatásokat utánoznak, mint például a Google Analytics és a jQuery, eltakarva a snifferek aktivitását legitim szkriptekkel és hasonló domain nevekkel. Azok az oldalak estek a támadás alá, amelyek a CMS Magento alatt működnek.

Hogyan integrálódik a G-Analytics az online bolt kódjába

A család jellemző sajátossága különféle módszerek alkalmazása a felhasználói bankkártya-információk eltulajdonítására. A klasszikus JavaScript-kód beillesztésén kívül a bűnözői csoport PHP-szkriptek kódbeillesztési technikáját is alkalmazta, amelyek a felhasználó által megadott adatokat dolgozzák fel. Ez a technika azért veszélyes, mert nehezíti a kártékony kód észlelését külső kutatók által. A Group-IB szakértői felfedezték a PHP-kódba beillesztett sniffert, amelynek kapuja a következő domain. dittm.org.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Korábban egy korai sniffert is felfedeztek, amely ugyanazt a domaint használta az ellopott adatok gyűjtésére. dittm.org, de ez a verzió már az online bolt ügyféloldalán történő telepítésre volt szánva.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Később a csoport megváltoztatta taktikáját, és több figyelmet fordított a kártékony tevékenység elrejtésére és álcázására.

2017 elején a csoport a következő domaint kezdte használni. jquery-js.com, amely a jQuery CDN-jének álcázik magát: az áldozatok átirányításakor a felhasználót a legitím webhelyre irányítja. jquery.com.

2018 közepén a csoport a következő domain nevet honosította meg. g-analytics.com és elkezdte az snifferek tevékenységét a Google Analytics hiteles szolgáltatásaként álcázni.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Négy JavaScript-betörő, amely vár ránk az online boltokban

Verziók elemzése

A snifferek kódjának tárolására használt domainek analizálása során megállapítást nyert, hogy a webhelyen számos verzió található, amelyek eltérnek az obfuszkáció jelenlététől, valamint a figyelmet elterelő és kártékony kód eltitkolására szolgáló elérhetetlen kód hiányától.

Összesen a webhelyen jquery-js.com hat féle sniffer verziót azonosítottak. Az ellopott adatokat ezek a snifferek a következő címre küldik, amely ugyanazon a webhelyen található, mint a 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

A későbbi domain g-analytics.com, amelyet a csoport 2018 közepétől használ az támadások során, nagyobb mennyiségű sniffert tárol. Összesen 16 különböző sniffer verziót fedeztek fel. Ebben az esetben a lenyúlott adatok küldésére szolgáló kapu egy képformátumú linkre álcázott. 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

A lenyúlt adatok monetizálása

A bűnözői csoport a lenyúlt adatokat úgy monetizálja, hogy kártyákat árul egy kifejezetten az árusoknak létrehozott feketepiaci boltban. A támadók által használt domainek elemzése lehetővé tette, hogy megállapítsák, hogy google-analytics.cm ugyanaz a felhasználó regisztrálta, mint a domain cardz.vc. A domain cardz.vc kapcsolódik a Cardsurfs (Flysurfs) nevű ellopott bankkártyák értékesítésére szakosodott bolthoz, amely népszerűvé vált még az AlphaBay illegális piacterén, mint a bankkártyák eladására szakosodott bolt, amelyeket snifferekkel loptak el.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A domain elemzése analytic.is, amely azon a szerveren található, ahol a snifferek által az ellopott adatok gyűjtésére használt domainek is működtek, a Group-IB szakértői olyan fájlt találtak, amely sütik lenyomatát tartalmazó naplókat tartalmazott, ami úgy tűnik, hogy később elhagyásra került a fejlesztő által. A napló egyik bejegyzése a következő domaint tartalmazta iozoz.com, amelyet korábban egy 2016-ban aktív snifferen használtak. Feltételezhetően ezt a domaint használták a támadók az ellopott kártyák gyűjtésére. Ez a domain egy olyan email-címre lett regisztrálva, kts241@gmail.com, amelyet a következő domainek regisztrálására is használtak cardz.su és cardz.vc, amelyek a Cardsurfs bankkártya boltjához kapcsolódnak.

A megszerzett adatok alapján feltételezhető, hogy a G-Analytics snifferek és a Cardsurfs bankkártya bolt ugyanazon személyek irányítása alatt állnak, és az üzlet a snifferekkel ellopott bankkártyák értékesítésére szolgál.

Infrastruktúra

DomainekFelfedezés dátuma
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 család

Az Illum egy olyan snifferekkel végzett támadásokhoz használt család, amelyeket online boltakat céloz meg, amelyek a Magento CMS-re épülnek. A rosszindulatú kódok beágyazása mellett a sniffer üzemeltetői teljesen hamis kifizetési űrlapokat is beágyaznak, amelyek az adatokat a támadók által irányított kapukra küldik.

A sniffer üzemeltetői által használt hálózati infrastruktúra elemzése során számos rosszindulatú szkript, exploit, hamis kifizetési űrlap, valamint a versenytársak rosszindulatú sniffereiből származó példák gyűjteménye került elő. A csoport által használt domainnevek megjelenési dátumai alapján feltételezhető, hogy a kampány kezdetét 2016 vége körül lehet datálni.

Hogyan integrálódik az Illum az online bolt kódjába

A elsőként felfedezett sniffer verziókat közvetlenül a kompromittált weboldal kódjába integrálták. Az ellopott adatokat a következő címre küldték cdn.illum[.]pw/records.php, a kapu pedig kódolva volt base64.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Később felfedezték a csomagolt verziót a szipkáló, amely másik kaput használt — records.nstatistics[.]com/records.php.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A következő szerint jelentéshez Willem de Groot, ugyanazt a hosztot használták a szipkáló számára, amely be volt építve az áruház weboldalára, amely a német CSU politikai párt tulajdonában áll.

A bűnözők weboldalának elemzése

A Group-IB szakértői felfedezték és elemezték a bűnbanda által használt weboldalt, amelyet az eszközök tárolására és az ellopott információk gyűjtésére használtak.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A bűnözők szerverén felfedezett eszközök között találhatóak olyan szkriptek és exploitok, amelyek a Linux operációs rendszer jogosultságainak emelésére szolgálnak: például a Mike Czumak által kifejlesztett Linux Privilege Escalation Check Script, valamint egy exploit a CVE-2009-1185-höz.

Kifejezetten az online boltok elleni támadásokhoz a bűnözők két exploitot használtak: első képest képes kártékony kódot beágyazni core_config_data a CVE-2016-4010 kihasználásával, második kihasználja az RCE típusú sebezhetőséget a CMS Magento plugineken, lehetővé téve a tetszőleges kód végrehajtását a sebezhető webkiszolgálón.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A szerver elemzése során különböző szipkáló mintákat és hamis fizetési űrlapokat is felfedeztek, amelyeket a bűnözők használtak a feltört weboldalak betalálásához. Amint az alábbi listából látható, egyes szkriptek kifejezetten minden feltört weboldalhoz készültek, míg bizonyos CMS-ek és fizetési átjárók számára általános megoldást használtak. Például a szkriptek segapay_standart.js és segapay_onpage.js a Sage Pay fizetési átjárót használó weboldalakra szánták.

A különböző fizetési átjárókhoz készült szkriptek listája

ScriptFizetési átjáró
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=

Gazda paymentnow[.]tk, amely a szkriptben kapu gyanánt használták payment_forminsite.js, felfedezték, mint subjectAltName több CloudFlare szolgáltatáshoz kapcsolódó tanúsítványban. Ezen kívül a hoszton egy szkript is található evil.js. A szkript nevéből ítélve a CVE-2016-4010 kihasználására szolgálhatott, amely lehetővé tette a kártékony kód beágyazását a Magento CMS alá tartozó weboldal láblécében. Ezt a szkriptet a következő hoszt alkalmazta request.requestnet[.]tk, amely ugyanazt a tanúsítványt használja, mint a hoszt paymentnow[.]tk.

Hamis fizetési űrlapok

Az alábbi ábrán látható egy példa a kártyaadatok beírására szolgáló űrlapra. Ezt az űrlapot az online bolt weboldalára történő beágyazás és a kártyaadatok ellopása céljából használták.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A következő képen egy hamis PayPal fizetési űrlap példa látható, amelyet a támadók használtak az ilyen típusú fizetési módszerrel rendelkező weboldalakra való beültetéshez.
Négy JavaScript-betörő, amely vár ránk az online boltokban
Infrastruktúra

DomainekFelfedezés dátuma
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

CoffeMokko család

A CoffeMokko szniffer család, amelyet az internetes bolt ügyfelei bankkártyáinak ellopására használnak, legalább 2017 májusa óta aktív. Feltételezhetően a család sznifferjeit a Group 1 bűnözői csoport üzemelteti, amelyet a RiskIQ szakértői 2016-ban írtak le. Az online boltokat érintő támadások olyan CMS-eket céloztak, mint a Magento, OpenCart, WordPress, osCommerce és Shopify.

Hogyan kerül a CoffeMokko a webáruház kódjába

E család üzemeltetői minden fertőzéshez egyedi szniffereket készítenek: a szniffer fájl a támadók szerverének könyvtárában található. src vagy js A weboldal kódjába való beültetés közvetlen hivatkozással történik a sznifferhez.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A szniffer kódjában rögzített formamezők nevei találhatók, ahonnan az adatokat el kell lopni. A szniffer azt is ellenőrzi, hogy a felhasználó a fizetési oldalon van-e, a kulcsszavak listáját összevetve a felhasználó aktuális címével.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Néhány felfedezett sznifferverzió obfuszkált volt, és titkosított karakterláncot tartalmazott, amely a fő erőforrás tömböt tárolta: itt találhatók a különböző fizetési rendszerekhez tartozó formamezők nevei és az a cím, ahová az ellopott adatokat el kell küldeni.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Az ellopott fizetési információt a támadók szerverén lévő szkripthez küldték az alábbi úton /savePayment/index.php или /tr/index.php. Feltételezhetően ez a szkript szolgál az adatok átadására a váltón a fő szervernek, amely konszolidálja az összes sznifferből származó adatokat. Az átadott adatok elrejtése érdekében minden áldozat fizetési információját kódolják base64, majd néhány karakter cseréje történik:

  • az «e» karakter helyettesítése «:**»-val
  • a «w» karakter helyettesítése «+»-val
  • az «o» karakter helyettesítése «%»-val
  • a «d» karakter helyettesítése «#»-val
  • az «a» karakter helyettesítése «-»-val
  • a «7» karakter helyettesítése «^»-val
  • a «h» karakter helyettesítése «_»-val
  • a «T» karakter helyettesítése «@»-val
  • a «0» karakter helyettesítése «/»-val
  • a «Y» karakter helyettesítése «*»-val

A karakterek helyettesítése után a kódolt adatokat az base64 adatokat nem lehet dekódolni, hacsak nem hajtanak végre visszafordított transzformációt.

Ez így néz ki egy obfuszkálatlan snifferekód darabja:

Négy JavaScript-betörő, amely vár ránk az online boltokban

Infrastruktúra elemzés

A korai kampányokban a támadók olyan domain neveket regisztráltak, amelyek hasonlítottak a legális online boltok domainjeire. A domainjük eltérhetett a legálnak egy karakterrel vagy más TLD-vel. A regisztrált domainek a snifferekód tárolására szolgáltak, amelynek linkje be lett ágyazva a bolt kódjába.

Ez a csoport olyan domain neveket is használt, amelyek népszerű jQuery pluginek nevét hasonlították (slickjs[.]org azokhoz a webhelyekhez, amelyek a slick.js) plugin használják, illetve a fizetési átjárókhoz (sagecdn[.]org azokhoz a webhelyekhez, amelyek a Sage Pay fizetési rendszert használják).

Később a csoport olyan domaineket kezdett létrehozni, amelyek neve semmilyen kapcsolatban nem állt a bolt domainjével vagy a bolt témájával.

Négy JavaScript-betörő, amely vár ránk az online boltokban
Minden domainhez egy olyan webhely tartozott, ahol létrehoztak egy könyvtárat /js vagy /src. Ebben a könyvtárban a snifferskriptjeit tárolták: mindegyik új fertőzéshez egy sniffert. A sniffert közvetlen hivatkozással ágyazták be a webhely kódjába, de ritka esetekben a támadók módosították a webhely egyik fájlját, és kártékony kódot adtak hozzá.

Kód elemzés

Első obfuszkálási algoritmus

E család néhány felfedezett sniffermintájában a kód obfuszkálva volt, és titkosított adatokat tartalmazott, amelyek a snifferek működéséhez szükségesek: különösen a sniffergate címe, a fizetési űrlap mezőinek listája, és egyes esetekben a hamis űrlap kódja. A kódon belül az erőforrásokat XOR módszerrel titkosították, amelynek kulcsát ezen funkció argumentumaként adták át.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A megfelelő kulccsal decryptálva a mintához kapcsolódó egyedi kulcs segítségével egy olyan sztringet kaphatunk, amely a snifferskódban szereplő összes sztringet tartalmazza, elválasztó karakterrel.

Négy JavaScript-betörő, amely vár ránk az online boltokban

Második obfuszkálási algoritmus

A család későbbi mintáiban más obfuszkálási mechanizmust alkalmaztak: ebben az esetben az adatokat egy saját fejlesztésű algoritmus segítségével titkosították. A snifferek működéséhez szükséges titkosított adatokat tartalmazó sztringet a decryptáló funkció argumentumaként adták át.

Négy JavaScript-betörő, amely vár ránk az online boltokban
A böngésző konzoljával lehetőség van a titkosított adatok dekódolására és egy olyan tömb előállítására, amely a snifferek erőforrásait tartalmazza.

Négy JavaScript-betörő, amely vár ránk az online boltokban

Kapcsolat a korai MageCart támadásokkal

Egy elemzés során, amelyet az egyik olyan domainnel végeztek, amelyet a csoport használt a lopott adatok gyűjtésére, megállapították, hogy ezen a domainen kártyalopásra szolgáló infrastruktúra állt fel, amely azonos azzal, amelyet az 1-es csoport használt — az egyik első csoport, felfedezett a RiskIQ szakértői által.

A CoffeMokko család sniffereinek hostján két fájlt találtak:

  • mage.js — a 1-es csoport snifferének kódját tartalmazó fájl a következő címmel js-cdn.link
  • mag.php — PHP-szkript, amely a sniffer által lopott adatok gyűjtéséért felelős

Содержимое файла mage.js Négy JavaScript-betörő, amely vár ránk az online boltokban
Azt is megállapították, hogy a CoffeMokko sniffer családja által használt legkorábbi domainnevek 2017. május 17-én lettek regisztrálva:

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

Ezek a domainnevek az 1-es csoport által 2016-ban végrehajtott támadások során használt domainnevekkel azonos formátumúak.

A felfedezett tények alapján feltételezhető, hogy kapcsolat van a CoffeMokko snifferei és az 1-es csoport bűnözői között. Feltehetőleg a CoffeMokko üzemeltetői a korábbi csoportoktól kölcsönözték a kártyalopó eszközöket és szoftvereket. A valószínűbb azonban az, hogy a CoffeMokko sniffereinek használata háttérben álló bűnözői csoport ugyanazok az emberek, akik az 1-es csoport tevékenységei során végrehajtott támadásokat irányították. Az első bűnözői tevékenységről szóló jelentés megjelenését követően az összes domain nevüket letiltották, és az eszközöket részletesen megvizsgálták és dokumentálták. A csoport kénytelen volt szünetet tartani, átértékelni a belső eszközeit és átkódolni a sniffereiket, hogy folytathassák a támadásokat és elkerüljék a felfedezést.

Infrastruktúra

DomainekFelfedezés dátuma
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

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster