
Prakticky každý z nás využívá služeb online obchodů, což znamená, že dříve či později riskuje, že se stane obětí JavaScriptových snifferů — speciálního kódu, který útočníci vkládají na webovou stránku za účelem krádeže údajů o platebních kartách, adres, přihlašovacích jmen a hesel uživatelů.
Sniffery již zasáhly téměř 400 000 uživatelů webových stránek a mobilních aplikací letecké společnosti British Airways, stejně jako návštěvníky britského webu sportovního giganta FILA a amerického distributora lístků Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris — tyto a mnoho dalších platebních systémů bylo infikováno.
Analytik Threat Intelligence Group-IB Viktor Okorokov vysvětluje, jak se sniffery integrují do kódu webových stránek a kradou platební informace, a také o tom, které CRM systémy napadají.

„Skrytá hrozba“
Stalo se tak, že sniffery JS zůstávaly po dlouhou dobu mimo zorné pole antivirových analytiků a banky a platební systémy je nepovažovaly za vážnou hrozbu. A naprosto zbytečně. Odborníci Group-IB 2440 infikovaných online obchodů, jejichž návštěvníci — celkem přibližně 1,5 milionu lidí denně — byli vystaveni riziku kompromitace. Mezi postiženými jsou nejen uživatelé, ale také online obchody, platební systémy a banky, které vydaly zkompromitované karty.
Group-IB se stal prvním výzkumem darknetového trhu snifferů, jejich infrastruktury a způsobů monetizace, které jejich tvůrcům přináší miliony dolarů. Objevili jsme 38 rodin snifferů, z nichž pouze 12 bylo dříve známých výzkumníkům.
Podrobně se zaměříme na čtyři rodiny snifferů, které byly zkoumány během výzkumu.
Rodina ReactGet
Snímače rodiny ReactGet se používají k krádeži údajů o bankovních kartách na webových stránkách online obchodů. Snímač může pracovat s velkým počtem různých platebních systémů používaných na webu: jedna hodnota parametru odpovídá jednomu platebnímu systému, a jednotlivé zjištěné verze snímače mohou být použity k získání přihlašovacích údajů a také k krádeži údajů o bankovních kartách z platebních formulářů hned několika platebních systémů, jako takzvaný univerzální snímač. Bylo zjištěno, že v některých případech útočníci provádějí phishingové útoky na administrátory online obchodů s cílem získat přístup do administračního panelu webu.
Kampaň s využitím této rodiny snímačů začala v květnu 2017, cílem útoků byly weby spravované CMS a platformami Magento, Bigcommerce, Shopify.
Jak se ReactGet integruje do kódu online obchodu
Kromě 'klasického' implementování skriptu prostřednictvím odkazu, operátoři snímačů rodiny ReactGet používají zvláštní techniku: pomocí JavaScriptového kódu se kontroluje, zda aktuální adresa, na které se uživatel nachází, vyhovuje určitým kritériím. Malicious code will run only if the current URL contains a substring checkout nebo onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Takto se kód snímače provede přesně v okamžiku, kdy uživatel přejde k platbě a zadá platební údaje do formuláře na webu.

Tento snímač používá nestandardní techniku. Platební a osobní údaje oběti jsou shromažďovány dohromady, kódovány pomocí base64, a poté je získaný řetězec použit jako parameter pro odeslání žádosti na stránku útočníků. Nejčastěji cesta k bráně imituje JavaScriptový soubor, například resp.js, data.js a tak dále, ale také se používají odkazy na soubory obrázků, GIF a JPG. Zajímavostí je, že snímač vytváří objekt obrázku o rozměrech 1 na 1 pixel a používá dříve získaný odkaz jako parametr. src Obrázky. To znamená, že pro uživatele bude takový požadavek v provozu vypadat jako žádost o běžný obrázek. Podobná technika byla použita u snifferů rodiny ImageID. Kromě toho, technika použití obrázku o rozměrech 1 na 1 pixel se používá v mnoha legitimních skriptech online analytiky, což může také uživatele zmást.

Analýza verzí
Analýza aktivních domén používaných operátory snifferů ReactGet odhalila mnoho různých verzí snifferů této rodiny. Verze se liší přítomností nebo absencí obfuskace a navíc je každý sniffer určen pro konkrétní platební systém, který zpracovává platby kartou pro online obchody. Odborníci z Group-IB získali úplný seznam dostupných variant snifferů tím, že procházeli hodnoty parametru odpovídajícího číslu verze a určili platební systémy, na které je sniffer zaměřen podle názvů formulářových polí, která každý sniffer hledá v kódu stránky.
Seznam snifferů a odpovídajících platebních systémů
| URL snifferu | Platební systém |
|---|---|
| Authorize.Net | |
| Cardsave | |
| Authorize.Net | |
| Authorize.Net | |
| eWAY Rapid | |
| Authorize.Net | |
| Adyen | |
| USAePay | |
| Authorize.Net | |
| USAePay | |
| Authorize.Net | |
| Moneris | |
| USAePay | |
| PayPal | |
| Sage Pay | |
| Verisign | |
| PayPal | |
| Stripe | |
| Realex | |
| PayPal | |
| LinkPoint | |
| PayPal | |
| PayPal | |
| DataCash | |
| PayPal | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| Moneris | |
| Sage Pay | |
| USAePay | |
| Authorize.Net | |
| Authorize.Net | |
| ANZ eGate | |
| Authorize.Net | |
| Moneris | |
| Sage Pay | |
| Sage Pay | |
| Chase Paymentech | |
| Authorize.Net | |
| Adyen | |
| PsiGate | |
| CyberSource | |
| ANZ eGate | |
| Realex | |
| USAePay | |
| Authorize.Net | |
| Authorize.Net | |
| ANZ eGate | |
| PayPal | |
| PayPal | |
| Realex | |
| Sage Pay | |
| PayPal | |
| Verisign | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| ANZ eGate | |
| PayPal | |
| CyberSource | |
| Authorize.Net | |
| Sage Pay | |
| Realex | |
| CyberSource | |
| PayPal | |
| PayPal | |
| PayPal | |
| Verisign | |
| eWAY Rapid | |
| Sage Pay | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| First Data Global Gateway | |
| Authorize.Net | |
| Authorize.Net | |
| Moneris | |
| Authorize.Net | |
| PayPal | |
| Verisign | |
| USAePay | |
| USAePay | |
| Authorize.Net | |
| Verisign | |
| PayPal | |
| Authorize.Net | |
| Stripe | |
| Authorize.Net | |
| eWAY Rapid | |
| Sage Pay | |
| Authorize.Net | |
| Braintree | |
| Braintree | |
| PayPal | |
| Sage Pay | |
| Sage Pay | |
| Authorize.Net | |
| PayPal | |
| Authorize.Net | |
| Verisign | |
| PayPal | |
| Authorize.Net | |
| Stripe | |
| Authorize.Net | |
| eWAY Rapid | |
| Sage Pay | |
| Authorize.Net | |
| Braintree | |
| PayPal | |
| Sage Pay | |
| Sage Pay | |
| Authorize.Net | |
| PayPal | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Sage Pay | |
| Westpac PayWay | |
| PayFort | |
| PayPal | |
| Authorize.Net | |
| Stripe | |
| First Data Global Gateway | |
| PsiGate | |
| Authorize.Net | |
| Authorize.Net | |
| Moneris | |
| Authorize.Net | |
| Sage Pay | |
| Verisign | |
| Moneris | |
| PayPal | |
| LinkPoint | |
| Westpac PayWay | |
| Authorize.Net | |
| Moneris | |
| PayPal | |
| Adyen | |
| PayPal | |
| Authorize.Net | |
| USAePay | |
| EBizCharge | |
| Authorize.Net | |
| Verisign | |
| Verisign | |
| Authorize.Net | |
| PayPal | |
| Moneris | |
| Authorize.Net | |
| PayPal | |
| PayPal | |
| Westpac PayWay | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| PayPal | |
| PayFort | |
| CyberSource | |
| PayPal Payflow Pro | |
| Authorize.Net | |
| Authorize.Net | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Authorize.Net | |
| Stripe | |
| Authorize.Net | |
| Authorize.Net | |
| Verisign | |
| PayPal | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Authorize.Net | |
| Authorize.Net | |
| PayPal | |
| Flint | |
| PayPal | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Stripe | |
| Fat Zebra | |
| Sage Pay | |
| Authorize.Net | |
| First Data Global Gateway | |
| Authorize.Net | |
| eWAY Rapid | |
| Adyen | |
| PayPal | |
| QuickBooks Merchant Services | |
| Verisign | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| Sage Pay | |
| Authorize.Net | |
| eWAY Rapid | |
| Authorize.Net | |
| ANZ eGate | |
| PayPal | |
| CyberSource | |
| Authorize.Net | |
| Sage Pay | |
| Realex | |
| CyberSource | |
| PayPal | |
| PayPal | |
| PayPal | |
| Verisign | |
| eWAY Rapid | |
| Sage Pay | |
| Sage Pay | |
| Verisign | |
| Authorize.Net | |
| Authorize.Net | |
| First Data Global Gateway | |
| Authorize.Net | |
| Authorize.Net | |
| Moneris | |
| Authorize.Net | |
| PayPal |
Sniffer hesel
Jednou z výhod JavaScriptových snifferů, které pracují na straně klienta webu, je jejich univerzálnost: škodlivý kód vložený na webovou stránku je schopen ukrást data jakéhokoli typu, ať už jde o platební údaje nebo přihlašovací jméno a heslo uživatelského účtu. Odborníci z Group-IB objevili vzorek snifferu patřícího do rodiny ReactGet, určeného ke krádeži e-mailových adres a hesel uživatelů webu.

Průnik se snifferem ImageID
V průběhu analýzy jednoho z infikovaných obchodů bylo zjištěno, že jeho web byl infikován dvakrát: kromě škodlivého kódu snifferu rodiny ReactGet byl objeven kód snifferu rodiny ImageID. Toto překrytí může být důkazem toho, že operátoři stojící za použitím obou snifferů používají podobné techniky pro vložení škodlivého kódu.

Univerzální sniffer
Během analýzy jedné z domén spojených s infrastrukturou snifferů ReactGet bylo zjištěno, že stejný uživatel zaregistroval tři další domény. Tyto tři domény imitovaly domény skutečných webových stránek a byly dříve používány k hostování snifferů. Při analýze kódu tří legitimních webů byl objeven neznámý sniffer, a další analýza ukázala, že se jedná o vylepšenou verzi snifferu ReactGet. Všechny dříve sledované verze snifferů této rodiny cílily na určité platební systémy, což znamenalo, že každému platebnímu systému byla potřebná speciální verze snifferu. V tomto případě však byla zjištěna univerzální verze snifferu, schopná krást informace z formulářů vztahujících se k 15 různým platebním systémům a modulům ecommerce webů pro provádění online plateb.
Na začátku své činnosti sniffer vyhledával základní pole formuláře obsahující osobní údaje oběti: celé jméno, fyzickou adresu, telefonní číslo.

Poté sniffer procházel více než 15 různými prefixy, odpovídajícími různým platebním systémům a modulům pro online platby.

Osobní údaje oběti a platební informace byly poté shromážděny dohromady a odeslány na server ovládaný útočníkem: v tomto konkrétním případě byly zjištěny dvě verze univerzálního snifferu ReactGet, umístěné na dvou různých hacknutých stránkách. Obě verze však zasílaly ukradené údaje na stejnou hacknutou stránku. zoobashop.com.

Analýza prefixů, které sniffer používal k vyhledávání polí obsahujících platební informace oběti, ukázala, že tento vzorek snifferu cílil na následující platební systémy:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- DataCash (MasterCard)
- Realex Payments
- PsiGate
- Heartland Payment Systems
Jaké nástroje se používají k ukradení platebních informací
První nástroj, který byl nalezen během analýzy infrastruktury útočníků, slouží k obfuskování škodlivých skriptů odpovědných za krádež bankovních karet. Na jednom z hostitelů útočníků byl nalezen bash skript, který využívá CLI projektu k automatizaci obfuskování kódu snifferů.
![]()
Druhý nalezený nástroj slouží k vygenerování kódu, který zajišťuje načtení hlavního snifferu. Tento nástroj generuje JavaScriptový kód, který kontroluje, zda se uživatel nachází na stránce platby, tím, že hledá ve současné adrese uživatele řetězce checkout, košík a tak dále, a pokud je výsledek pozitivní, kód načte hlavní sniffer ze serveru útočníků. Pro skrytí škodlivé činnosti jsou všechny řetězce, včetně testovacích řetězců pro určení platební stránky, stejně jako odkaz na sniffer, zakódovány pomocí base64.

Phishingové útoky
Během analýzy síťové infrastruktury útočníků bylo zjištěno, že často k získání přístupu do administrativního panelu cílového online obchodu zločinecká skupina používá phishing. Útočníci registrují doménu, která vizuálně připomíná doménu obchodu, a poté na ní nasazují falešný formulář pro vstup do administrativního panelu Magento. V případě úspěchu útočníci získají přístup do administrativního panelu CMS Magento, což jim umožňuje editovat komponenty webu a implementovat sniffer pro krádež údajů o kreditních kartách.

Infrastruktura
| Doména | Datum detekce/vzniku |
|---|---|
| mediapack.info | 04.05.2017 |
| adsgetapi.com | 15.06.2017 |
| simcounter.com | 14.08.2017 |
| mageanalytics.com | 22.12.2017 |
| maxstatics.com | 16.01.2018 |
| reactjsapi.com | 19.01.2018 |
| mxcounter.com | 02.02.2018 |
| apitstatus.com | 01.03.2018 |
| orderracker.com | 20.04.2018 |
| tagstracking.com | 25.06.2018 |
| adsapigate.com | 12.07.2018 |
| trust-tracker.com | 15.07.2018 |
| fbstatspartner.com | 02.10.2018 |
| billgetstatus.com | 12.10.2018 |
| aldenmlilhouse.com | 20.10.2018 |
| balletbeautlful.com | 20.10.2018 |
| bargalnjunkie.com | 20.10.2018 |
| payselector.com | 21.10.2018 |
| tagsmediaget.com | 02.11.2018 |
| hs-payments.com | 16.11.2018 |
| ordercheckpays.com | 19.11.2018 |
| geisseie.com | 24.11.2018 |
| gtmproc.com | 29.11.2018 |
| livegetpay.com | 18.12.2018 |
| sydneysalonsupplies.com | 18.12.2018 |
| newrelicnet.com | 19.12.2018 |
| nr-public.com | 03.01.2019 |
| cloudodesc.com | 04.01.2019 |
| ajaxstatic.com | 11.01.2019 |
| livecheckpay.com | 21.01.2019 |
| asianfoodgracer.com | 25.01.2019 |
Rodina G-Analytics
Tato rodina snifferů se používá pro krádež karet klientů online obchodů. První doménové jméno, které skupina použila, bylo registrováno v dubnu 2016, což může naznačovat začátek aktivity skupiny v polovině roku 2016.
V aktuální kampani skupina využívá doménová jména, která imitují skutečně existující služby, jako jsou Google Analytics a jQuery, a maskuje činnost snifferů legitimními skripty a podobnými legitimními doménovými jmény. Útoky cílené na weby, které pracují pod správou CMS Magento.
Jak se G-Analytics integruje do kódu online obchodu
Hlavní charakteristikou této skupiny je využití různých metod krádeže platebních informací uživatelů. Kromě klasického vkládání JavaScriptového kódu do klientské části webu, zločinecká skupina také používala techniku vkládání kódu do serverové části webu, konkrétně PHP skripty, které zpracovávají uživatelsky zadaná data. Tato technika je nebezpečná, protože ztěžuje odhalení škodlivého kódu externími výzkumníky. Specialisté skupiny Group-IB objevili verzi snifferu, která byla vložena do PHP kódu webu a využívala jako bránu doménu dittm.org.

Byla také objevena starší verze snifferu, která používá pro sběr ukradených dat stejnou doménu dittm.org, ale tato verze je určena již pro instalaci na klientské straně online obchodu.

Později skupina změnila svou taktiku a začala věnovat více pozornosti skrývání škodlivé činnosti a maskování.
Na začátku roku 2017 začala skupina používat doménu jquery-js.com, která se maskovala jako CDN pro jQuery: při návštěvě webu útočníků je uživatel přesměrován na legitimní web jquery.com.
A v polovině roku 2018 skupina zavedla doménové jméno g-analytics.com a začala maskovat činnost snifferu pod legitimní službu Google Analytics.


Analýza verzí
V rámci analýzy domén použitých pro ukládání kódu snifferů bylo zjištěno, že na webu je k dispozici velké množství verzí, které se liší přítomností obfuskace, stejně jako přítomností či absencí nedosažitelného kódu přidaného do souboru k odvádění pozornosti a skrytí škodlivého kódu.
Celkem na webu jquery-js.com bylo odhaleno šest verzí snifferů. Ukradená data tyto sniffery odesílají na adresu, která se nachází na tomtéž webu, kde je i 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
Pozdější doména g-analytics.com, kterou skupina používala v útocích od poloviny roku 2018, slouží jako úložiště pro větší množství snifferů. Celkem bylo odhaleno 16 různých verzí snifferu. V tomto případě byla brána pro odesílání ukradených dat maskována jako odkaz na obrázek ve 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
Monetizace ukradených dat
Zločinecká skupina monetizuje ukradená data prodejem karet prostřednictvím speciálně vytvořeného podzemního obchodu, který poskytuje služby carderům. Analýza domén používaných útočníky umožnila zjistit, že google-analytics.cm byl registrován tím samým uživatelem, který vlastní doménu cardz.vc. Doména cardz.vc se vztahuje na obchod s prodejem odcizených bankovních karet Cardsurfs (Flysurfs), který si získal popularitu již v době aktivity podzemního tržiště AlphaBay jako obchod s prodejem bankovních karet, které byly ukradeny pomocí snifferu.

Analýzou domény analytic.is, umístěné na tom samém serveru jako domény využívané sniffery pro sběr ukradených dat, specialisté Group-IB objevili soubor obsahující logy Cookie-stealeru, který byl zřejmě později opuštěn vývojářem. Jeden záznam v logu obsahoval doménu iozoz.com, která byla dříve použita u jednoho ze snifferů aktivních v roce 2016. Předpokládá se, že tuto doménu dříve využíval útočník ke sběru ukradených karet pomocí snifferu. Tato doména byla registrována na emailovou adresu kts241@gmail.com, která byla také použita pro registraci domén cardz.su a cardz.vc, vztahujících se k obchodu s kardinovými kartami Cardsurfs.
Na základě získaných dat lze předpokládat, že rodina snifferů G-Analytics a podzemní obchod s prodejem bankovních karet Cardsurfs jsou řízeny stejnými lidmi, a obchod slouží k realizaci bankovních karet, které byly ukradeny pomocí snifferu.
Infrastruktura
| Doména | Datum detekce/vzniku |
|---|---|
| iozoz.com | 08.04.2016 |
| dittm.org | 10.09.2016 |
| jquery-js.com | 02.01.2017 |
| g-analytics.com | 31.05.2018 |
| google-analytics.is | 21.11.2018 |
| analytic.to | 04.12.2018 |
| google-analytics.to | 06.12.2018 |
| google-analytics.cm | 28.12.2018 |
| analytic.is | 28.12.2018 |
| googlc-analytics.cm | 17.01.2019 |
Rodina Illum
Illum je rodina snifferů, používaná pro útoky na online obchody, které pracují pod správou CMS Magento. Kromě implementace škodlivého kódu, operátoři tohoto snifferu také využívají plně fiktivní platební formuláře, které odesílají data na pod kontrolou útočníků.
Při analýze síťové infrastruktury, kterou používají operátoři tohoto snifferu, bylo zaznamenáno velké množství škodlivých skriptů, exploitů, podvržených platebních formulářů, a také sbírka příkladů se škodlivými sniffery konkurentů. Na základě informací o datech vzniku doménových jmen používaných skupinou lze předpokládat, že začátek kampaně se datuje na konec roku 2016.
Jak Illum proniká do kódu online obchodu
První nalezené verze snifferu byly implantovány přímo do kódu kompromitované stránky. Ukradená data byla odesílána na adresu cdn.illum[.]pw/records.php, brána byla kódována pomocí base64.

Později byla nalezena zabalená verze sniffu, která využívá jiný gateway — records.nstatistics[.]com/records.php.

Podle Willem de Groot, stejný hostitel byl použit ve snifferu, který byl nasazen na , který patřil německé politické straně CSU.
Analýza webu útočníků
Experti Group-IB objevili a analyzovali web, který tato zločinecká skupina používala k ukládání nástrojů a sběru ukradených informací.

Mezi nástroji nalezenými na serveru útočníků byly skripty a exploit pro zvýšení oprávnění v OS Linux: například Skript pro kontrolu zvýšení oprávnění v Linuxu, který vytvořil Mike Czumak, a exploit pro CVE-2009-1185.
Přímo pro útoky na online obchody útočníci použili dva exploit: je schopen zavést škodlivý kód do core_config_data pomocí exploitu CVE-2016-4010, využívá zranitelnost typu RCE v pluginech pro CMS Magento, což umožňuje provést libovolný kód na zranitelném webovém serveru.

Během analýzy serveru byly také nalezeny různé vzorky snifferů a falešných platebních formulářů, které útočníci používali k shromažďování platebních informací z hacknutých webů. Jak je patrné z níže uvedeného seznamu, některé skripty byly vytvářeny individuálně pro každou hacknutou stránku, zatímco pro určité CMS a platební brány bylo použito univerzální řešení. Například skripty segapay_standart.js a segapay_onpage.js jsou určeny pro zavedení na weby, které používají platební bránu Sage Pay.
Seznam skriptů pro různé platební brány
| Skript | Platební brána |
|---|---|
| [.]pw/mjs_special/visiondirect.co.uk.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/topdierenshop.nl.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/tiendalenovo.es.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/pro-bolt.com.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/plae.co.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/ottolenghi.co.uk.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/oldtimecandy.com.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/mylook.ee.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs_special/luluandsky.com.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/julep.com.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs_special/gymcompany.es.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/grotekadoshop.nl.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs_special/fushi.co.uk.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/fareastflora.com.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs_special/compuindia.com.js | //request.payrightnow[.]cf/alldata.php |
| [.]pw/mjs/segapay_standart.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs/segapay_onpage.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs/replace_standart.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/mjs/all_inputs.js | //cdn.illum[.]pw/records.php |
| [.]pw/mjs/add_inputs_standart.js | //request.payrightnow[.]cf/checkpayment.php |
| [.]pw/magento/payment_standart.js | //cdn.illum[.]pw/records.php |
| [.]pw/magento/payment_redirect.js | //payrightnow[.]cf/?payment= |
| [.]pw/magento/payment_redcrypt.js | //payrightnow[.]cf/?payment= |
| [.]pw/magento/payment_forminsite.js | //paymentnow[.]tk/?payment= |
Hostitel paymentnow[.]tk, používaný jako gateway ve skriptu payment_forminsite.js, byl nalezen jako subjectAltName v několika certifikátech vztahujících se k službě CloudFlare. Kromě toho byl na hostiteli přítomen skript evil.js. Soudě podle názvu skriptu mohl být použit v rámci exploitu CVE-2016-4010, díky kterému je možné zavést škodlivý kód do patičky webu řízeného CMS Magento. Jako gateway tento skript použil hostitel request.requestnet[.]tk, který používá tentýž certifikát jako hostitel paymentnow[.]tk.
Falešné platební formuláře
Níže je na obrázku ukázka formuláře pro zadání údajů o kartě. Tento formulář byl použit k zavedení na web online obchodu a krádeži dat z karet.

Na následujícím obrázku je příklad podvodného platebního formuláře PayPal, který zločinci použili k infiltraci na stránky s touto platební metodou.

Infrastruktura
| Doména | Datum detekce/vzniku |
|---|---|
| cdn.illum.pw | 27/11/2016 |
| records.nstatistics.com | 06/09/2018 |
| request.payrightnow.cf | 25/05/2018 |
| paymentnow.tk | 16/07/2017 |
| payment-line.tk | 01/03/2018 |
| paymentpal.cf | 04/09/2017 |
| requestnet.tk | 28/06/2017 |
Rodina CoffeMokko
Rodina snifferů CoffeMokko, určených ke krádeži bankovních karet uživatelů internetových obchodů, se používá minimálně od května 2017. Předpokládá se, že operátory této rodiny snifferů je zločinecká skupina Group 1, popsaná odborníky RiskIQ v roce 2016. Útoku podléhaly webové stránky provozované na platformách jako Magento, OpenCart, WordPress, osCommerce, Shopify.
Jak se CoffeMokko integruje do kódu online obchodu
Operátoři této rodiny vytvářejí unikátní sniffery pro každé infikování: soubor snifferu se nachází v adresáři src nebo js na serveru zločinců. Integrace do kódu webu se provádí prostřednictvím přímého odkazu na sniffer.

V kódu snifferu jsou pevně kódována jména polí formulářů, ze kterých je třeba data ukrást. Sniffer také kontroluje, zda se uživatel nachází na stránce platby, porovnáváním seznamu klíčových slov s aktuální adresou uživatele.

Některé nalezené verze snifferu byly obfuskovány a obsahovaly zašifrovaný řetězec, ve kterém byl uložen hlavní pole zdrojů: v něm byla jména polí formulářů pro různé platební systémy, stejně jako adresa brány, na kterou bylo třeba odeslat ukradené údaje.

Ukradené platební informace byly odesílány skriptu na serveru zločinců přes cestu /savePayment/index.php или /tr/index.php. Předpokládá se, že tento skript slouží k přenosu dat z brány na hlavní server, který konsoliduje data ze všech snifferů. Aby se skryly přenášené údaje, jsou všechny platební informace oběti kódovány pomocí base64, a poté dochází k několika výměnám znaků:
- znak „e“ je nahrazen „:“
- znak „w“ je nahrazen „+“
- znak „o“ je nahrazen „%“
- znak „d“ je nahrazen „#“
- znak „a“ je nahrazen „-“
- znak „7“ je nahrazen „^“
- znak „h“ je nahrazen „_“
- znak „T“ je nahrazen „@“
- znak „0“ je nahrazen „/“
- znak „Y“ je nahrazen „*“
V důsledku výměn znaků jsou kódovaná data pomocí base64 nemožná dekódovat, aniž by se provedla zpětná transformace.
Toto je ukázka kódu snifferu, který nebyl podroben obfuskaci:

Analýza infrastruktury
V ranějších kampaních útočníci registrovali doménová jména, která byla podobná jménům legitimních webových obchodů. Jejich doména se mohla lišit od legitimní pouze jedním znakem nebo jinou TLD. Registrované domény byly využívány k uchovávání kódu snifferu, jehož odkaz byl vložen do kódu obchodu.
Tato skupina také používala domény, které připomínaly názvy populárních pluginů pro jQuery (slickjs[.]org pro weby, které používají tento plugin. slick.js), platebních bran (sagecdn[.]org pro weby, které používají platební systém Sage Pay).
Později skupina začala vytvářet domény, jejichž názvy neměly nic společného ani s doménou obchodu, ani s jeho tematikou.

Každé doméně odpovídal web, na kterém byla vytvořena adresářová struktura /js nebo /src. V tomto adresáři byly uchovávány skripty snifferů: po jednom snifferu na každé nové infikování. Sniffer byl vložen do kódu webu prostřednictvím přímého odkazu, avšak v ojedinělých případech útočníci modifikovali jeden z webových souborů a přidávali do něj škodlivý kód.
Analýza kódu
První algoritmus obfuskace
V některých zjištěných vzorcích snifferů této rodiny byl kód obfuskován a obsahoval zašifrovaná data potřebná pro jeho funkci: konkrétně adresu brány snifferu, seznam polí platebního formuláře a v některých případech také kód falešného platebního formuláře. V kódu uvnitř funkce byly zdroje zašifrovány pomocí XOR s klíčem, který byl předán jako argument této funkce.

Dešifrováním řetězce příslušným klíčem, unikátním pro každý vzorek, lze získat řetězec obsahující všechny řetězce z kódu snifferu oddělené oddělovačem.

Druhý algoritmus obfuskace
V novějších vzorcích snifferů této rodiny byl použit jiný mechanismus obfuskace: v tomto případě byla data zašifrována pomocí vlastního algoritmu. Řetězec obsahující zašifrovaná data potřebná pro fungování snifferu byl předán jako argument dešifrovací funkce.

Pomocí konzole prohlížeče lze dešifrovat zašifrovaná data a získat pole obsahující zdroje snifferu.

Spojení s ranými útoky MageCart
Při analýze jedné z domén, kterou skupina používala jako bránu pro sběr ukradených dat, bylo zjištěno, že na této doméně je nasazená infrastruktura k krádeži kreditních karet, identická s tou, která byla použita skupinou 1 — jednou z prvních skupin, specialisty RiskIQ.
Na hostiteli rodiny snifferů CoffeMokko byly nalezeny dva soubory:
- mage.js — soubor obsahující kód snifferu skupiny 1 s adresou brány js-cdn.link
- mag.php — PHP skript odpovědný za sběr dat ukradených snifferem
Содержимое файла mage.js 
Také bylo zjištěno, že první domény, které skupina stojící za rodinou snifferů CoffeMokko použila, byly registrovány 17. května 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Formát těchto doménových názvů odpovídá doménovým názvům skupiny 1, které byly použity při útocích v roce 2016.
Na základě zjištěných faktů lze učinit předpoklad, že mezi operátory snifferů CoffeMokko a zločineckou skupinou skupiny 1 existuje spojení. Předpokládá se, že operátoři CoffeMokko si mohli vypůjčit nástroje a software pro krádež karet od svých předchůdců. Je však mnohem pravděpodobnější, že zločinecká skupina stojící za používáním snifferů rodiny CoffeMokko jsou tytéž osoby, které prováděly útoky v rámci činnosti skupiny 1. Po publikaci první zprávy o činnosti zločinecké skupiny byly všechny jejich domény zablokovány a nástroje podrobně prozkoumány a popsány. Skupina byla nucena si dát pauzu, přepracovat své interní nástroje a přepsat kód snifferů, aby mohla pokračovat ve svých útocích a zůstat nepovšimnuta.
Infrastruktura
| Doména | Datum detekce/vzniku |
|---|---|
| link-js.link | 17.05.2017 |
| info-js.link | 17.05.2017 |
| track-js.link | 17.05.2017 |
| map-js.link | 17.05.2017 |
| smart-js.link | 17.05.2017 |
| adorebeauty.org | 03.09.2017 |
| security-payment.su | 03.09.2017 |
| braincdn.org | 04.09.2017 |
| sagecdn.org | 04.09.2017 |
| slickjs.org | 04.09.2017 |
| oakandfort.org | 10.09.2017 |
| citywlnery.org | 15.09.2017 |
| dobell.su | 04.10.2017 |
| childsplayclothing.org | 31.10.2017 |
| jewsondirect.com | 05.11.2017 |
| shop-rnib.org | 15.11.2017 |
| closetlondon.org | 16.11.2017 |
| misshaus.org | 28.11.2017 |
| battery-force.org | 01.12.2017 |
| kik-vape.org | 01.12.2017 |
| greatfurnituretradingco.org | 02.12.2017 |
| etradesupply.org | 04.12.2017 |
| replacemyremote.org | 04.12.2017 |
| all-about-sneakers.org | 05.12.2017 |
| mage-checkout.org | 05.12.2017 |
| nililotan.org | 07.12.2017 |
| lamoodbighats.net | 08.12.2017 |
| walletgear.org | 10.12.2017 |
| dahlie.org | 12.12.2017 |
| davidsfootwear.org | 20.12.2017 |
| blackriverimaging.org | 23.12.2017 |
| exrpesso.org | 02.01.2018 |
| parks.su | 09.01.2018 |
| pmtonline.su | 12.01.2018 |
| ottocap.org | 15.01.2018 |
| christohperward.org | 27.01.2018 |
| coffetea.org | 31.01.2018 |
| energycoffe.org | 31.01.2018 |
| energytea.org | 31.01.2018 |
| teacoffe.net | 31.01.2018 |
| adaptivecss.org | 01.03.2018 |
| coffemokko.com | 01.03.2018 |
| londontea.net | 01.03.2018 |
| ukcoffe.com | 01.03.2018 |
| labbe.biz | 20.03.2018 |
| batterynart.com | 03.04.2018 |
| btosports.net | 09.04.2018 |
| chicksaddlery.net | 16.04.2018 |
| paypaypay.org | 11.05.2018 |
| ar500arnor.com | 26.05.2018 |
| authorizecdn.com | 28.05.2018 |
| slickmin.com | 28.05.2018 |
| bannerbuzz.info | 03.06.2018 |
| kandypens.net | 08.06.2018 |
| mylrendyphone.com | 15.06.2018 |
| freshchat.info | 01.07.2018 |
| 3lift.org | 02.07.2018 |
| abtasty.net | 02.07.2018 |
| mechat.info | 02.07.2018 |
| zoplm.com | 02.07.2018 |
| zapaljs.com | 02.09.2018 |
| foodandcot.com | 15.09.2018 |
| freshdepor.com | 15.09.2018 |
| swappastore.com | 15.09.2018 |
| verywellfitnesse.com | 15.09.2018 |
| elegrina.com | 18.11.2018 |
| majsurplus.com | 19.11.2018 |
| top5value.com | 19.11.2018 |
Zdroj: habr.com
