
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.

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

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.

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 URL | Fizetési rendszer |
|---|---|
| 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 |
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.

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

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.

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.

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.

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: a sznifferek kódjának obfuszkálásának automatizálására.
![]()
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.

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.

Infrastruktúra
| Domainek | Felfedezés dátuma |
|---|---|
| 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 |
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.

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.

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.


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.

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
| Domainek | Felfedezés dátuma |
|---|---|
| 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 |
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.

Később felfedezték a csomagolt verziót a szipkáló, amely másik kaput használt — records.nstatistics[.]com/records.php.

A következő szerint Willem de Groot, ugyanazt a hosztot használták a szipkáló számára, amely be volt építve , 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.

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: képest képes kártékony kódot beágyazni core_config_data a CVE-2016-4010 kihasználásával, 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.

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
| Script | Fizetési átjáró |
|---|---|
| [.]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= |
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.

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.

Infrastruktúra
| Domainek | Felfedezés dátuma |
|---|---|
| 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 |
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.

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

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:

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.

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.

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.

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.

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.

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, 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 
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
| Domainek | Felfedezés dátuma |
|---|---|
| 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 |
Forrás: habr.com
