
NĂ€stan alla av oss anvĂ€nder tjĂ€nster frĂ„n nĂ€tbutiker, vilket innebĂ€r att vi ŃĐ°ĐœĐŸ eller sent riskerar att bli offer för JavaScript-sniffare â speciell kod som bedragare integrerar pĂ„ en webbplats för att stjĂ€la kreditkortsuppgifter, adresser, anvĂ€ndarnamn och lösenord frĂ„n anvĂ€ndare.
NÀstan 400 000 anvÀndare av British Airways webbplats och mobilapplikation har drabbats av sniffare, liksom besökare pÄ den brittiska sportjÀtten FILA:s webbplats och den amerikanska biljettÄterförsÀljaren Ticketmaster. BetaltjÀnster som PayPal, Chase Paymenttech, USAePay och Moneris har ocksÄ blivit drabbade.
Analytikern för Threat Intelligence Group-IB, Viktor Okorokov, berÀttar om hur sniffare integreras i webbplatsens kod och stjÀl betalningsinformation samt vilka CRM-system de attackerar.

âDold hotâ
Det visade sig att JS-sniffare lĂ€nge förblev utanför antivirusanalytikernas radar, och banker och betalningssystem sĂ„g dem som en minimal hot. Och helt i onödan. Experter frĂ„n Group-IB 2440 infekterade nĂ€tbutiker vars besökare â totalt cirka 1,5 miljoner personer per dag â utsattes för risk för kompromettering. De drabbade Ă€r inte bara anvĂ€ndare utan ocksĂ„ nĂ€tbutiker, betalningssystem och banker som utfĂ€rdat komprometterade kort.
Group-IB blev den första att undersöka darknet-marknaden för sniffare, deras infrastruktur och sÀtt att monetisera, vilket ger deras skapare miljoner dollar. Vi identifierade 38 sniffarfamiljer, varav endast 12 tidigare varit kÀnda för forskare.
LÄt oss titta noga pÄ fyra sniffarfamiljer som studerades under forskningen.
Familjen ReactGet
Sniffers i ReactGet-familjen anvÀnds för att stjÀla kreditkortsinformation pÄ onlinebutikernas webbplatser. Sniffers kan hantera ett stort antal olika betalningssystem som anvÀnds pÄ sidan: ett parametervÀrde motsvarar ett betalningssystem, och specifika identifierade versioner av sniffers kan anvÀndas för att stjÀla inloggningsuppgifter samt kreditkortsinformation frÄn betalningsformulÀr frÄn flera betalningssystem, som en sÄ kallad universell sniffer. Det har faststÀllts att angripare ibland genomför phishing-attacker mot administratörer för onlinebutiker för att fÄ tillgÄng till den administrativa panelen pÄ webbplatsen.
Kampanjen med detta snifferfamilj började i maj 2017, och angripna var webbplatser som drivs av CMS och plattformar som Magento, Bigcommerce, Shopify.
Hur ReactGet infiltreras i koden för onlinebutiken
Förutom den "klassiska" metoden att infoga skript via lÀnk, anvÀnder operatörer av ReactGet-sniffers en speciell teknik: med hjÀlp av JavaScript-kod kontrollerar de om den aktuella adressen dÀr anvÀndaren befinner sig uppfyller vissa kriterier. Den skadliga koden körs endast om den aktuella URL-adressen har en viss delstrÀng checkout eller onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. PÄ sÄ sÀtt körs snifferkoden precis nÀr anvÀndaren gÄr vidare till betalning och anger betalningsinformation i formulÀret pÄ webbplatsen.

Denna sniffer anvÀnder en icke-standardteknik. Offrets betal- och personuppgifter samlas in tillsammans och kodas med hjÀlp av base64, och den resulterande strÀngen anvÀnds som parameter för att skicka en begÀran till angriparnas webbplats. Oftast imiterar vÀgen till gaten en JavaScript-fil, till exempel resp.js, data.js och sÄ vidare, men Àven lÀnkade till bildfiler, GIF och JPG. Egenskapen Àr att sniffern skapar ett bildobjekt som Àr 1 pÄ 1 pixel och anvÀnder den tidigare erhÄllna lÀnken som parameter. src bilder. Detta innebÀr att en sÄdan begÀran i trafiken för anvÀndaren kommer att se ut som en begÀran om en vanlig bild. En liknande teknik har anvÀnds i snifferfamiljen ImageID. Dessutom anvÀnds tekniken med en bildstorlek pÄ 1 pÄ 1 pixel i mÄnga legitima online-analytiska skript, vilket ocksÄ kan vilseleda anvÀndaren.

Versionsanalys
Analysen av aktiva domÀner som anvÀnds av operatörerna för ReactGet-sniffers har avslöjat mÄnga olika versioner av denna snifferfamilj. Versionerna skiljer sig Ät i frÄga om obfuskering, och dessutom Àr varje sniffer avsedd för ett specifikt betalningssystem som hanterar betalningar med bankkort för onlinebutiker. Genom att pröva parametrarna som motsvarar versionsnumret lyckades Group-IB specialister fÄ fram en fullstÀndig lista över tillgÀngliga sniffervariationer, och genom namnen pÄ formulÀrfÀlten som varje sniffer letar efter i sidans kod bestÀmde de vilka betalningssystem sniffern riktar sig mot.
Lista över sniffers och deras motsvarande betalningssystem
| Sniffer-URL | Betalningssystem |
|---|---|
| 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 |
Lösenordssniffer
En av fördelarna med JavaScript-sniffers som körs pÄ klientsidan av webbplatsen Àr mÄngsidigheten: den inbÀddade skadliga koden kan stjÀla data av alla typer, oavsett om det Àr betalningsinformation eller inloggningsuppgifter för anvÀndarkonton. Group-IB-specialister har upptÀckt ett exempel pÄ en sniffer som tillhör ReactGet-familjen, avsedd för att stjÀla e-postadresser och lösenord frÄn webbplatsens anvÀndare.

ĂverensstĂ€mmelse med sniffern ImageID
Vid analys av en av de infekterade butikerna var det möjligt att faststÀlla att deras webbplats hade infekterats tvÄ gÄnger: förutom den skadliga koden frÄn ReactGet-snifferfamiljen hade koden frÄn ImageID-sniffern avslöjats. Denna överensstÀmmelse kan vara ett tecken pÄ att operatörerna bakom anvÀndningen av bÄda sniffers tillÀmpar liknande tekniker för att införa skadlig kod.

Universell sniffer
Vid analysen av ett av domÀnnamnen kopplade till infrastrukturen för sniffera ReactGet faststÀlldes det att samma anvÀndare registrerade tre andra domÀnnamn. Dessa tre domÀner imiterade domÀner frÄn verkligt existerande webbplatser och anvÀndes tidigare för att hosta sniffera. Vid analys av koden för de tre legitima webbplatserna upptÀcktes en okÀnd sniffer, och vidare analys visade att detta var en avancerad version av sniffern ReactGet. Alla tidigare spÄrade versioner av sniffera frÄn denna familj var riktade mot ett specifikt betalningssystem, vilket innebar att varje betalningssystem krÀvde en speciell version av sniffern. I det hÀr fallet upptÀcktes dock en universell version av sniffern som kunde stjÀla information frÄn formulÀr kopplade till 15 olika betalningssystem och moduler pÄ e-handelswebbplatser för att utföra onlinebetalningar.
SÄ, i början av arbetet sökte sniffern efter grundlÀggande formulÀrfÀlt som innehöll offerets personliga information: fullstÀndigt namn, fysisk adress, telefonnummer.

DÀrefter sökte sniffern efter mer Àn 15 olika prefix, som överensstÀmde med olika betalningssystem och moduler för onlinebetalningar.

DÀrefter samlades offerets personuppgifter och betalningsinformation ihop och skickades till en webbplats kontrollerad av angriparen: i det hÀr specifika fallet upptÀcktes tvÄ versioner av den universella sniffern ReactGet, som var belÀgna pÄ tvÄ olika hackade webbplatser. Men bÄda versionerna skickade de stulna uppgifterna till samma hackade webbplats. zoobashop.com.

Analysen av de prefix som anvÀndes av sniffern för att leta efter fÀlt som innehöll offrets betalningsinformation visade att detta snifferexemplar var riktat mot följande betalningssystem:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- DataCash (MasterCard)
- Realex Payments
- PsiGate
- Heartland Payment Systems
Vilka verktyg anvÀnds för att stjÀla betalningsinformation
Det första verktyget som upptÀcktes vid analysen av angriparnas infrastruktur anvÀnds för att obfusquera skadliga skript som ansvarar för stöld av kreditkort. PÄ en av angriparnas servrar upptÀcktes ett bash-skript som anvÀnder CLI-projektet för att automatisera obfuskeringsprocessen av sniffernas kod.
![]()
Det andra identifierade verktyget Àr avsett för att generera koden som ansvarar för att ladda huvudsniffaren. Detta verktyg genererar JavaScript-kod som kontrollerar om anvÀndaren befinner sig pÄ betalningssidan genom att leta efter en strÀng i anvÀndarens aktuella adress checkout, vagn och sÄ vidare, och om resultatet Àr positivt laddar koden ner huvudsniffaren frÄn angriparens server. För att dölja den skadliga aktiviteten Àr alla strÀngar, inklusive teststrÀngar för att identifiera betalningssidan, samt lÀnken till sniffaren, kodade med hjÀlp av base64.

Phishing-attacker
Vid analysen av angriparnas nÀtverksinfrastruktur har det faststÀllts att gruppen ofta anvÀnder phishing för att fÄ Ätkomst till administratörspanelen för den mÄlinriktade webbshoppen. Angriparna registrerar en domÀn som visuellt liknar butikens domÀn och lanserar sedan ett falskt inloggningsformulÀr för Magento administratörspanelen. Om de lyckas fÄr angriparna tillgÄng till CMS Magentos administratörspanel, vilket ger dem möjlighet att redigera webbplatsens komponenter och införa en sniffare för att stjÀla kreditkortsuppgifter.

Infrastruktur
| DomÀn | Datum för upptÀckte\/framtrÀdande |
|---|---|
| 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-familjen
Detta snifferfamilj anvÀnds för att stjÀla kunders kortuppgifter frÄn webbshoppar. Det första domÀnnamn som anvÀndes av gruppen registrerades i april 2016, vilket kan indikera att gruppens verksamhet började omkring mitten av 2016.
I den aktuella kampanjen anvÀnder gruppen domÀnnamn som imiterar verkliga tjÀnster, sÄsom Google Analytics och jQuery, för att dölja snifferaktivitet med legitima skript och domÀnnamn som liknar legitima. Webbplatser som drivs av CMS Magento har blivit drabbade av attacken.
Hur G-Analytics integreras i koden för webbshoppen
KÀnnetecknet för denna familj Àr anvÀndningen av olika metoder för att stjÀla anvÀndarnas betalningsinformation. Förutom den klassiska metoden att infoga JavaScript-kod i klientdelen av webbplatsen, anvÀnde brottsgruppen Àven tekniken att infoga kod i serverdelen av webbplatsen, det vill sÀga PHP-skript som bearbetar anvÀndardata. Denna teknik Àr farlig eftersom den försvÄrar upptÀckten av skadlig kod av externa forskare. Specialister frÄn Group-IB upptÀckte en version av sniffaren, inbÀddad i PHP-koden pÄ webbplatsen, som anvÀnder domÀnen dittm.org.

Det upptÀcktes ocksÄ en tidig version av sniffaren som anvÀnder samma domÀn för att samla in stulna data dittm.org, men denna version var avsedd för installation pÄ klientens sida av onlinebutiken.

Senare Àndrade gruppen sin taktik och började fokusera mer pÄ att dölja skadlig aktivitet och maskera.
I början av 2017 började gruppen anvÀnda domÀnen jquery-js.com, som maskerar sig som en CDN för jQuery: nÀr anvÀndaren gÄr till angriparnas webbplats omdirigeras de till en legitim webbplats jquery.com.
Och i mitten av 2018 antog gruppen domÀnnamnet g-analytics.com och började maskera sniffarens aktivitet som en legitim Google Analytics-tjÀnst.


Versionsanalys
Vid analys av domÀner som anvÀnds för att lagra sniffarkod, faststÀlldes det att det finns ett stort antal versioner pÄ webbplatsen, som skiljer sig Ät genom nÀrvaron av obfuskering samt nÀrvaron eller frÄnvaron av otillgÀnglig kod som lagts till i filen för att avleda uppmÀrksamheten och dölja den skadliga koden.
Totalt pÄ webbplatsen jquery-js.com upptÀcktes sex versioner av sniffare. Dessa sniffare skickar de stulna data till en adress belÀgen pÄ samma webbplats som sjÀlva sniffaren: 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
Den senare domĂ€nen g-analytics.com, som gruppen anvĂ€nde i attacker frĂ„n mitten av 2018, fungerar som lagring för fler sniffare. Totalt upptĂ€cktes 16 olika versioner av sniffaren. I detta fall maskerades porten för att skicka de stulna datana som en lĂ€nk till en bild i 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
Monetisering av stulna data
Brottsgruppen monetariserar de stulna data genom att sÀlja kort via en sÀrskilt skapad svartmarknadsbutik som erbjuder tjÀnster till kortbedragare. Analysen av domÀner som anvÀnds av angriparna visade att google-analytics.cm registrerades av samma anvÀndare som domÀnen cardz.vc. DomÀnen cardz.vc hör till butiken för stulna kreditkort Cardsurfs (Flysurfs), som blev populÀr under tiden för den underjordiska handelsplattformen AlphaBay som en butik för försÀljning av kreditkort stulna med hjÀlp av en sniffer.

Genom att analysera domÀnen analytic.is, som ligger pÄ samma server som domÀnerna som anvÀnds av sniffer för att samla stulen data, upptÀckte specialister frÄn Group-IB en fil som innehöll loggar frÄn Cookie-stealer, som tycks ha övergivits av utvecklaren. En av posterna i loggen innehöll domÀnen iozoz.com, som tidigare anvÀndes i en av snifferna aktiva 2016. Denna domÀn anvÀndes troligen tidigare av angriparen för att samla stulna kreditkort med hjÀlp av en sniffer. Denna domÀn registrerades pÄ e-postadressen kts241@gmail.com, som ocksÄ anvÀndes för registrering av domÀner cardz.su och cardz.vc, kopplade till kreditkortsshoppbutiken Cardsurfs.
UtifrÄn de insamlade uppgifterna kan man dra slutsatsen att familjen av sniffers G-Analytics och den underjordiska butiken för försÀljning av kreditkort Cardsurfs hanteras av samma personer, och att butiken anvÀnds för att sÀlja kreditkort stulna med hjÀlp av sniffers.
Infrastruktur
| DomÀn | Datum för upptÀckte\/framtrÀdande |
|---|---|
| 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 |
Familjen Illum
Illum Àr en familj av sniffer som anvÀnds för attacker mot onlinebutiker som körs pÄ CMS Magento. Förutom att infoga skadlig kod anvÀnder operatörerna av denna sniffer ocksÄ fullstÀndiga falska betalningsformulÀr som skickar data till angivna kanaler som kontrolleras av angripare.
Vid analys av nÀtverksinfrastrukturen som anvÀnds av operatörerna av denna sniffer noterades ett stort antal skadliga skript, exploateringar, falska betalningsformulÀr, samt en samling exempel frÄn skadliga sniffers frÄn konkurrenterna. UtifrÄn information om datumen för domÀnnamnens företeelse kan man anta att kampanjstarten Àgde rum i slutet av 2016.
Hur Illum infogas i koden av onlinebutiken
De första upptÀckta versionerna av sniffers infogades direkt i koden av den komprometterade webbplatsen. De stulna uppgifterna skickades till adressen cdn.illum[.]pw/records.php, och ingÄngen kodades med hjÀlp av base64.

Senare upptĂ€cktes en packad version av sniffern som anvĂ€nde en annan gateway â records.nstatistics[.]com/records.php.

Enligt Willem de Groot, samma host anvÀndes i sniffern som införlivades pÄ , tillhörande det tyska politiska partiet CSU.
Analys av brottslingarnas webbplats
Specialister frÄn Group-IB upptÀckte och analyserade webbplatsen som anvÀndes av denna kriminella grupp för att lagra verktyg och samla stulen information.

Bland de verktyg som upptÀcktes pÄ brottslingarnas server fanns skript och exploateringar för att höja privilegier i Linux OS: till exempel Linux Privilege Escalation Check Script, utvecklat av Mike Czumak, samt en exploatering för CVE-2009-1185.
Direkt för attacker mot nÀtbutiker anvÀnde brottslingarna tvÄ exploateringar: kan injicera skadlig kod i core_config_data genom att utnyttja CVE-2016-4010, utnyttjar en RCE-sÄrbarhet i plugins för CMS Magento, vilket tillÄter utförande av godtycklig kod pÄ en sÄrbar webbserver.

Under analysen av servern upptÀcktes ocksÄ olika exempel pÄ sniffer och falska betalningsformulÀr som anvÀndes av brottslingarna för att samla in betalningsinformation frÄn hackade webbplatser. Som det kan noteras frÄn listan nedan skapades vissa skript individuellt för varje hackad webbplats, medan universella lösningar anvÀndes för specifika CMS och betalningsportar. Till exempel skripten segapay_standart.js och segapay_onpage.js Àr avsedda för implementering pÄ webbplatser som anvÀnder betalningsportalen Sage Pay.
Lista över skript för olika betalningsportar
| Skript | Betalningsgateway |
|---|---|
| [.]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= |
VÀrd paymentnow[.]tk, anvÀnd som gateway i skriptet payment_forminsite.js, upptÀcktes som subjectAltName i flera certifikat relaterade till CloudFlare-tjÀnsten. Dessutom fanns det ett skript pÄ vÀrden evil.js. Baserat pÄ skriptets namn kan det ha anvÀnts vid utnyttjande av CVE-2016-4010, vilket möjliggör injektion av skadlig kod i sidfoten pÄ en webbplats som drivs av CMS Magento. Som gateway anvÀnde detta skript vÀrden request.requestnet[.]tk, som anvÀnder samma certifikat som vÀrden paymentnow[.]tk.
Falska betalningsformulÀr
Nedan visas ett exempel pÄ ett formulÀr för att ange kortinformation. Detta formulÀr anvÀndes för att injicera pÄ nÀtbutikens webbplats och stjÀla kortdata.

I nÀsta bild visas ett exempel pÄ en falsk PayPal-betalningsformulÀr som angripare har anvÀnt för att infiltrera webbplatser som anvÀnder denna betalningsmetod.

Infrastruktur
| DomÀn | Datum för upptÀckte\/framtrÀdande |
|---|---|
| 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-familjen
CoffeMokko-familjen av sniffers, avsedd för stöld av anvÀndarnas kreditkort pÄ nÀtbutiker, har varit i anvÀndning Ätminstone sedan maj 2017. Det antas att operatörerna av denna snifferfamilj tillhör den kriminella gruppen Group 1, som beskrivits av RiskIQ:s experter 2016. Angrepp har riktats mot webbplatser styrda av CMS sÄsom Magento, OpenCart, WordPress, osCommerce, Shopify.
Hur CoffeMokko injiceras i koden pÄ onlinebutiken
Operatörer av denna familj skapar unika sniffers för varje infektion: snifferfilen ligger i katalogen src eller js pÄ angriparnas server. Injektionen i webbplatsens kod sker via en direkt lÀnk till sniffers.

I snifferns kod Àr fÀltnamnen hÄrdkodade, frÄn vilka data behöver stjÀlas. Sniffern kontrollerar ocksÄ om anvÀndaren befinner sig pÄ betalningssidan genom att jÀmföra listan med nyckelord mot anvÀndarens aktuella adress.

Vissa upptÀckta versioner av sniffers har varit obfuskerade och innehöll en krypterad strÀng som rymde huvudmatrisen av resurser: just dÀr fanns fÀltnamnen för olika betalningssystem, samt adressen till den gateway som behövde fÄ de stulna uppgifterna.

Den stulna betalningsinformationen skickades till ett skript pÄ angriparnas server via vÀgen /savePayment/index.php ОлО /tr/index.php. Det antas att detta skript anvÀnds för att skicka data frÄn gatewayen till huvudservern, som konsoliderar data frÄn alla sniffers. För att dölja de överförda uppgifterna kodas all betalningsinformation frÄn offret med hjÀlp av base64, och flera tecken byts ut:
- tecknet 'e' byts ut mot ':'
- tecknet 'w' byts ut mot '+'
- tecknet 'o' byts ut mot '%'
- tecknet 'd' byts ut mot '#'
- tecknet 'a' byts ut mot '-'
- tecknet '7' byts ut mot '^'
- tecknet 'h' byts ut mot '_'
- tecknet 'T' byts ut mot '@'
- tecknet '0' byts ut mot '/'
- tecknet 'Y' byts ut mot '*'
Som ett resultat av teckensubstitutionen blir den kodade informationen med hjÀlp av base64 omöjlig att dekoda utan att genomföra en omvÀnd transformation.
SÄ hÀr ser en snippet av en icke-obfuskerad snifferkod ut:

Analys av infrastruktur
I tidigare kampanjer registrerade angripare domÀnnamn som liknade legitima onlinebutikssidor. Deras domÀn kunde skilja sig frÄn den legitima med ett tecken eller en annan TLD. De registrerade domÀnerna anvÀndes för att lagra snifferkod, vars lÀnk integrerades i butikens kod.
Denna grupp anvÀnde ocksÄ domÀnnamn som pÄminde om namnen pÄ populÀra jQuery-tillÀgg (slickjs[.]org för sidor som anvÀnde tillÀgget slick.js), betalningsportaler (sagecdn[.]org för sidor som anvÀnde betalningssystemet Sage Pay).
Senare började gruppen skapa domÀner vars namn inte hade nÄgot gemensamt med butiksdomÀnen eller butikens tema.

Varje domÀn motsvarade en webbplats dÀr en katalog skapades /js eller /src. I denna katalog lagrades sniffer-skript: en sniffer för varje ny infektion. Sniffern integrerades i webbplatsens kod genom en direkt lÀnk, men i sÀllsynta fall modifierade angriparna en av webbplatsens filer och lade till skadlig kod.
Kodanalys
Första obfuskationsalgoritmen
I vissa upptÀckta prover av sniffer dessa familj var koden obfuskerad och innehöll krypterade data som var nödvÀndiga för snifferns funktion: sÀrskilt adressen till snifferns gateway, listan över fÀlt i betalningsformulÀret, och i vissa fall - koden för det falska betalningsformulÀret. I koden inom funktionen var resurserna krypterade med hjÀlp av XOR med en nyckel som skickades som ett argument till samma funktion.

Genom att dekryptera strÀngen med rÀtt nyckel, som Àr unik för varje prov, kan man fÄ en strÀng som innehÄller alla strÀngar frÄn snifferkoden Ätskilda med en avgrÀnsare.

Andra obfuskationsalgoritmen
I senare prover av sniffer denna familj anvÀndes en annan obfuskationsmekanism: i detta fall var data krypterade med hjÀlp av en egen skriven algoritm. StrÀngen som innehöll de krypterade data som var nödvÀndiga för snifferns funktion skickades som ett argument till dekrypteringsfunktionen.

Med hjÀlp av webblÀsarens konsol kan man dekryptera de krypterade data och fÄ en array som innehÄller snifferns resurser.

Koppling till tidigare MageCart-attacker
Under analysen av en av domĂ€nerna som anvĂ€ndes av gruppen som en portal för att samla in stulna data, konstaterades det att det pĂ„ denna domĂ€n fanns en infrastruktur för att stjĂ€la kreditkort, som var identisk med den som anvĂ€ndes av Group 1 â en av de första grupperna, av RiskIQ-specialister.
PÄ vÀrden för snifferfamiljen CoffeMokko hittades tvÄ filer:
- mage.js â en fil som innehĂ„ller koden för sniffern frĂ„n Group 1 med portaladressen js-cdn.link
- mag.php â en PHP-skript som ansvarar för att samla in data stulna av sniffern
ĐĄĐŸĐŽĐ”ŃĐ¶ĐžĐŒĐŸĐ” ŃаĐčла mage.js 
Det konstaterades ocksÄ att de tidigaste domÀnerna som anvÀndes av gruppen bakom snifferfamiljen CoffeMokko registrerades den 17 maj 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Formatet pÄ dessa domÀnnamn överensstÀmmer med domÀnnamnen frÄn Group 1 som anvÀndes i attackerna 2016.
Baserat pÄ de upptÀckta fakta kan man anta att det finns en koppling mellan operatörerna av snifferfamiljen CoffeMokko och brottsgÀnget Group 1. Det Àr troligt att operatörerna CoffeMokko kan ha lÄnat verktyg och programvara för kortstöld frÄn sina föregÄngare. Det Àr dock mer sannolikt att brottsgÀnget bakom anvÀndningen av snifferna frÄn CoffeMokko-familjen bestÄr av samma personer som genomförde attacker inom ramen för Group 1:s verksamhet. Efter publiceringen av den första rapporten om den kriminella gruppens aktivitet blockerades alla deras domÀnnamn och verktyg studerades och beskrevs i detalj. Gruppen tvingades att ta en paus för att förbÀttra sina interna verktyg och skriva om koden för snifferna för att kunna fortsÀtta sina attacker och förbli osett.
Infrastruktur
| DomÀn | Datum för upptÀckte\/framtrÀdande |
|---|---|
| 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 |
KĂ€lla: habr.com
