Aproape toți folosim serviciile magazinelor online, ceea ce înseamnă că mai devreme sau mai târziu riscăm să devenim victima sniffer-urilor JavaScript - cod special pe care atacatorii îl implementează pe un site web pentru a fura datele cardurilor bancare, adresele, autentificarea și parolele utilizatorilor. .
Aproape 400 de utilizatori ai site-ului și aplicației mobile British Airways au fost deja afectați de sniffer, precum și vizitatori ai site-ului britanic al gigantului sportiv FILA și al distribuitorului american de bilete Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - acestea și multe alte sisteme de plată au fost infectate.
Analistul Threat Intelligence Group-IB Viktor Okorokov vorbește despre modul în care sniffer-ii se infiltrează în codul site-ului web și fură informații de plată, precum și despre ce CRM-uri atacă.
„Amenințare ascunsă”
S-a întâmplat că pentru o lungă perioadă de timp sniffer-ii JS au rămas fericiți de analiștii antivirus, iar băncile și sistemele de plată nu le-au văzut ca pe o amenințare serioasă. Și complet în zadar. Experți din grupul IB
Să ne oprim în detaliu asupra celor patru familii de sniffer studiate în timpul studiului.
ReactGet Family
Sniffer-urile din familia ReactGet sunt folosite pentru a fura datele cardurilor bancare de pe site-urile de cumpărături online. Sniffer-ul poate funcționa cu un număr mare de sisteme de plată diferite utilizate pe site: o valoare a parametrului corespunde unui sistem de plată, iar versiunile individuale detectate ale sniffer-ului pot fi folosite pentru a fura acreditările, precum și pentru a fura datele cardului bancar din plată. forme ale mai multor sisteme de plată simultan, cum ar fi așa-numitul sniffer universal. S-a constatat că, în unele cazuri, atacatorii efectuează atacuri de tip phishing asupra administratorilor magazinelor online pentru a obține acces la panoul administrativ al site-ului.
O campanie care folosește această familie de sniffer a început în mai 2017; site-urile care rulează CMS și platformele Magento, Bigcommerce și Shopify au fost atacate.
Cum este implementat ReactGet în codul unui magazin online
Pe lângă implementarea „clasică” a unui script prin intermediul unui link, operatorii familiei de sniffer ReactGet folosesc o tehnică specială: folosind codul JavaScript, verifică dacă adresa curentă la care se află utilizatorul îndeplinește anumite criterii. Codul rău intenționat va fi executat numai dacă subșirul este prezent în adresa URL curentă verificare sau checkout într-un pas, o pagina/, out/onepag, casă/una, ckout/unul. Astfel, codul sniffer va fi executat exact în momentul în care utilizatorul procedează la plata achizițiilor și introduce informațiile de plată în formularul de pe site.
Acest sniffer folosește o tehnică non-standard. Plata victimei și datele personale sunt colectate împreună și codificate folosind base64, iar apoi șirul rezultat este folosit ca parametru pentru a trimite o solicitare către site-ul web al atacatorilor. Cel mai adesea, calea către poartă imită un fișier JavaScript, de exemplu resp.js, date.js și așa mai departe, dar sunt folosite și link-uri către fișiere imagine, GIF и JPG. Particularitatea este că sniffer-ul creează un obiect imagine care măsoară 1 cu 1 pixel și folosește linkul primit anterior ca parametru src Imagini. Adică, pentru utilizator, o astfel de solicitare în trafic va arăta ca o solicitare pentru o imagine obișnuită. O tehnică similară a fost folosită în familia ImageID de sniffer. În plus, tehnica utilizării unei imagini de 1 cu 1 pixel este utilizată în multe scripturi de analiză online legitime, care pot, de asemenea, induce în eroare utilizatorul.
Analiza versiunii
Analiza domeniilor active utilizate de operatorii de sniffer ReactGet a relevat multe versiuni diferite ale acestei familii de sniffer. Versiunile diferă prin prezența sau absența ofucării și, în plus, fiecare sniffer este conceput pentru un sistem de plată specific care procesează plățile cu cardul bancar pentru magazinele online. După ce au sortat valoarea parametrului corespunzător numărului versiunii, specialiștii Group-IB au primit o listă completă a variantelor de sniffer disponibile, iar după numele câmpurilor de formular pe care fiecare sniffer le caută în codul paginii, au identificat sistemele de plată. spre care este îndreptat snifferul.
Lista de sniffer și sistemele lor de plată corespunzătoare
Adresa URL a snifferului | Sistem de plata |
---|---|
|
Authorize.Net |
Cardsave | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Rapid |
Authorize.Net | |
Adyen | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
Moneris | |
USAePay | |
PayPal | |
SagePay | |
Verisign | |
PayPal | |
Stripe | |
|
Realex |
PayPal | |
LinkPoint | |
PayPal | |
PayPal | |
DataCash | |
|
PayPal |
|
Authorize.Net |
|
Authorize.Net |
Authorize.Net | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
Moneris | |
|
SagePay |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
Authorize.Net |
|
Moneris |
|
SagePay |
SagePay | |
|
Chase Paymentech |
|
Authorize.Net |
|
Adyen |
PsiGate | |
Sursa cibernetică | |
ANZ eGate | |
Realex | |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
PayPal |
|
PayPal |
Realex | |
|
SagePay |
|
PayPal |
|
Verisign |
Authorize.Net | |
|
Verisign |
Authorize.Net | |
|
ANZ eGate |
PayPal | |
Sursa cibernetică | |
|
Authorize.Net |
|
SagePay |
Realex | |
|
Sursa cibernetică |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rapid |
|
SagePay |
SagePay | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
Primul Gateway global de date |
Authorize.Net | |
Authorize.Net | |
Moneris | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Stripe | |
|
Authorize.Net |
eWAY Rapid | |
|
SagePay |
Authorize.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
SagePay |
|
SagePay |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Authorize.Net |
eWAY Rapid | |
SagePay | |
|
Authorize.Net |
Braintree | |
|
PayPal |
|
SagePay |
SagePay | |
|
Authorize.Net |
PayPal | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
SagePay |
SagePay | |
|
Westpac PayWay |
|
PayFort |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Primul Gateway global de date |
|
PsiGate |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
SagePay | |
|
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 |
SagePay | |
|
Verisign |
|
Authorize.Net |
|
PayPal |
|
PayFort |
Sursa cibernetică | |
PayPal Payflow Pro | |
|
Authorize.Net |
|
Authorize.Net |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
SagePay | |
Authorize.Net | |
|
Stripe |
|
Authorize.Net |
Authorize.Net | |
Verisign | |
|
PayPal |
Authorize.Net | |
|
Authorize.Net |
SagePay | |
|
Authorize.Net |
|
Authorize.Net |
|
PayPal |
|
Silex |
|
PayPal |
SagePay | |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
|
Stripe |
|
Zebră grasă |
SagePay | |
|
Authorize.Net |
Primul Gateway global de date | |
|
Authorize.Net |
|
eWAY Rapid |
Adyen | |
|
PayPal |
Servicii comerciale QuickBooks | |
Verisign | |
|
SagePay |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
SagePay | |
|
Authorize.Net |
|
eWAY Rapid |
Authorize.Net | |
|
ANZ eGate |
|
PayPal |
Sursa cibernetică | |
|
Authorize.Net |
SagePay | |
|
Realex |
Sursa cibernetică | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rapid | |
|
SagePay |
|
SagePay |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
Primul Gateway global de date |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
|
PayPal |
Sniffer de parolă
Unul dintre avantajele sniffer-urilor JavaScript care lucrează pe partea client a unui site web este versatilitatea lor: codul rău intenționat încorporat pe un site web poate fura orice tip de date, fie că este vorba de date de plată sau de autentificare și parola unui cont de utilizator. Specialiștii Group-IB au descoperit un eșantion de sniffer aparținând familiei ReactGet, conceput pentru a fura adresele de e-mail și parolele utilizatorilor site-ului.
Intersecție cu sniffer ImageID
În timpul analizei unuia dintre magazinele infectate, s-a constatat că site-ul său a fost infectat de două ori: pe lângă codul rău intenționat al sniffer-ului familiei ReactGet, a fost detectat codul sniffer-ului familiei ImageID. Această suprapunere ar putea fi o dovadă că operatorii din spatele ambelor sniffer folosesc tehnici similare pentru a injecta cod rău intenționat.
Mirositoare universală
O analiză a unuia dintre numele de domenii asociate infrastructurii sniffer ReactGet a arătat că același utilizator a înregistrat alte trei nume de domenii. Aceste trei domenii au imitat domeniile site-urilor web din viața reală și au fost folosite anterior pentru a găzdui sniffer-uri. La analizarea codului a trei site-uri legitime, a fost detectat un sniffer necunoscut, iar analizele ulterioare au arătat că este o versiune îmbunătățită a sniffer-ului ReactGet. Toate versiunile monitorizate anterior ale acestei familii de sniffer aveau ca scop un singur sistem de plată, adică fiecare sistem de plată necesita o versiune specială a sniffer-ului. Cu toate acestea, în acest caz, a fost descoperită o versiune universală a sniffer-ului care este capabilă să fure informații din formulare legate de 15 sisteme de plată diferite și module ale site-urilor de comerț electronic pentru efectuarea plăților online.
Așadar, la începutul lucrării, snifferul a căutat câmpuri de bază de formular care conțineau informațiile personale ale victimei: numele complet, adresa fizică, numărul de telefon.
Snifferul a căutat apoi peste 15 prefixe diferite corespunzătoare diferitelor sisteme de plată și module de plată online.
În continuare, datele personale ale victimei și informațiile de plată au fost colectate împreună și trimise către un site controlat de atacator: în acest caz particular, au fost descoperite două versiuni ale sniffer-ului universal ReactGet, situate pe două site-uri piratate diferite. Cu toate acestea, ambele versiuni au trimis date furate pe același site piratat zoobashop.com.
Analiza prefixelor pe care sniffer-ul le-a folosit pentru a căuta câmpurile care conțin informațiile de plată ale victimei ne-a permis să stabilim că acest eșantion de sniffer era destinat următoarelor sisteme de plată:
- Authorize.Net
- Verisign
- Primele date
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- DataCash (MasterCard)
- Plăți Realex
- PsiGate
- Sisteme de plată Heartland
Ce instrumente sunt folosite pentru a fura informații de plată?
Primul instrument, descoperit în timpul analizei infrastructurii atacatorilor, este folosit pentru a ofusca scripturile rău intenționate responsabile de furtul cardurilor bancare. Un script bash care folosește CLI-ul proiectului a fost descoperit pe una dintre gazdele atacatorului
Al doilea instrument descoperit este conceput pentru a genera cod responsabil pentru încărcarea sniffer-ului principal. Acest instrument generează cod JavaScript care verifică dacă utilizatorul se află pe pagina de plată căutând șiruri de caractere în adresa curentă a utilizatorului verificare, coş și așa mai departe, iar dacă rezultatul este pozitiv, atunci codul încarcă sniffer-ul principal de pe serverul atacatorilor. Pentru a ascunde activitatea rău intenționată, toate liniile, inclusiv liniile de testare pentru determinarea paginii de plată, precum și un link către sniffer, sunt codificate folosind base64.
Atacurile de phishing
O analiză a infrastructurii de rețea a atacatorilor a relevat că grupul infracțional folosește adesea phishing pentru a obține acces la panoul administrativ al magazinului online țintă. Atacatorii înregistrează un domeniu care este vizual similar cu domeniul unui magazin și apoi implementează un formular de conectare fals al panoului de administrare Magento pe acesta. Dacă au succes, atacatorii vor avea acces la panoul administrativ al CMS Magento, care le oferă posibilitatea de a edita componentele site-ului web și de a implementa un sniffer pentru a fura datele cărților de credit.
Infrastructură
Numele de domeniu | Data descoperirii/apariției |
---|---|
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 |
www.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 |
Familia G-Analytics
Această familie de sniffer este folosită pentru a fura cardurile clienților din magazinele online. Primul nume de domeniu folosit de grup a fost înregistrat în aprilie 2016, ceea ce poate indica faptul că grupul și-a început activitatea la jumătatea anului 2016.
În campania actuală, grupul folosește nume de domenii care imită servicii din viața reală, precum Google Analytics și jQuery, mascând activitatea sniffer-urilor cu scripturi legitime și nume de domenii similare cu cele legitime. Site-urile care rulează CMS Magento au fost atacate.
Cum este implementat G-Analytics în codul unui magazin online
O caracteristică distinctivă a acestei familii este utilizarea diferitelor metode pentru a fura informațiile de plată ale utilizatorilor. Pe lângă injectarea clasică de cod JavaScript în partea client a site-ului, grupul criminal a folosit și tehnici de injectare a codului în partea de server a site-ului, și anume scripturi PHP care procesează datele introduse de utilizator. Această tehnică este periculoasă, deoarece face dificilă detectarea codului rău intenționat de către cercetători terți. Specialiștii Group-IB au descoperit o versiune a unui sniffer încorporat în codul PHP al site-ului, folosind un domeniu ca poartă dittm.org.
A fost descoperită și o versiune timpurie a unui sniffer care folosește același domeniu pentru a colecta date furate dittm.org, dar această versiune este destinată instalării pe partea client a unui magazin online.
Grupul și-a schimbat ulterior tactica și a început să se concentreze mai mult pe ascunderea activităților rău intenționate și a camuflajului.
La începutul anului 2017, grupul a început să folosească domeniul jquery-js.com, mascandu-se ca un CDN pentru jQuery: atunci când merge pe site-ul atacatorilor, utilizatorul este redirecționat către un site legitim jquery.com.
Și la jumătatea anului 2018, grupul a adoptat numele de domeniu g-analytics.com și a început să mascheze activitățile sniffer-ului ca un serviciu Google Analytics legitim.
Analiza versiunii
În timpul analizei domeniilor utilizate pentru stocarea codului sniffer, s-a constatat că site-ul conține un număr mare de versiuni, care diferă prin prezența ofucării, precum și prin prezența sau absența codului inaccesibil adăugat la fișier pentru a distrage atenția. și ascunde codul rău intenționat.
Total pe site jquery-js.com Au fost identificate șase versiuni de sniffer. Aceste sniffer-uri trimit datele furate la o adresă situată pe același site web cu sniffer-ul însuși: 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
Domeniu ulterior g-analytics.com, folosit de grup în atacuri de la jumătatea anului 2018, servește drept depozit pentru mai mulți sniffers. În total, au fost descoperite 16 versiuni diferite ale sniffer-ului. În acest caz, poarta pentru trimiterea datelor furate a fost deghizată ca o legătură către un format de imagine 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
Monetizarea datelor furate
Gruparea infracțională monetizează datele furate prin vânzarea de carduri printr-un magazin subteran special creat care oferă servicii carderilor. Analiza domeniilor folosite de atacatori ne-a permis să stabilim acest lucru google-analytics.cm a fost înregistrat de același utilizator ca și domeniul cardz.vc. Domeniu cardz.vc se referă la un magazin care vinde carduri bancare furate Cardsurfs (Flysurfs), care a câștigat popularitate încă din zilele activității platformei de tranzacționare subterană AlphaBay ca un magazin care vinde carduri bancare furate cu ajutorul unui sniffer.
Analizând domeniul analitic.este, situat pe același server cu domeniile folosite de sniffer pentru a colecta date furate, specialiștii Group-IB au descoperit un fișier care conținea jurnalele de furt de cookie-uri, care se pare că a fost ulterior abandonat de dezvoltator. Una dintre intrările din jurnal conținea un domeniu iozoz.com, care a fost folosit anterior într-unul dintre sniffer-urile active în 2016. Probabil, acest domeniu a fost folosit anterior de către un atacator pentru a colecta cărți furate folosind un sniffer. Acest domeniu a fost înregistrat la o adresă de e-mail [e-mail protejat], care a fost folosit și pentru înregistrarea domeniilor cardz.su и cardz.vc, legat de magazinul de carduri Cardsurfs.
Pe baza datelor obținute, se poate presupune că familia de sniffer G-Analytics și magazinul subteran care vinde carduri bancare Cardsurfs sunt administrate de aceleași persoane, iar magazinul este folosit pentru a vinde carduri bancare furate cu ajutorul sniffer-ului.
Infrastructură
Numele de domeniu | Data descoperirii/apariției |
---|---|
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 |
analitic.la | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analitic.este | 28.12.2018 |
google-analytics.cm | 17.01.2019 |
Familia Illum
Illum este o familie de sniffer folosite pentru a ataca magazinele online care rulează CMS Magento. Pe lângă introducerea de cod rău intenționat, operatorii acestui sniffer folosesc și introducerea unor forme de plată false cu drepturi depline care trimit date către porțile controlate de atacatori.
La analiza infrastructurii de rețea folosită de operatorii acestui sniffer, s-a remarcat un număr mare de scripturi rău intenționate, exploit-uri, formulare de plată false, precum și o colecție de exemple cu sniffer-uri rău intenționate de la concurenți. Pe baza informațiilor despre datele de apariție a numelor de domenii utilizate de grup, se poate presupune că campania a început la sfârșitul anului 2016.
Cum este implementat Illum în codul unui magazin online
Primele versiuni ale snifferului descoperite au fost încorporate direct în codul site-ului compromis. Datele furate au fost trimise către cdn.illum[.]pw/records.php, poarta a fost codificată folosind base64.
Mai târziu, a fost descoperită o versiune ambalată a sniffer-ului care folosește o altă poartă - records.nstatistics[.]com/records.php.
În conformitate cu
Analiza site-ului atacatorilor
Specialiștii Group-IB au descoperit și analizat un site web folosit de acest grup infracțional pentru a stoca instrumente și a colecta informații furate.
Printre instrumentele găsite pe serverul atacatorilor au fost scripturi și exploit-uri pentru escaladarea privilegiilor în sistemul de operare Linux: de exemplu, Linux Privilege Escalation Check Script dezvoltat de Mike Czumak, precum și un exploit pentru CVE-2009-1185.
Atacatorii au folosit două exploit-uri direct pentru a ataca magazinele online:
De asemenea, în timpul analizei serverului au fost descoperite diverse mostre de sniffer și formulare de plată false, folosite de atacatori pentru a colecta informații de plată de pe site-uri piratate. După cum puteți vedea din lista de mai jos, unele scripturi au fost create individual pentru fiecare site piratat, în timp ce o soluție universală a fost folosită pentru anumite CMS și gateway-uri de plată. De exemplu, scripturi segapay_standart.js и segapay_onpage.js conceput pentru implementare pe site-uri care utilizează gateway-ul de plată Sage Pay.
Lista de scripturi pentru diverse gateway-uri de plată
Scenariul | Gateway de plată |
---|---|
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//cdn.illum[.]pw/records.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//cdn.illum[.]pw/records.php |
//payrightnow[.]cf/?payment= | |
|
//payrightnow[.]cf/?payment= |
|
//paymentnow[.]tk/?payment= |
Gazdă paymentnow[.]tk, folosit ca poartă într-un script payment_forminsite.js, a fost descoperit ca subiectAltName în mai multe certificate legate de serviciul CloudFlare. În plus, gazda conținea un scenariu evil.js. Judecând după numele scriptului, acesta ar putea fi folosit ca parte a exploatării CVE-2016-4010, datorită căruia este posibil să se injecteze cod rău intenționat în subsolul unui site care rulează Magento CMS. Gazda a folosit acest script ca o poartă cerere.requestnet[.]tkfolosind același certificat ca și gazda paymentnow[.]tk.
Forme de plată false
Figura de mai jos prezintă un exemplu de formular pentru introducerea datelor cardului. Acest formular a fost folosit pentru a se infiltra într-un magazin online și a fura datele cardului.
Următoarea figură prezintă un exemplu de formular de plată PayPal fals, care a fost folosit de atacatori pentru a se infiltra pe site-uri cu această metodă de plată.
Infrastructură
Numele de domeniu | Data descoperirii/apariției |
---|---|
cdn.illum.pw | 27/11/2016 |
records.nstatistics.com | 06/09/2018 |
cerere.plătiți acum.cf | 25/05/2018 |
paymentnow.tk | 16/07/2017 |
linie de plată.tk | 01/03/2018 |
paymentpal.cf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
Cafeaua familia Mokko
Familia de sniffer CoffeMokko, concepută pentru a fura carduri bancare de la utilizatorii magazinelor online, este folosită cel puțin din mai 2017. Se presupune că operatorii acestei familii de sniffer sunt gruparea infracțională Grupa 1, descrisă de specialiștii RiskIQ în 2016. Au fost atacate site-uri care rulează CMS-uri precum Magento, OpenCart, WordPress, osCommerce și Shopify.
Cum este implementat CoffeMokko în codul unui magazin online
Operatorii acestei familii creează sniffer unice pentru fiecare infecție: fișierul sniffer este localizat în director src sau js pe serverul atacatorilor. Încorporarea în codul site-ului se realizează printr-un link direct către sniffer.
Codul sniffer codifică numele câmpurilor de formular din care datele trebuie furate. Sniffer-ul verifică, de asemenea, dacă utilizatorul se află pe pagina de plată, verificând lista de cuvinte cheie cu adresa curentă a utilizatorului.
Unele versiuni descoperite ale sniffer-ului erau ascunse și conțineau un șir criptat în care era stocată principala matrice de resurse: conținea numele câmpurilor de formular pentru diferite sisteme de plată, precum și adresa de poartă la care trebuiau trimise datele furate.
Informațiile de plată furate au fost trimise la un script de pe serverul atacatorilor pe parcurs /savePayment/index.php sau /tr/index.php. Probabil, acest script este folosit pentru a trimite date de la poartă către serverul principal, care consolidează datele de la toate sniffer-urile. Pentru a ascunde datele transmise, toate informațiile de plată ale victimei sunt criptate folosind base64, iar apoi au loc mai multe substituții de caractere:
- caracterul „e” este înlocuit cu „:”
- simbolul „w” este înlocuit cu „+”
- caracterul „o” este înlocuit cu „%”
- caracterul „d” este înlocuit cu „#”
- caracterul „a” este înlocuit cu „-”
- simbolul „7” este înlocuit cu „^”
- caracterul „h” este înlocuit cu „_”
- simbolul „T” este înlocuit cu „@”
- caracterul „0” este înlocuit cu „/”
- caracterul „Y” este înlocuit cu „*”
Ca rezultat al substituirilor de caractere codificate folosind base64 Datele nu pot fi decodificate fără efectuarea conversiei inverse.
Așa arată un fragment de cod sniffer care nu a fost obscurcat:
Analiza infrastructurii
În primele campanii, atacatorii au înregistrat nume de domenii similare cu cele ale site-urilor legitime de cumpărături online. Domeniul lor poate diferi de cel legitim printr-un simbol sau altul TLD. Domeniile înregistrate au fost folosite pentru a stoca codul sniffer, un link către care a fost încorporat în codul magazinului.
Acest grup a folosit și nume de domenii care amintesc de pluginurile jQuery populare (slickjs[.]org pentru site-urile care utilizează pluginul slick.js), gateway-uri de plată (sagecdn[.]org pentru site-urile care utilizează sistemul de plată Sage Pay).
Ulterior, grupul a început să creeze domenii ale căror nume nu aveau nicio legătură cu domeniul magazinului sau cu tema magazinului.
Fiecare domeniu corespundea unui site pe care a fost creat directorul /js sau /src. Scripturile sniffer au fost stocate în acest director: câte un sniffer pentru fiecare nouă infecție. Sniffer-ul a fost încorporat în codul site-ului printr-un link direct, dar în cazuri rare, atacatorii au modificat unul dintre fișierele site-ului și i-au adăugat cod rău intenționat.
Analiza codului
Primul algoritm de ofuscare
În unele mostre descoperite de sniffer-uri din această familie, codul a fost ofucat și conținea date criptate necesare pentru ca sniffer-ul să funcționeze: în special, adresa porții sniffer-ului, o listă de câmpuri ale formularului de plată și, în unele cazuri, codul unui fals. formular de plată. În codul din interiorul funcției, resursele au fost criptate folosind XOR prin cheia care a fost transmisă ca argument la aceeași funcție.
Prin decriptarea șirului cu cheia corespunzătoare, unică pentru fiecare probă, puteți obține un șir care conține toate șirurile din codul sniffer separate printr-un caracter separator.
Al doilea algoritm de ofuscare
În eșantioanele ulterioare de sniffer din această familie, a fost utilizat un mecanism de ofuscare diferit: în acest caz, datele au fost criptate folosind un algoritm auto-scris. Un șir care conține date criptate necesare funcționării sniffer-ului a fost transmis ca argument pentru funcția de decriptare.
Folosind consola browserului, puteți decripta datele criptate și puteți obține o matrice care conține resurse sniffer.
Conexiune la primele atacuri MageCart
În cadrul analizei unuia dintre domeniile utilizate de grup ca poartă de acces pentru colectarea datelor furate, s-a constatat că acest domeniu a găzduit o infrastructură pentru furtul cărților de credit, identică cu cea folosită de Grupul 1, unul dintre primele grupuri,
Au fost găsite două fișiere pe gazda familiei de sniffer CoffeMokko:
- mage.js — fișier care conține codul sniffer Grup 1 cu adresa de poartă js-cdn.link
- mag.php — Script PHP responsabil pentru colectarea datelor furate de sniffer
Conținutul fișierului mage.js
De asemenea, s-a stabilit că cele mai vechi domenii utilizate de grupul din spatele familiei de sniffer CoffeMokko au fost înregistrate pe 17 mai 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Formatul acestor nume de domenii se potrivește cu numele de domeniu din Grupa 1 care au fost utilizate în atacurile din 2016.
Pe baza faptelor descoperite, se poate presupune că există o legătură între operatorii sniffer-urilor CoffeMokko și gruparea criminală Grupa 1. Probabil, operatorii CoffeMokko ar fi putut împrumuta instrumente și software de la predecesorii lor pentru a fura carduri. Cu toate acestea, este mai probabil ca grupul infracțional din spatele utilizării familiei de sniffer CoffeMokko să fie aceleași persoane care au comis atacurile din Grupul 1. În urma publicării primului raport privind activitățile grupului infracțional, toate numele lor de domenii au fost blocate iar instrumentele au fost studiate în detaliu și descrise. Grupul a fost forțat să ia o pauză, să-și perfecționeze instrumentele interne și să rescrie codul sniffer pentru a-și continua atacurile și a rămâne nedetectat.
Infrastructură
Numele de domeniu | Data descoperirii/apariției |
---|---|
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 |
securitate-plata.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 |
childrensplayclothing.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 |
lamoodbighat.net | 08.12.2017 |
walletgear.org | 10.12.2017 |
dahlie.org | 12.12.2017 |
davidsfootwear.org | 20.12.2017 |
blackririveimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parcuri.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
otocap.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 |
Sursa: www.habr.com