Næsten hver enkelt af os bruger onlinebutikkernes tjenester, hvilket betyder, at vi før eller siden risikerer at blive ofre for JavaScript-sniffer - en særlig kode, som angribere injicerer på et websted for at stjæle bankkortdata, adresser, brugernavne og adgangskoder .
Næsten 400 brugere af British Airways hjemmeside og mobilapp er allerede blevet ramt af sniffere, samt besøgende på den britiske sportsgigant FILA hjemmeside og den amerikanske billetdistributør Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - disse og mange andre betalingssystemer er blevet inficeret.
Threat Intelligence Group-IB-analytiker Viktor Okorokov taler om, hvordan sniffere infiltrerer hjemmesidekode og stjæler betalingsoplysninger, samt hvilke CRM'er de angriber.
"Skjult trussel"
Det skete sådan, at JS-sniffere i lang tid forblev ude af syne af antivirusanalytikere, og banker og betalingssystemer så dem ikke som en alvorlig trussel. Og helt forgæves. Group-IB Eksperter
Lad os dvæle i detaljer ved de fire familier af sniffere, der blev undersøgt i løbet af undersøgelsen.
ReactGet familie
Sniffere fra ReactGet-familien bruges til at stjæle bankkortdata på online-shoppingsider. Snifferen kan arbejde med et stort antal forskellige betalingssystemer, der bruges på webstedet: en parameterværdi svarer til et betalingssystem, og individuelle detekterede versioner af snifferen kan bruges til at stjæle legitimationsoplysninger samt til at stjæle bankkortdata fra betalingsformer af flere betalingssystemer på én gang, som den såkaldte universal sniffer. Det blev konstateret, at angribere i nogle tilfælde udfører phishing-angreb på onlinebutiksadministratorer for at få adgang til webstedets administrative panel.
Kampagnen med denne familie af sniffere begyndte i maj 2017. Websteder, der kører CMS og platforme Magento, Bigcommerce, Shopify blev angrebet.
Hvordan ReactGet er indlejret i koden for en online butik
Ud over den "klassiske" script-injektion via link, bruger ReactGet-familiens sniffer-operatører en speciel teknik: ved hjælp af JavaScript-kode tjekker den, om den aktuelle adresse, hvor brugeren befinder sig, opfylder visse kriterier. Den ondsindede kode vil kun køre, hvis den aktuelle URL indeholder en understreng gå til kassen eller et trins udtjekning, én side/, ud/onepag, kasse/en, ckout/en. Således vil snifferkoden blive eksekveret præcis i det øjeblik, hvor brugeren fortsætter med at betale for køb og indtaster betalingsoplysninger i formularen på siden.
Denne sniffer bruger en ikke-standard teknik. Offerets betalings- og personlige data indsamles sammen, kodet vha base64, og derefter bruges den resulterende streng som en parameter til at sende en anmodning til det ondsindede websted. Oftest efterligner stien til porten f.eks. en JavaScript-fil hhv.js, data.js og så videre, men links til billedfiler bruges også, GIF и JPG. Det særegne er, at snifferen opretter et billedobjekt med en størrelse på 1 gange 1 pixel og bruger det tidligere opnåede link som en parameter src Billeder. Det vil sige, at for brugeren vil en sådan anmodning i trafikken ligne en anmodning om et almindeligt billede. En lignende teknik blev brugt i ImageID-familien af sniffere. Derudover bruges 1x1 pixel billedteknikken i mange legitime online analysescripts, som også kan vildlede brugeren.
Versionsanalyse
En analyse af de aktive domæner brugt af ReactGet sniffer operatører afslørede mange forskellige versioner af denne familie af sniffere. Versioner adskiller sig i tilstedeværelsen eller fraværet af sløring, og desuden er hver sniffer designet til et specifikt betalingssystem, der behandler bankkortbetalinger til netbutikker. Efter at have sorteret værdien af parameteren, der svarer til versionsnummeret, modtog Group-IB-specialister en komplet liste over tilgængelige sniffervarianter, og ved hjælp af navnene på formularfelterne, som hver sniffer kigger efter i sidekoden, bestemte de betalingssystemerne at snifferen retter sig mod.
Liste over sniffere og deres tilsvarende betalingssystemer
Sniffer URL | Betalingssystem |
---|---|
|
Authorize.Net |
Cardsave | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Hurtig |
Authorize.Net | |
Adyen | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
Moneris | |
USAePay | |
PayPal | |
Sage Pay | |
Verisign | |
PayPal | |
Stribe | |
|
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 | |
Cyberkilde | |
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 | |
Cyberkilde | |
|
Authorize.Net |
|
Sage Pay |
REALEX | |
|
Cyberkilde |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Hurtig |
|
Sage Pay |
Sage Pay | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
Første globale datagateway |
Authorize.Net | |
Authorize.Net | |
Moneris | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Stribe | |
|
Authorize.Net |
eWAY Hurtig | |
|
Sage Pay |
Authorize.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
Sage Pay |
|
Sage Pay |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Stribe |
|
Authorize.Net |
eWAY Hurtig | |
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 |
|
Stribe |
|
Første globale datagateway |
|
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 |
Cyberkilde | |
PayPal PayflowPro | |
|
Authorize.Net |
|
Authorize.Net |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Sage Pay | |
Authorize.Net | |
|
Stribe |
|
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 |
|
Stribe |
|
Fed Zebra |
Sage Pay | |
|
Authorize.Net |
Første globale datagateway | |
|
Authorize.Net |
|
eWAY Hurtig |
Adyen | |
|
PayPal |
QuickBooks Merchant Services | |
Verisign | |
|
Sage Pay |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Sage Pay | |
|
Authorize.Net |
|
eWAY Hurtig |
Authorize.Net | |
|
ANZ eGate |
|
PayPal |
Cyberkilde | |
|
Authorize.Net |
Sage Pay | |
|
REALEX |
Cyberkilde | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Hurtig | |
|
Sage Pay |
|
Sage Pay |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
Første globale datagateway |
Authorize.Net | |
Authorize.Net | |
|
Moneris |
|
Authorize.Net |
|
PayPal |
Adgangskode sniffer
En af fordelene ved JavaScript-sniffere, der fungerer på klientsiden af et websted, er dets alsidighed: ondsindet kode, der er indlejret på et websted, kan stjæle enhver form for data, det være sig betalingsoplysninger eller et login og adgangskode fra en brugerkonto. Group-IB-specialister opdagede et eksempel på en sniffer, der tilhører ReactGet-familien, designet til at stjæle e-mail-adresser og adgangskoder til webstedsbrugere.
Skæring med ImageID sniffer
Under analysen af en af de inficerede butikker blev det konstateret, at dens hjemmeside var inficeret to gange: Ud over den ondsindede kode fra ReactGet-familiens sniffer blev koden til ImageID-familiesnifferen fundet. Dette overlap kunne være bevis på, at operatørerne bag begge sniffere bruger lignende teknikker til at injicere ondsindet kode.
Universal sniffer
Under analysen af et af domænenavnene relateret til ReactGet sniffer-infrastrukturen, blev det konstateret, at den samme bruger registrerede tre andre domænenavne. Disse tre domæner efterlignede domænerne på virkelige websteder og blev tidligere brugt til at hoste sniffere. Ved analyse af koden på tre legitime websteder blev der fundet en ukendt sniffer, og yderligere analyse viste, at dette er en forbedret version af ReactGet snifferen. Alle tidligere sporede versioner af denne familie af sniffere var målrettet mod et enkelt betalingssystem, det vil sige, at en speciel version af snifferen var påkrævet for hvert betalingssystem. Men i dette tilfælde blev der opdaget en universel version af snifferen, der var i stand til at stjæle information fra formularer relateret til 15 forskellige betalingssystemer og moduler af e-handelssider til onlinebetalinger.
Så i begyndelsen af arbejdet søgte snifferen efter grundlæggende formularfelter, der indeholdt ofrets personlige oplysninger: fulde navn, fysisk adresse, telefonnummer.
Snifferen søgte derefter over 15 forskellige præfikser svarende til forskellige betalingssystemer og moduler til online betalinger.
Dernæst blev ofrets personlige data og betalingsoplysninger samlet og sendt til et websted kontrolleret af angriberen: i dette særlige tilfælde blev to versioner af ReactGet universal sniffer fundet placeret på to forskellige hackede websteder. Begge versioner sendte dog de stjålne data til det samme hackede websted. zoobashop.com.
En analyse af de præfikser, som snifferen brugte til at finde felter, der indeholdt offerets betalingsoplysninger, viste, at denne sniffer-prøve var målrettet mod følgende betalingssystemer:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stribe
- PayPal
- ANZ eGate
- Braintree
- Datakontanter (MasterCard)
- Realex Betalinger
- PsiGate
- Heartland Payment Systems
Hvilke værktøjer bruges til at stjæle betalingsoplysninger
Det første værktøj, der blev opdaget under analysen af angribernes infrastruktur, tjener til at sløre ondsindede scripts, der er ansvarlige for at stjæle bankkort. Et bash-script ved hjælp af projektets CLI blev fundet på en af angribernes værter.
Det andet opdagede værktøj er designet til at generere koden, der er ansvarlig for at indlæse hovedsnifferen. Dette værktøj genererer en JavaScript-kode, der kontrollerer, om brugeren er på betalingssiden, ved at søge efter strengene på brugerens aktuelle adresse gå til kassen, vogn og så videre, og hvis resultatet er positivt, så indlæser koden hovedsnifferen fra den ubudne gæsters server. For at skjule ondsindet aktivitet er alle linjer, inklusive testlinjer til bestemmelse af betalingssiden, samt et link til snifferen, kodet vha. base64.
Phishing-angreb
Under analysen af angribernes netværksinfrastruktur blev det konstateret, at den kriminelle gruppe ofte bruger phishing for at få adgang til det administrative panel i mål-onlinebutikken. Angriberne registrerer et domæne, der ligner et butiksdomæne, og implementerer derefter en falsk Magento-administratorloginformular på det. Hvis det lykkes, vil angriberne få adgang til Magento CMS-administrationspanelet, som giver dem mulighed for at redigere webstedskomponenter og implementere en sniffer til at stjæle kreditkortdata.
Infrastruktur
Domænenavn | Dato for opdagelse/fremkomst |
---|---|
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 |
tagtracking.com | 25.06.2018 |
adsapigate.com | 12.07.2018 |
trusttracker.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 |
G-Analytics familie
Denne familie af sniffere bruges til at stjæle kundekort fra onlinebutikker. Det allerførste domænenavn, som gruppen brugte, blev registreret i april 2016, hvilket kan indikere begyndelsen på gruppens aktivitet i midten af 2016.
I den nuværende kampagne bruger gruppen domænenavne, der efterligner virkelige tjenester såsom Google Analytics og jQuery, og maskerer sniffer-aktivitet med legitime scripts og domænenavne, der ser legitimt ud. Hjemmesider, der kører under CMS Magento, blev angrebet.
Hvordan G-Analytics implementeres i online butikskoden
Et karakteristisk træk ved denne familie er brugen af forskellige metoder til at stjæle brugerbetalingsoplysninger. Ud over den klassiske JavaScript-indsprøjtning i klientsiden af webstedet, brugte den kriminelle gruppe også teknikken med at indsprøjte kode i serversiden af webstedet, nemlig PHP-scripts, der behandler brugerinput. Denne teknik er farlig, fordi den gør det vanskeligt for tredjepartsforskere at opdage skadelig kode. Group-IB-specialister opdagede en version af snifferen indlejret i webstedets PHP-kode ved at bruge domænet som en gate dittm.org.
En tidlig version af en sniffer blev også opdaget, der bruger det samme domæne til at indsamle stjålne data. dittm.org, men denne version er allerede beregnet til installation på klientsiden af netbutikken.
Senere ændrede gruppen sin taktik og begyndte at være mere opmærksom på at skjule ondsindet aktivitet og camouflage.
I begyndelsen af 2017 begyndte gruppen at bruge domænet jquery-js.commaskering som CDN for jQuery: omdirigerer brugeren til et legitimt websted, når han går til et ondsindet websted jquery.com.
Og i midten af 2018 adopterede gruppen et domænenavn g-analytics.com og begyndte at skjule snifferens aktivitet som en legitim Google Analytics-tjeneste.
Versionsanalyse
Under analysen af de domæner, der blev brugt til at gemme snifferkoden, blev det konstateret, at webstedet har et stort antal versioner, der adskiller sig ved tilstedeværelsen af sløring, såvel som tilstedeværelsen eller fraværet af uopnåelig kode tilføjet til filen for at distrahere opmærksomheden og skjul ondsindet kode.
I alt på siden jquery-js.com seks versioner af sniffere blev identificeret. Disse sniffere sender de stjålne data til en adresse, der er placeret på samme sted som snifferen selv: 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
Senere domæne g-analytics.com, brugt af gruppen i angreb siden midten af 2018, fungerer som et opbevaringssted for flere sniffere. I alt blev 16 forskellige versioner af snifferen opdaget. I dette tilfælde var porten til at sende de stjålne data forklædt som et link til et billede af formatet 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
Indtægtsgenerering af stjålne data
Den kriminelle gruppe tjener penge på de stjålne data ved at sælge kort gennem en specielt oprettet underjordisk butik, der leverer tjenester til kortere. En analyse af de domæner, som angriberne brugte, gjorde det muligt at fastslå det google-analytics.cm blev registreret af samme bruger som domænet cardz.vc. Domæne cardz.vc refererer til Cardsurfs (Flysurfs), en butik, der sælger stjålne bankkort, som vandt popularitet under AlphaBays underjordiske markedsplads som en butik, der sælger bankkort stjålet ved hjælp af en sniffer.
Analyse af domænet analytisk.is, placeret på den samme server som domænerne brugt af sniffere til at indsamle stjålne data, opdagede Group-IB-specialister en fil, der indeholdt Cookie-tyver-logfiler, som det ser ud til, senere blev forladt af udvikleren. En af posterne i loggen indeholdt et domæne iozoz.com, som tidligere blev brugt i en af de sniffere, der var aktive i 2016. Formentlig blev dette domæne tidligere brugt af en angriber til at indsamle kort stjålet ved hjælp af en sniffer. Dette domæne blev registreret til en e-mailadresse [e-mail beskyttet], som også blev brugt til at registrere domæner cardz.su и cardz.vcrelateret til Cardsurfs carding shop.
På baggrund af de indhentede data kan det antages, at G-Analytics snifferfamilien og den underjordiske Cardsurfs bankkortbutik drives af de samme personer, og butikken bruges til at sælge bankkort stjålet ved hjælp af en sniffer.
Infrastruktur
Domænenavn | Dato for opdagelse/fremkomst |
---|---|
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 |
analytisk.til | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analytisk.is | 28.12.2018 |
googlelc-analytics.cm | 17.01.2019 |
Familien Illum
Illum er en familie af sniffere, der bruges til at angribe onlinebutikker, der kører Magento CMS. Ud over indførelsen af ondsindet kode bruger operatørerne af denne sniffer også indførelsen af fuldgyldige falske betalingsformularer, der sender data til porte, der kontrolleres af angribere.
Ved analyse af netværksinfrastrukturen, der blev brugt af operatørerne af denne sniffer, blev der noteret et stort antal ondsindede scripts, udnyttelser, falske betalingsformularer samt en samling af eksempler med ondsindede sniffer-konkurrenter. Baseret på oplysningerne om datoen for fremkomsten af de domænenavne, som gruppen bruger, kan det antages, at starten af kampagnen falder i slutningen af 2016.
Hvordan Illum implementeres i koden til en netbutik
De første opdagede versioner af snifferen blev indlejret direkte i koden på det kompromitterede websted. De stjålne data blev sendt til cdn.illum[.]pw/records.php, blev porten kodet vha base64.
Senere blev en pakket version af snifferen opdaget ved hjælp af en anden gate - records.nstatistics[.]com/records.php.
Ifølge
Analyse af angrebssted
Group-IB-specialister opdagede og analyserede webstedet, der blev brugt af denne kriminelle gruppe til at opbevare værktøjer og indsamle stjålne oplysninger.
Blandt de værktøjer, der blev fundet på angriberens server, blev der fundet scripts og udnyttelser til privilegieeskalering i Linux OS: for eksempel Linux Privilege Escalation Check Script, udviklet af Mike Czumak, samt en udnyttelse til CVE-2009-1185.
Angribere brugte to udnyttelser direkte til at angribe onlinebutikker:
Under analysen af serveren blev der også fundet forskellige prøver af sniffere og falske betalingsformer, brugt af angribere til at indsamle betalingsoplysninger fra hackede websteder. Som du kan se på listen nedenfor, blev nogle scripts oprettet individuelt for hvert hacket websted, mens en universel løsning blev brugt til visse CMS og betalingsgateways. For eksempel scripts segapay_standard.js и segapay_onpage.js designet til at blive indlejret på websteder ved hjælp af Sage Pay betalingsgateway.
Liste over scripts til forskellige betalingsgateways
Manuskript | Payment Gateway |
---|---|
|
//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= |
Vært betaling nu[.]tk, brugt som port i et manuskript payment_forminsite.js, blev opdaget som emneAltName i flere certifikater relateret til CloudFlare-tjenesten. Derudover var manuskriptet placeret på værten evil.js. At dømme efter navnet på scriptet kunne det have været brugt som en del af udnyttelsen af CVE-2016-4010, takket være hvilket det er muligt at injicere ondsindet kode i sidefoden på et websted, der kører Magento CMS. Dette script brugte værten som en gate request.requestnet[.]tk, ved hjælp af det samme certifikat som værten betaling nu[.]tk.
Falske betalingsformularer
Nedenstående figur viser et eksempel på en formular til indtastning af kortdata. Denne formular blev brugt til at infiltrere en onlinebutiks hjemmeside og stjæle kortdata.
Følgende figur er et eksempel på en falsk PayPal-betalingsform, der blev brugt af angribere til at infiltrere websteder ved hjælp af denne betalingsmetode.
Infrastruktur
Domænenavn | Dato for opdagelse/fremkomst |
---|---|
cdn.illum.pw | 27/11/2016 |
records.nstatistics.com | 06/09/2018 |
request.payrightnow.jf | 25/05/2018 |
paymentnow.tk | 16/07/2017 |
betalingslinje.tk | 01/03/2018 |
paymentpal.jf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
CoffeeMokko familie
CoffeMokko-familien af sniffere designet til at stjæle bankkort fra netbutikbrugere er blevet brugt siden mindst maj 2017. Formentlig er den gruppe 1 kriminelle gruppe beskrevet af RiskIQ-eksperter i 2016 operatøren af denne familie af sniffere. Websteder, der kører CMS som Magento, OpenCart, WordPress, osCommerce, Shopify blev angrebet.
Hvordan CoffeMokko er indlejret i koden for en online butik
Operatører af denne familie opretter unikke sniffere for hver infektion: sniffer-filen er placeret i mappen src eller js på angriberens server. Implementering i webstedskoden udføres ved et direkte link til snifferen.
Sniffer-koden hardkoder navnene på de formularfelter, hvorfra du vil stjæle data. Snifferen tjekker også, om brugeren er på betalingssiden, ved at kontrollere listen over søgeord i forhold til brugerens aktuelle adresse.
Nogle opdagede versioner af snifferen blev sløret og indeholdt en krypteret streng, der lagrede hovedarrangementet af ressourcer: den indeholdt navnene på formularfelter til forskellige betalingssystemer samt adressen på porten, hvortil de stjålne data skulle sendes.
De stjålne betalingsoplysninger blev sendt til et script på angriberens server undervejs. /savePayment/index.php eller /tr/index.php. Formentlig bruges dette script til at sende data fra porten til hovedserveren, som konsoliderer data fra alle sniffere. For at skjule de overførte data, kodes alle betalingsoplysninger om offeret vha base64, og så sker der flere tegnudskiftninger:
- tegnet "e" erstattes af ":"
- symbolet "w" erstattes af "+"
- tegnet "o" erstattes af "%"
- tegnet "d" erstattes af "#"
- tegnet "a" erstattes af "-"
- symbolet "7" erstattes af "^"
- tegnet "h" erstattes af "_"
- "T"-symbolet erstattes med "@"
- tegnet "0" erstattes af "/"
- tegnet "Y" erstattes af "*"
Som et resultat af tegnsubstitutioner kodet med base64 data kan ikke afkodes uden omvendt transformation.
Sådan ser et fragment af snifferkoden ud, der ikke er blevet sløret:
Infrastrukturanalyse
I de tidlige kampagner registrerede angriberne domænenavne, der ligner dem på lovlige online-shoppingsider. Deres domæne kan adskille sig fra det legitime et efter et tegn eller et andet TLD. Registrerede domæner blev brugt til at gemme snifferkoden, hvortil linket var indlejret i butikskoden.
Denne gruppe brugte også domænenavne, der minder om populære jQuery-plugins (slickjs[.]org for websteder, der bruger pluginnet slick.js), betalingsgateways (sagecdn[.]org for websteder, der bruger betalingssystemet Sage Pay).
Senere begyndte gruppen at skabe domæner, hvis navn ikke havde noget at gøre med hverken butikkens domæne eller butikkens tema.
Hvert domæne svarede til det websted, hvor biblioteket blev oprettet /js eller / src. Sniffer-scripts blev gemt i denne mappe: en sniffer for hver ny infektion. Snifferen blev introduceret i webstedskoden via et direkte link, men i sjældne tilfælde ændrede angribere en af webstedets filer og tilføjede ondsindet kode til den.
Kode analyse
Første obfuskationsalgoritme
I nogle sniffer-eksempler af denne familie var koden sløret og indeholdt krypterede data, der er nødvendige for, at snifferen kan fungere: Især snifferens gateadresse, en liste over betalingsformularfelter og i nogle tilfælde en falsk betalingsformularkode. I koden inde i funktionen var ressourcerne krypteret med XOR med nøglen, der blev sendt som et argument til den samme funktion.
Ved at dekryptere strengen med den tilsvarende nøgle, unik for hver prøve, kan du få en streng, der indeholder alle linjerne fra snifferkoden adskilt af et skilletegn.
Anden sløringsalgoritme
I senere prøver af denne familie af sniffere blev der brugt en anden sløringsmekanisme: i dette tilfælde blev dataene krypteret ved hjælp af en selvskrevet algoritme. En streng, der indeholder krypterede data, der kræves for at snifferen kan fungere, blev sendt som et argument til dekrypteringsfunktionen.
Ved hjælp af browserkonsollen kan du dekryptere de krypterede data og få et array, der indeholder sniffer-ressourcerne.
Link til tidlige MageCart-angreb
I en analyse af et af de domæner, der blev brugt af gruppen som en gate til at indsamle stjålne data, blev det fundet, at infrastrukturen til at stjæle kreditkort blev installeret på dette domæne, identisk med den, der blev brugt af gruppe 1, en af de første grupper,
To filer blev fundet på værten for CoffeMokko sniffer-familien:
- mage.js — fil indeholdende gruppe 1 sniffer kode med gate adresse js-cdn.link
- mag.php - PHP script ansvarlig for indsamling af data stjålet af snifferen
Indholdet af filen mage.js
Det er også blevet fastslået, at de tidligste domæner brugt af gruppen bag CoffeMokko sniffer-familien blev registreret den 17. maj 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Formatet på disse domænenavne er det samme som gruppe 1-domænenavnene, der blev brugt i 2016-angrebene.
Ud fra de opdagede fakta kan det antages, at der er en sammenhæng mellem CoffeMokko snifferoperatørerne og den kriminelle gruppe Gruppe 1. Formodentlig kan CoffeMokko-operatører have lånt værktøjer og software til at stjæle kort fra deres forgængere. Det er dog mere sandsynligt, at den kriminelle gruppe bag brugen af CoffeMokko familiesniffere er de samme personer, som udførte angrebene som en del af Gruppe 1-aktiviteter. Efter offentliggørelsen af den første rapport om den kriminelle gruppes aktiviteter er alle deres domænenavne blev blokeret, og værktøjerne blev studeret i detaljer og beskrevet. Gruppen blev tvunget til at tage en pause, finjustere deres interne værktøjer og omskrive snifferkoden for at fortsætte deres angreb og forblive ubemærket.
Infrastruktur
Domænenavn | Dato for opdagelse/fremkomst |
---|---|
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 |
børnelegetøj.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 |
blackriverimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parks.su | 09.01.2018 |
pmtonline.com | 12.01.2018 |
otocap.org | 15.01.2018 |
christohperward.org | 27.01.2018 |
coffeetea.org | 31.01.2018 |
energycoffe.org | 31.01.2018 |
energytea.org | 31.01.2018 |
teaffe.net | 31.01.2018 |
adaptivecss.org | 01.03.2018 |
kaffemokko.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 |
verywellfitness.com | 15.09.2018 |
elegrina.com | 18.11.2018 |
majsurplus.com | 19.11.2018 |
top5value.com | 19.11.2018 |
Kilde: www.habr.com