Empat sniffer javascript yang menjebak Anda di toko online



Hampir setiap dari kita menggunakan layanan toko online, yang berarti cepat atau lambat ia berisiko menjadi korban sniffer JavaScript - kode khusus yang disuntikkan penjahat cyber ke situs untuk mencuri informasi kartu bank, alamat, login, dan kata sandi pengguna.

Hampir 400.000 pengguna situs web dan aplikasi seluler maskapai British Airways, serta pengunjung situs web Inggris dari raksasa olahraga FILA dan distributor tiket Amerika Ticketmaster, telah menderita penghirup.

Threat Intelligence Group-IB analis Viktor Okorokov berbicara tentang bagaimana sniffer tertanam dalam kode situs dan mencuri informasi penagihan, serta CRM yang mereka serang.



The Phantom Menace


Ternyata untuk waktu yang lama JS sniffer tetap tidak terlihat oleh analis antivirus, dan bank dan sistem pembayaran tidak melihat ancaman serius pada mereka. Dan sepenuhnya sia-sia. Pakar Group-IB menganalisis 2.440 toko online yang terinfeksi yang pengunjungnya - sekitar 1,5 juta orang per hari - berisiko mengalami kompromi. Di antara para korban tidak hanya pengguna, tetapi juga toko online, sistem pembayaran dan bank yang mengeluarkan kartu yang dikompromikan.

Laporan Group-IB adalah studi pertama tentang pasar darknet untuk sniffer, infrastruktur dan cara mereka untuk menghasilkan uang, membawa pencipta mereka jutaan dolar. Kami mengidentifikasi 38 keluarga sniffer, yang sebelumnya hanya 12 yang diketahui peneliti.

Mari kita membahas empat keluarga sniffer yang dipelajari selama penelitian.

Keluarga ReactGet


Sniffer keluarga ReactGet digunakan untuk mencuri data kartu bank di situs toko online. Sniffer dapat bekerja dengan sejumlah besar sistem pembayaran berbeda yang digunakan di situs: satu nilai parameter sesuai dengan satu sistem pembayaran, dan masing-masing versi sniffer yang terdeteksi dapat digunakan untuk mencuri kredensial, serta mencuri data kartu bank dari bentuk pembayaran beberapa sistem pembayaran sekaligus, seperti yang disebut sniffer universal. Ditemukan bahwa dalam beberapa kasus, penyerang melakukan serangan phishing pada administrator toko online untuk mendapatkan akses ke panel administrasi situs.

Kampanye menggunakan keluarga sniffer ini dimulai pada Mei 2017, situs di bawah kendali CMS dan platform Magento, Bigcommerce, Shopify diserang.

Bagaimana ReactGet tertanam dalam kode toko online


Selain implementasi script "klasik" dengan referensi, keluarga sniffers ReactGet menggunakan teknik khusus: menggunakan kode JavaScript, memeriksa untuk melihat apakah alamat saat ini di mana pengguna berada memenuhi kriteria tertentu. Kode berbahaya hanya akan diluncurkan jika URL saat ini berisi checkout substring atau cek onestep , onepage / , out / onepag , checkout / one , ckout / one . Dengan demikian, kode sniffer akan dieksekusi tepat pada saat ketika pengguna mulai membayar untuk pembelian dan memasukkan informasi pembayaran ke dalam formulir di situs.


Sniffer ini menggunakan teknik non-standar. Pembayaran dan data pribadi korban dikumpulkan bersama, disandikan menggunakan base64 , dan kemudian string yang dihasilkan digunakan sebagai parameter untuk mengirim permintaan ke situs penyerang. Paling sering, path ke gerbang mensimulasikan file JavaScript, misalnya resp.js , data.js dan sebagainya, tetapi juga tautan ke file gambar, GIF dan JPG juga digunakan. Keunikannya adalah sniffer membuat objek gambar dengan ukuran 1 x 1 piksel dan menggunakan tautan yang sebelumnya diperoleh sebagai parameter src gambar. Artinya, bagi pengguna, permintaan lalu lintas seperti itu akan terlihat seperti permintaan untuk gambar biasa. Teknik serupa digunakan dalam sniffer keluarga ImageID. Selain itu, teknik menggunakan gambar 1 oleh 1 piksel digunakan dalam banyak skrip analitik online yang sah, yang juga dapat menyesatkan pengguna.


Analisis Versi


Analisis domain aktif yang digunakan oleh operator sniffer ReactGet mengungkapkan banyak versi keluarga sniffer yang berbeda. Versi dibedakan dengan ada atau tidak adanya kebingungan, dan di samping itu, setiap sniffer dirancang untuk sistem pembayaran tertentu yang memproses pembayaran kartu bank untuk toko online. Setelah mengurutkan nilai parameter yang sesuai dengan nomor versi, spesialis Grup-IB menerima daftar lengkap variasi sniffer yang tersedia, dan dengan nama bidang formulir yang dicari oleh setiap sniffer dalam kode halaman, mereka menentukan sistem pembayaran yang diarahkan oleh sniffer.

Daftar sniffer dan sistem pembayaran yang sesuai
Url sniffer
Sistem pembayaran
reactjsapi.com/react.jsOtorisasi.Net
ajaxstatic.com/api.js?v=2.1.1Kartu
ajaxstatic.com/api.js?v=2.1.2Otorisasi.Net
ajaxstatic.com/api.js?v=2.1.3Otorisasi.Net
ajaxstatic.com/api.js?v=2.1.4eWAY Cepat
ajaxstatic.com/api.js?v=2.1.5Otorisasi.Net
ajaxstatic.com/api.js?v=2.1.6Adyen
ajaxstatic.com/api.js?v=2.1.7USAePay
ajaxstatic.com/api.js?v=2.1.9Otorisasi.Net
apitstatus.com/api.js?v=2.1.1USAePay
apitstatus.com/api.js?v=2.1.2Otorisasi.Net
apitstatus.com/api.js?v=2.1.3Moneris
apitstatus.com/api.js?v=2.1.5USAePay
apitstatus.com/api.js?v=2.1.6Paypal
apitstatus.com/api.js?v=2.1.7Sage membayar
apitstatus.com/api.js?v=2.1.8Verisign
apitstatus.com/api.js?v=2.1.9Paypal
apitstatus.com/api.js?v=2.3.0Stripe
apitstatus.com/api.js?v=3.0.2Realex
apitstatus.com/api.js?v=3.0.3Paypal
apitstatus.com/api.js?v=3.0.4Linkpoint
apitstatus.com/api.js?v=3.0.5Paypal
apitstatus.com/api.js?v=3.0.7Paypal
apitstatus.com/api.js?v=3.0.8Datacash
apitstatus.com/api.js?v=3.0.9Paypal
asianfoodgracer.com/footer.jsOtorisasi.Net
billgetstatus.com/api.js?v=1.2Otorisasi.Net
billgetstatus.com/api.js?v=1.3Otorisasi.Net
billgetstatus.com/api.js?v=1.4Otorisasi.Net
billgetstatus.com/api.js?v=1.5Verisign
billgetstatus.com/api.js?v=1.6Otorisasi.Net
billgetstatus.com/api.js?v=1.7Moneris
billgetstatus.com/api.js?v=1.8Sage membayar
billgetstatus.com/api.js?v=2.0USAePay
billgetstatus.com/react.jsOtorisasi.Net
cloudodesc.com/gtm.js?v=1.2Otorisasi.Net
cloudodesc.com/gtm.js?v=1.3ANZ eGate
cloudodesc.com/gtm.js?v=2.3Otorisasi.Net
cloudodesc.com/gtm.js?v=2.4Moneris
cloudodesc.com/gtm.js?v=2.6
Sage membayar
cloudodesc.com/gtm.js?v=2.7Sage membayar
cloudodesc.com/gtm.js?v=2.8Chase Paymentech
cloudodesc.com/gtm.js?v=2.9Otorisasi.Net
cloudodesc.com/gtm.js?v=2.91Adyen
cloudodesc.com/gtm.js?v=2.92Psigate
cloudodesc.com/gtm.js?v=2.93Sumber dunia maya
cloudodesc.com/gtm.js?v=2.95ANZ eGate
cloudodesc.com/gtm.js?v=2.97Realex
geisseie.com/gs.jsUSAePay
gtmproc.com/age.jsOtorisasi.Net
gtmproc.com/gtm.js?v=1.2Otorisasi.Net
gtmproc.com/gtm.js?v=1.3ANZ eGate
gtmproc.com/gtm.js?v=1.5Paypal
gtmproc.com/gtm.js?v=1.6Paypal
gtmproc.com/gtm.js?v=1.7Realex
livecheckpay.com/api.js?v=2.0Sage membayar
livecheckpay.com/api.js?v=2.1Paypal
livecheckpay.com/api.js?v=2.2Verisign
livecheckpay.com/api.js?v=2.3Otorisasi.Net
livecheckpay.com/api.js?v=2.4Verisign
livecheckpay.com/react.jsOtorisasi.Net
livegetpay.com/pay.js?v=2.1.2ANZ eGate
livegetpay.com/pay.js?v=2.1.3Paypal
livegetpay.com/pay.js?v=2.1.5Sumber dunia maya
livegetpay.com/pay.js?v=2.1.7Otorisasi.Net
livegetpay.com/pay.js?v=2.1.8Sage membayar
livegetpay.com/pay.js?v=2.1.9Realex
livegetpay.com/pay.js?v=2.2.0Sumber dunia maya
livegetpay.com/pay.js?v=2.2.1Paypal
livegetpay.com/pay.js?v=2.2.2Paypal
livegetpay.com/pay.js?v=2.2.3Paypal
livegetpay.com/pay.js?v=2.2.4Verisign
livegetpay.com/pay.js?v=2.2.5eWAY Cepat
livegetpay.com/pay.js?v=2.2.7Sage membayar
livegetpay.com/pay.js?v=2.2.8Sage membayar
livegetpay.com/pay.js?v=2.2.9Verisign
livegetpay.com/pay.js?v=2.3.0Otorisasi.Net
livegetpay.com/pay.js?v=2.3.1Otorisasi.Net
livegetpay.com/pay.js?v=2.3.2Gateway global data pertama
livegetpay.com/pay.js?v=2.3.3Otorisasi.Net
livegetpay.com/pay.js?v=2.3.4Otorisasi.Net
livegetpay.com/pay.js?v=2.3.5Moneris
livegetpay.com/pay.js?v=2.3.6Otorisasi.Net
livegetpay.com/pay.js?v=2.3.8Paypal
livegetpay.com/pay.js?v=2.4.0Verisign
maxstatics.com/site.jsUSAePay
mediapack.info/track.js?d=funlove.comUSAePay
mediapack.info/track.js?d=qbedding.comOtorisasi.Net
mediapack.info/track.js?d=vseyewear.comVerisign
mxcounter.com/c.js?v=1.2Paypal
mxcounter.com/c.js?v=1.3Otorisasi.Net
mxcounter.com/c.js?v=1.4Stripe
mxcounter.com/c.js?v=1.6Otorisasi.Net
mxcounter.com/c.js?v=1.7eWAY Cepat
mxcounter.com/c.js?v=1.8Sage membayar
mxcounter.com/c.js?v=2.0Otorisasi.Net
mxcounter.com/c.js?v=2.1Braintree
mxcounter.com/c.js?v=2.10Braintree
mxcounter.com/c.js?v=2.2Paypal
mxcounter.com/c.js?v=2.3Sage membayar
mxcounter.com/c.js?v=2.31Sage membayar
mxcounter.com/c.js?v=2.32Otorisasi.Net
mxcounter.com/c.js?v=2.33Paypal
mxcounter.com/c.js?v=2.34Otorisasi.Net
mxcounter.com/c.js?v=2.35Verisign
mxcounter.com/click.js?v=1.2Paypal
mxcounter.com/click.js?v=1.3Otorisasi.Net
mxcounter.com/click.js?v=1.4Stripe
mxcounter.com/click.js?v=1.6Otorisasi.Net
mxcounter.com/click.js?v=1.7eWAY Cepat
mxcounter.com/click.js?v=1.8Sage membayar
mxcounter.com/click.js?v=2.0Otorisasi.Net
mxcounter.com/click.js?v=2.1Braintree
mxcounter.com/click.js?v=2.2Paypal
mxcounter.com/click.js?v=2.3Sage membayar
mxcounter.com/click.js?v=2.31Sage membayar
mxcounter.com/click.js?v=2.32Otorisasi.Net
mxcounter.com/click.js?v=2.33Paypal
mxcounter.com/click.js?v=2.34Otorisasi.Net
mxcounter.com/click.js?v=2.35Verisign
mxcounter.com/cnt.jsOtorisasi.Net
mxcounter.com/j.jsOtorisasi.Net
newrelicnet.com/api.js?v=1.2Otorisasi.Net
newrelicnet.com/api.js?v=1.4Otorisasi.Net
newrelicnet.com/api.js?v=1.8Sage membayar
newrelicnet.com/api.js?v=4.5Sage membayar
newrelicnet.com/api.js?v=4.6Payway Westpac
nr-public.com/api.js?v=2.0Payfort
nr-public.com/api.js?v=2.1Paypal
nr-public.com/api.js?v=2.2Otorisasi.Net
nr-public.com/api.js?v=2.3Stripe
nr-public.com/api.js?v=2.4Gateway global data pertama
nr-public.com/api.js?v=2.5Psigate
nr-public.com/api.js?v=2.6Otorisasi.Net
nr-public.com/api.js?v=2.7Otorisasi.Net
nr-public.com/api.js?v=2.8Moneris
nr-public.com/api.js?v=2.9Otorisasi.Net
nr-public.com/api.js?v=3.1Sage membayar
nr-public.com/api.js?v=3.2Verisign
nr-public.com/api.js?v=3.3Moneris
nr-public.com/api.js?v=3.5Paypal
nr-public.com/api.js?v=3.6Linkpoint
nr-public.com/api.js?v=3.7Payway Westpac
nr-public.com/api.js?v=3.8Otorisasi.Net
nr-public.com/api.js?v=4.0Moneris
nr-public.com/api.js?v=4.0.2Paypal
nr-public.com/api.js?v=4.0.3Adyen
nr-public.com/api.js?v=4.0.4Paypal
nr-public.com/api.js?v=4.0.5Otorisasi.Net
nr-public.com/api.js?v=4.0.6USAePay
nr-public.com/api.js?v=4.0.7EBizCharge
nr-public.com/api.js?v=4.0.8Otorisasi.Net
nr-public.com/api.js?v=4.0.9Verisign
nr-public.com/api.js?v=4.1.2Verisign
ordercheckpays.com/api.js?v=2.11Otorisasi.Net
ordercheckpays.com/api.js?v=2.12Paypal
ordercheckpays.com/api.js?v=2.13Moneris
ordercheckpays.com/api.js?v=2.14Otorisasi.Net
ordercheckpays.com/api.js?v=2.15Paypal
ordercheckpays.com/api.js?v=2.16Paypal
ordercheckpays.com/api.js?v=2.17Payway Westpac
ordercheckpays.com/api.js?v=2.18Otorisasi.Net
ordercheckpays.com/api.js?v=2.19Otorisasi.Net
ordercheckpays.com/api.js?v=2.21Sage membayar
ordercheckpays.com/api.js?v=2.22Verisign
ordercheckpays.com/api.js?v=2.23Otorisasi.Net
ordercheckpays.com/api.js?v=2.24Paypal
ordercheckpays.com/api.js?v=2.25Payfort
ordercheckpays.com/api.js?v=2.29Sumber dunia maya
ordercheckpays.com/api.js?v=2.4PayPal Payflow Pro
ordercheckpays.com/api.js?v=2.7Otorisasi.Net
ordercheckpays.com/api.js?v=2.8Otorisasi.Net
ordercheckpays.com/api.js?v=2.9Verisign
ordercheckpays.com/api.js?v=3.1Otorisasi.Net
ordercheckpays.com/api.js?v=3.2Otorisasi.Net
ordercheckpays.com/api.js?v=3.3Sage membayar
ordercheckpays.com/api.js?v=3.4Otorisasi.Net
ordercheckpays.com/api.js?v=3.5Stripe
ordercheckpays.com/api.js?v=3.6Otorisasi.Net
ordercheckpays.com/api.js?v=3.7Otorisasi.Net
ordercheckpays.com/api.js?v=3.8Verisign
ordercheckpays.com/api.js?v=3.9Paypal
ordercheckpays.com/api.js?v=4.0Otorisasi.Net
ordercheckpays.com/api.js?v=4.1Otorisasi.Net
ordercheckpays.com/api.js?v=4.2Sage membayar
ordercheckpays.com/api.js?v=4.3Otorisasi.Net
reactjsapi.com/api.js?v=0.1.0Otorisasi.Net
reactjsapi.com/api.js?v=0.1.1Paypal
reactjsapi.com/api.js?v=4.1.2Flint
reactjsapi.com/api.js?v=4.1.4Paypal
reactjsapi.com/api.js?v=4.1.5Sage membayar
reactjsapi.com/api.js?v=4.1.51Verisign
reactjsapi.com/api.js?v=4.1.6Otorisasi.Net
reactjsapi.com/api.js?v=4.1.7Otorisasi.Net
reactjsapi.com/api.js?v=4.1.8Stripe
reactjsapi.com/api.js?v=4.1.9Zebra gemuk
reactjsapi.com/api.js?v=4.2.0Sage membayar
reactjsapi.com/api.js?v=4.2.1Otorisasi.Net
reactjsapi.com/api.js?v=4.2.2Gateway global data pertama
reactjsapi.com/api.js?v=4.2.3Otorisasi.Net
reactjsapi.com/api.js?v=4.2.4eWAY Cepat
reactjsapi.com/api.js?v=4.2.5Adyen
reactjsapi.com/api.js?v=4.2.7Paypal
reactjsapi.com/api.js?v=4.2.8Layanan Pedagang QuickBooks
reactjsapi.com/api.js?v=4.2.9Verisign
reactjsapi.com/api.js?v=4.2.91Sage membayar
reactjsapi.com/api.js?v=4.2.92Verisign
reactjsapi.com/api.js?v=4.2.94Otorisasi.Net
reactjsapi.com/api.js?v=4.3.97Otorisasi.Net
reactjsapi.com/api.js?v=4.5Sage membayar
reactjsapi.com/react.jsOtorisasi.Net
sydneysalonsupplies.com/gtm.jseWAY Cepat
tagsmediaget.com/react.jsOtorisasi.Net
tagstracking.com/tag.js?v=2.1.2ANZ eGate
tagstracking.com/tag.js?v=2.1.3Paypal
tagstracking.com/tag.js?v=2.1.5Sumber dunia maya
tagstracking.com/tag.js?v=2.1.7Otorisasi.Net
tagstracking.com/tag.js?v=2.1.8Sage membayar
tagstracking.com/tag.js?v=2.1.9Realex
tagstracking.com/tag.js?v=2.2.0Sumber dunia maya
tagstracking.com/tag.js?v=2.2.1Paypal
tagstracking.com/tag.js?v=2.2.2Paypal
tagstracking.com/tag.js?v=2.2.3Paypal
tagstracking.com/tag.js?v=2.2.4Verisign
tagstracking.com/tag.js?v=2.2.5eWAY Cepat
tagstracking.com/tag.js?v=2.2.7Sage membayar
tagstracking.com/tag.js?v=2.2.8Sage membayar
tagstracking.com/tag.js?v=2.2.9
Verisign
tagstracking.com/tag.js?v=2.3.0Otorisasi.Net
tagstracking.com/tag.js?v=2.3.1Otorisasi.Net
tagstracking.com/tag.js?v=2.3.2Gateway global data pertama
tagstracking.com/tag.js?v=2.3.3Otorisasi.Net
tagstracking.com/tag.js?v=2.3.4Otorisasi.Net
tagstracking.com/tag.js?v=2.3.5Moneris
tagstracking.com/tag.js?v=2.3.6Otorisasi.Net
tagstracking.com/tag.js?v=2.3.8Paypal


Sandi pelacak kata sandi


Salah satu keuntungan dari sniffer JavaScript yang bekerja di sisi klien situs adalah fleksibilitasnya: kode jahat yang tertanam di situs dapat mencuri semua jenis data, apakah itu data pembayaran atau nama pengguna dan kata sandi akun pengguna. Spesialis Group-IB menemukan sampel sniffer milik keluarga ReactGet, yang dirancang untuk mencuri alamat email dan kata sandi pengguna situs.


Persimpangan dengan ImageID Sniffer


Analisis terhadap salah satu toko yang terinfeksi mengungkapkan bahwa situsnya terinfeksi dua kali: selain kode berbahaya dari keluarga sniffer ReactGet, kode sniffer keluarga ImageID terdeteksi. Persimpangan ini dapat menunjukkan bahwa operator di balik penggunaan kedua sniffer menggunakan teknik serupa untuk menyuntikkan kode berbahaya.


Sniffer universal


Analisis salah satu nama domain yang terkait dengan infrastruktur sniffer ReactGet mengungkapkan bahwa pengguna yang sama telah mendaftarkan tiga nama domain lainnya. Ketiga domain ini mensimulasikan domain dari situs kehidupan nyata dan sebelumnya digunakan untuk meng-host sniffer. Ketika menganalisis kode dari tiga situs yang sah, sniffer yang tidak dikenal ditemukan, dan analisis lebih lanjut menunjukkan bahwa ini adalah versi perbaikan dari sniffer ReactGet. Semua versi sniffer yang sebelumnya dilacak dari keluarga ini ditujukan pada sistem pembayaran tunggal, yaitu, untuk setiap sistem pembayaran diperlukan versi khusus sniffer. Namun, dalam kasus ini, ditemukan versi universal sniffer, yang mampu mencuri informasi dari formulir yang terkait dengan 15 sistem pembayaran dan modul situs e-niaga yang berbeda untuk pembayaran online.

Jadi, pada awal pekerjaan, sniffer mencari bidang dasar formulir yang berisi informasi pribadi korban: nama lengkap, alamat fisik, nomor telepon.


Kemudian sniffer mencari lebih dari 15 awalan yang berbeda sesuai dengan sistem dan modul pembayaran untuk pembayaran online.


Selanjutnya, data pribadi korban dan informasi pembayaran dikumpulkan bersama dan dikirim ke situs yang dikontrol oleh penyerang: dalam kasus khusus ini, dua versi sniffer universal ReactGet yang terletak di dua situs yang diretas ditemukan. Namun, kedua versi mengirim data curian ke situs yang diretas yang sama zoobashop.com .


Analisis awalan yang digunakan oleh sniffer untuk mencari bidang yang berisi informasi pembayaran korban memungkinkan kami untuk menentukan bahwa pola sniffer ini ditujukan pada sistem pembayaran berikut:

  • Otorisasi.Net
  • Verisign
  • Data pertama
  • USAePay
  • Stripe
  • Paypal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Pembayaran realex
  • Psigate
  • Sistem pembayaran Heartland

Alat apa yang digunakan untuk mencuri informasi penagihan?


Alat pertama yang ditemukan selama analisis infrastruktur penyerang digunakan untuk mengaburkan skrip berbahaya yang bertanggung jawab untuk mencuri kartu bank. Script bash ditemukan pada salah satu host penyerang menggunakan javascript-obfuscator CLI untuk mengotomatisasi kebingungan kode sniffer.


Alat yang terdeteksi kedua dirancang untuk menghasilkan kode yang bertanggung jawab untuk memuat sniffer utama. Alat ini menghasilkan kode JavaScript yang memeriksa apakah pengguna ada di halaman pembayaran dengan mencari alamat pengguna saat ini untuk checkout , kereta, dan sebagainya, dan jika hasilnya positif, kode memuat sniffer utama dari server penyerang. Untuk menyembunyikan aktivitas jahat, semua baris, termasuk jalur uji untuk menentukan halaman pembayaran, serta tautan ke sniffer, dikodekan menggunakan base64 .


Serangan phishing


Ketika menganalisis infrastruktur jaringan para penyerang, ditemukan bahwa seringkali kelompok kriminal menggunakan phishing untuk mendapatkan akses ke panel administratif dari toko online target. Penyerang mendaftarkan domain yang terlihat mirip dengan domain toko, dan kemudian menggunakan formulir login panel admin Magento palsu di atasnya. Jika berhasil, penyerang akan mendapatkan akses ke panel admin CMS Magento, yang memungkinkan mereka untuk mengedit komponen situs dan mengimplementasikan sniffer untuk mencuri informasi kartu kredit.


Infrastruktur
Domain
Tanggal Penemuan / Penampilan
mediapack.info05/04/2017
adsgetapi.com15/06/2017
simcounter.com14/08/2017
mageanalytics.com12/22/2017
maxstatics.com01/16/2018
reactjsapi.com01/19/2018
mxcounter.com02/02/2018
apitstatus.com03/01/2018
orderracker.com04/20/2018
tagstracking.com06/25/2018
adsapigate.com07/12/2018
trust-tracker.com15/07/2018
fbstatspartner.com10/02/2018
billgetstatus.com10/12/2018
aldenmlilhouse.com10/20/2018
balletbeautlful.com10/20/2018
bargalnjunkie.com10/20/2018
payselector.com10.21.2018
tagsmediaget.com11/02/2018
hs-payments.com11/16/2018
ordercheckpays.com11/19/2018
geisseie.com11/24/2018
gtmproc.com11/29/2018
livegetpay.com12/18/2018
sydneysalonsupplies.com12/18/2018
newrelicnet.com
12/19/2018
nr-public.com01/03/2019
cloudodesc.com01/04/2019
ajaxstatic.com01/11/2019
livecheckpay.com01/21/2019
asianfoodgracer.com01/25/2019


Keluarga G-analytics


Keluarga sniffer ini digunakan untuk mencuri kartu dari pelanggan toko online. Nama domain pertama yang digunakan oleh grup itu terdaftar pada April 2016, yang mungkin mengindikasikan awal aktivitas grup pada pertengahan 2016.

Dalam kampanye saat ini, grup menggunakan nama domain yang meniru layanan kehidupan nyata seperti Google Analytics dan jQuery, menutupi aktivitas sniffer dengan skrip yang sah dan mirip dengan nama domain yang sah. Serangan itu dijalankan di situs yang menjalankan CMS Magento.

Bagaimana G-Analytics tertanam dalam kode toko online


Ciri khas keluarga ini adalah penggunaan berbagai metode pencurian informasi pembayaran pengguna. Selain implementasi klasik kode JavaScript di bagian klien situs, kelompok kriminal juga menggunakan teknik kode embedding di bagian server situs, yaitu skrip PHP yang memproses data yang dimasukkan oleh pengguna. Teknik ini berbahaya karena menyulitkan peneliti pihak ketiga untuk mendeteksi kode berbahaya. Spesialis Group-IB menemukan versi sniffer yang tertanam dalam kode PHP situs, menggunakan domain dittm.org sebagai gerbang.


Versi sebelumnya dari sniffer juga ditemukan, yang menggunakan domain dittm.org yang sama untuk mengumpulkan data curian, tetapi versi ini sudah dimaksudkan untuk instalasi di sisi klien dari toko online.


Kemudian kelompok itu mengubah taktiknya dan mulai lebih memperhatikan penyembunyian aktivitas jahat dan penyamaran.

Pada awal 2017, grup ini mulai menggunakan domain jquery-js.com , menyamar sebagai CDN untuk jQuery: ketika dialihkan ke situs pengguna jahat, itu dialihkan ke situs jquery.com yang sah.

Dan pada pertengahan 2018, grup ini mengadopsi nama domain g-analytics.com dan mulai menutupi kegiatan sniffer di bawah layanan Google Analytics yang sah.



Analisis Versi


Selama analisis domain yang digunakan untuk menyimpan kode sniffer, ditemukan bahwa situs tersebut memiliki sejumlah besar versi yang berbeda dengan adanya kebingungan, serta ada atau tidak adanya kode yang tidak terjangkau yang ditambahkan ke file untuk mengalihkan perhatian dan menyembunyikan kode berbahaya.

Secara total, enam versi sniffer diidentifikasi di jquery-js.com . Sniffer ini mengirim data curian ke alamat yang terletak di situs yang sama dengan sniffer itu sendiri: 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

Domain g-analytics.com kemudian, yang digunakan oleh kelompok dalam serangan sejak pertengahan 2018, berfungsi sebagai tempat penyimpanan untuk sejumlah besar sniffer. Sebanyak 16 versi sniffer yang berbeda ditemukan. Dalam hal ini, gerbang untuk mengirim data yang dicuri disamarkan sebagai tautan ke gambar GIF : hxxp: // g-analytics [.] Com / __ utm.gif? V = 1 & _v = j68 & a = 98811130 & t = tayangan laman & _s = 1 & sd = 24-bit & sr = 2560x1440 & vp = 2145x371 & 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



, , . , , , google-analytics.cm , cardz.vc . cardz.vc Cardsurfs (Flysurfs), AlphaBay , .


analytic.is , , , , Group-IB , Cookie-, , , . iozoz.com , , 2016 . , . email- kts241@gmail.com , cardz.su cardz.vc , Cardsurfs.

, , G-Analytics Cardsurfs , , .

Infrastruktur

/
iozoz.com08.04.2016
dittm.org10.09.2016
jquery-js.com02.01.2017
g-analytics.com31.05.2018
google-analytics.is21.11.2018
analytic.to04.12.2018
google-analytics.to06.12.2018
google-analytics.cm28.12.2018
analytic.is28.12.2018
googlc-analytics.cm17.01.2019


Illum


Illum — , -, CMS Magento. , , .

, , , , , . , , , 2016 .

Illum -


. cdn.illum[.]pw/records.php , base64 .


, — records.nstatistics[.]com/records.php .


Willem de Groot, , , CSU.



Group-IB , .


, , Linux: , Linux Privilege Escalation Check Script, (Mike Czumak), CVE-2009-1185.

- : core_config_data CVE-2016-4010, RCE CMS Magento, -.


, . , , CMS . , segapay_standart.js segapay_onpage.js , Sage Pay.

sr.illum [.]pw/mjs_special/visiondirect.co.uk.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/topdierenshop.nl.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/tiendalenovo.es.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/pro-bolt.com.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/plae.co.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/ottolenghi.co.uk.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/oldtimecandy.com.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/mylook.ee.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs_special/luluandsky.com.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/julep.com.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs_special/gymcompany.es.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/grotekadoshop.nl.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs_special/fushi.co.uk.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/fareastflora.com.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs_special/compuindia.com.js//request.payrightnow[.]cf/alldata.php
sr.illum [.]pw/mjs/segapay_standart.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs/segapay_onpage.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs/replace_standart.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/mjs/all_inputs.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/mjs/add_inputs_standart.js//request.payrightnow[.]cf/checkpayment.php
sr.illum [.]pw/magento/payment_standart.js//cdn.illum[.]pw/records.php
sr.illum [.]pw/magento/payment_redirect.js//payrightnow[.]cf/?payment=
sr.illum [.]pw/magento/payment_redcrypt.js//payrightnow[.]cf/?payment=
sr.illum [.]pw/magento/payment_forminsite.js//paymentnow[.]tk/?payment=


paymentnow[.]tk , payment_forminsite.js , subjectAltName , CloudFlare. , evil.js . , CVE-2016-4010, footer CMS Magento. request.requestnet[.]tk , , paymentnow[.]tk .



. - .


— PayPal, .

Infrastruktur

/
cdn.illum.pw27/11/2016
records.nstatistics.com06/09/2018
request.payrightnow.cf25/05/2018
paymentnow.tk16/07/2017
payment-line.tk01/03/2018
paymentpal.cf04/09/2017
requestnet.tk28/06/2017


CoffeMokko


CoffeMokko, -, 2017 . , Group 1, RiskIQ 2016 . CMS, Magento, OpenCart, WordPress, osCommerce, Shopify.

CoffeMokko -


: src js . .


, . , , .


, : , , .


/savePayment/index.php /tr/index.php . , , . base64 , :

  • «e» «:»
  • «w» «+»
  • «o» «%»
  • «d» «#»
  • «a» «-»
  • «7» «^»
  • «h» «_»
  • «T» «@»
  • «0» «/»
  • «Y» «*»

base64 , .

, :




, -. TLD. , .

, jQuery ( slickjs[.]org , slick.js ), ( sagecdn[.]org , Sage Pay).

, , .


, /js /src . : . , .





Dalam beberapa sampel sniffer yang terdeteksi dari keluarga ini, kode tersebut dikaburkan dan berisi data terenkripsi yang diperlukan agar sniffer berfungsi: khususnya, alamat gerbang sniffer, daftar bidang formulir pembayaran, dan dalam beberapa kasus kode formulir pembayaran palsu. Dalam kode di dalam fungsi, sumber daya dienkripsi menggunakan XOR menggunakan kunci, yang diteruskan oleh argumen dari fungsi yang sama.


Setelah mendekripsi string dengan kunci yang sesuai, unik untuk setiap sampel, Anda bisa mendapatkan string yang berisi semua baris dari kode sniffer melalui karakter pembatas.


Algoritma kebingungan kedua


Dalam sampel sniffer kemudian dari keluarga ini, mekanisme kebingungan yang berbeda digunakan: dalam hal ini, data dienkripsi menggunakan algoritma yang ditulis sendiri. String yang berisi data terenkripsi yang diperlukan agar sniffer berfungsi berfungsi sebagai argumen untuk fungsi dekripsi.


Menggunakan konsol peramban, Anda dapat mendekripsi data terenkripsi dan mendapatkan larik yang berisi sumber daya sniffer.


Tautan ke Serangan MageCart Awal


Analisis terhadap salah satu domain yang digunakan oleh grup sebagai gerbang untuk mengumpulkan data curian mengungkapkan bahwa domain tersebut memiliki infrastruktur pencurian kartu kredit yang identik dengan yang digunakan oleh Grup 1, salah satu grup pertama yang ditemukan oleh spesialis RiskIQ.

Dua file ditemukan di host keluarga sniffer CoffeMokko:

  • mage.js - file yang berisi kode sniffer Grup 1 dengan alamat gerbang js-cdn.link
  • mag.php - skrip PHP yang bertanggung jawab untuk mengumpulkan data yang dicuri sniffer

Konten file Mage.js

Ditemukan juga bahwa domain paling awal yang digunakan oleh kelompok di belakang keluarga sniffer CoffeMokko didaftarkan pada 17 Mei 2017:

  • tautan-js [.] tautan
  • tautan info-js [.]
  • tautan track-js [.]
  • tautan map-js [.]
  • tautan smart-js [.]

Format nama domain ini sama dengan nama domain Grup 1 yang digunakan dalam serangan 2016.

Berdasarkan fakta yang ditemukan, dapat diasumsikan bahwa ada koneksi antara operator sniffer CoffeMokko dan grup kriminal Grup 1. Agaknya, operator CoffeMokko dapat meminjam alat dan perangkat pencurian kartu dari pendahulunya. Namun, lebih mungkin bahwa kelompok kriminal di balik penggunaan CoffeMokko keluarga sniffer adalah orang yang sama yang melakukan serangan sebagai bagian dari kegiatan Grup 1. Setelah publikasi laporan pertama tentang kegiatan kelompok kriminal, semua nama domain mereka diblokir, dan alat-alat dipelajari secara rinci dan dijelaskan. Kelompok itu dipaksa untuk istirahat, memperbaiki alat internal mereka dan menulis ulang kode sniffer untuk melanjutkan serangan mereka dan tidak diperhatikan.

Infrastruktur
DomainTanggal Penemuan / Penampilan
tautan-js.link17/05/2017
info-js.link17/05/2017
track-js.link17/05/2017
map-js.link17/05/2017
smart-js.link17/05/2017
adorebeauty.org09/03/2017
security-payment.su09/03/2017
braincdn.org09/04/2017
sagecdn.org09/04/2017
slickjs.org09/04/2017
oakandfort.org09/10/2017
citywlnery.org15/09/2017
dobell.su10/04/2017
childsplayclothing.org10/31/2017
jewsondirect.com11/05/2017
shop-rnib.org11/15/2017
closetlondon.org11/16/2017
misshaus.org11/28/2017
battery-force.org12/01/2017
kik-vape.org12/01/2017
greatfurnituretradingco.org12/02/2017
etradesupply.org12/04/2017
replacemyremote.org12/04/2017
all-about-sneakers.org12/05/2017
mage-checkout.org12/05/2017
nililotan.org12/07/2017
lamoodbighats.net12/08/2017
walletgear.org12/10/2017
dahlie.org12/12/2017
davidsfootwear.org12/20/2017
blackriverimaging.org12/23/2017
exrpesso.org01/02/2018
parks.su01/09/2018
pmtonline.su01/12/2018
ottocap.org01/15/2018
christohperward.org01/27/2018
coffetea.org01/31/2018
energycoffe.org01/31/2018
energytea.org01/31/2018
teacoffe.net01/31/2018
adaptivecss.org03/01/2018
coffemokko.com03/01/2018
londontea.net03/01/2018
ukcoffe.com03/01/2018
labbe.biz03/20/2018
batterynart.com04/03/2018
btosports.net04/09/2018
chicksaddlery.net04/16/2018
paypaypay.org05/11/2018
ar500arnor.com05/26/2018
authorizecdn.com05/28/2018
slickmin.com05/28/2018
bannerbuzz.info06/03/2018
kandypens.net06/08/2018
mylrendyphone.com06/15/2018
freshchat.info07/01/2018
3lift.org07/02/2018
abtasty.net07/02/2018
mechat.info07/02/2018
zoplm.com07/02/2018
zapaljs.com09/02/2018
foodandcot.com09/15/2018
freshdepor.com09/15/2018
swappastore.com09/15/2018
verywellfitnesse.com09/15/2018
elegrina.com11/18/2018
majsurplus.com11/19/2018
top5value.com11/19/2018

Source: https://habr.com/ru/post/id451792/


All Articles