
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.

„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 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.
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.

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.

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 sniffera | Platobný 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 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.

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.

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.

Následne sniffer hľadal viac ako 15 rôznych prefixov, zodpovedajúcich rôznym platobným systémom a modulom pre online platby.

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.

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 na automatizáciu obfuskácie kódu snifferov.
![]()
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.

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.

Infrastruktúra
| Doména | Dátum objavenia / 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
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.

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.

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.


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.

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éna | Dátum objavenia / 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 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.

Neskôr bola objavená zabalená verzia sniffera, využívajúca iný gateway — records.nstatistics[.]com/records.php.

Podľa Willem de Groot, rovnaký hostiteľ bol použitý v snifferi, ktorý bol nasadený na , 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í.

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: je schopný vložiť škodlivý kód do core_config_data s využitím exploitácie CVE-2016-4010, 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.

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
| Skript | Platobná 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= |
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.

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.

Infrastruktúra
| Doména | Dátum objavenia / 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 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.

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.

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.

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ý:

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.

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.

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.

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.

Pomocou konzoly prehliadača je možné dešifrovať šifrované údaje a získať pole, ktoré obsahuje zdroje sniffera.

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, 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 
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éna | Dátum objavenia / 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
