Case todos utilizamos os servizos das tendas en liña, o que significa que tarde ou cedo corremos o risco de converternos nunha vítima de sniffers de JavaScript - código especial que os atacantes implementan nun sitio web para roubar datos de tarxetas bancarias, enderezos, inicios de sesión e contrasinais dos usuarios. .
Case 400 usuarios do sitio web e da aplicación móbil de British Airways xa se viron afectados polos sniffers, así como os visitantes da web británica do xigante deportivo FILA e da distribuidora estadounidense de billetes Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - estes e moitos outros sistemas de pago foron infectados.
O analista de Threat Intelligence Group-IB, Viktor Okorokov, fala de como os sniffers se infiltran no código do sitio web e rouban información de pago, así como de que CRM atacan.
"Ameaza oculta"
Aconteceu que durante moito tempo os sniffers de JS permaneceron fóra da vista dos analistas antivirus, e os bancos e os sistemas de pago non os viron como unha ameaza seria. E completamente en balde. Expertos do Grupo IB
Detémonos en detalle nas catro familias de sniffers estudadas durante o estudo.
ReactGet Family
Os sniffers da familia ReactGet úsanse para roubar datos de tarxetas bancarias en sitios de compras en liña. O sniffer pode funcionar con un gran número de sistemas de pago diferentes utilizados no sitio: un valor de parámetro corresponde a un sistema de pago, e as versións individuais detectadas do sniffer pódense usar para roubar credenciais, así como para roubar datos da tarxeta bancaria do pago. formas de varios sistemas de pago á vez, como o chamado sniffer universal. Descubriuse que, nalgúns casos, os atacantes realizan ataques de phishing aos administradores da tenda en liña para acceder ao panel administrativo do sitio.
En maio de 2017 comezou unha campaña que utilizaba esta familia de sniffers; foron atacados sitios que executaban CMS e plataformas Magento, Bigcommerce e Shopify.
Como se implementa ReactGet no código dunha tenda en liña
Ademais da implementación "clásica" dun script a través dunha ligazón, os operadores da familia de sniffers ReactGet empregan unha técnica especial: mediante código JavaScript verifican se o enderezo actual onde se atopa o usuario cumpre determinados criterios. O código malicioso só se executará se a subcadea está presente no URL actual checkout ou pago dun paso, unha páxina/, fóra/onepag, caixa/unha, ckout/unha. Así, o código sniffer executarase exactamente no momento en que o usuario proceda a pagar as compras e introduza a información de pago no formulario do sitio.
Este sniffer usa unha técnica non estándar. Os datos persoais e de pagamento da vítima recóllense xuntos e codifican mediante base 64, e despois a cadea resultante utilízase como parámetro para enviar unha solicitude ao sitio web dos atacantes. Na maioría das veces, o camiño ata a porta imita un ficheiro JavaScript, por exemplo resp.js, datos.js etc., pero tamén se usan ligazóns a ficheiros de imaxe, GIF и JPG. A peculiaridade é que o sniffer crea un obxecto de imaxe que mide 1 por 1 píxel e utiliza a ligazón recibida anteriormente como parámetro src Imaxes. É dicir, para o usuario tal solicitude no tráfico parecerá unha solicitude dunha imaxe normal. Utilizouse unha técnica similar na familia de sniffers ImageID. Ademais, a técnica de usar unha imaxe de 1 por 1 píxeles úsase en moitos scripts de análise en liña lexítimos, que tamén poden enganar ao usuario.
Análise de versións
A análise dos dominios activos utilizados polos operadores de sniffer de ReactGet revelou moitas versións diferentes desta familia de sniffers. As versións difiren na presenza ou ausencia de ofuscación e, ademais, cada sniffer está deseñado para un sistema de pago específico que procesa os pagos con tarxeta bancaria para tendas en liña. Despois de ter clasificado o valor do parámetro correspondente ao número de versión, os especialistas do Grupo-IB recibiron unha lista completa das variacións de sniffer dispoñibles e, polos nomes dos campos do formulario que cada sniffer busca no código da páxina, identificaron os sistemas de pago. ao que vai dirixido o sniffer.
Lista de sniffers e os seus correspondentes sistemas de pago
URL do sniffer | Sistema de pagamento |
---|---|
|
Autorizar.Net |
Gardar tarxetas | |
|
Autorizar.Net |
Autorizar.Net | |
|
eWAY Rapid |
Autorizar.Net | |
Adyen | |
|
USAePay |
Autorizar.Net | |
USAePay | |
|
Autorizar.Net |
Moneris | |
USAePay | |
PayPal | |
Sage Pay | |
Verisign | |
PayPal | |
raia | |
|
Realex |
PayPal | |
LinkPoint | |
PayPal | |
PayPal | |
DataCash | |
|
PayPal |
|
Autorizar.Net |
|
Autorizar.Net |
Autorizar.Net | |
Autorizar.Net | |
|
Verisign |
|
Autorizar.Net |
Moneris | |
|
Sage Pay |
|
USAePay |
|
Autorizar.Net |
|
Autorizar.Net |
|
ANZ eGate |
|
Autorizar.Net |
|
Moneris |
|
Sage Pay |
Sage Pay | |
|
Chase Paymentech |
|
Autorizar.Net |
|
Adyen |
PsiGate | |
Fonte cibernética | |
ANZ eGate | |
Realex | |
|
USAePay |
|
Autorizar.Net |
|
Autorizar.Net |
|
ANZ eGate |
|
PayPal |
|
PayPal |
Realex | |
|
Sage Pay |
|
PayPal |
|
Verisign |
Autorizar.Net | |
|
Verisign |
Autorizar.Net | |
|
ANZ eGate |
PayPal | |
Fonte cibernética | |
|
Autorizar.Net |
|
Sage Pay |
Realex | |
|
Fonte cibernética |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rapid |
|
Sage Pay |
Sage Pay | |
|
Verisign |
Autorizar.Net | |
Autorizar.Net | |
|
Primeira pasarela global de datos |
Autorizar.Net | |
Autorizar.Net | |
Moneris | |
|
Autorizar.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Autorizar.Net | |
Verisign | |
PayPal | |
|
Autorizar.Net |
raia | |
|
Autorizar.Net |
eWAY Rapid | |
|
Sage Pay |
Autorizar.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
Sage Pay |
|
Sage Pay |
|
Autorizar.Net |
|
PayPal |
|
Autorizar.Net |
Verisign | |
|
PayPal |
|
Autorizar.Net |
|
raia |
|
Autorizar.Net |
eWAY Rapid | |
Sage Pay | |
|
Autorizar.Net |
Braintree | |
|
PayPal |
|
Sage Pay |
Sage Pay | |
|
Autorizar.Net |
PayPal | |
Autorizar.Net | |
|
Verisign |
|
Autorizar.Net |
|
Autorizar.Net |
|
Autorizar.Net |
|
Autorizar.Net |
|
Sage Pay |
Sage Pay | |
|
Westpac PayWay |
|
PayFort |
|
PayPal |
|
Autorizar.Net |
|
raia |
|
Primeira pasarela global de datos |
|
PsiGate |
Autorizar.Net | |
Autorizar.Net | |
|
Moneris |
|
Autorizar.Net |
Sage Pay | |
|
Verisign |
Moneris | |
PayPal | |
|
LinkPoint |
|
Westpac PayWay |
Autorizar.Net | |
|
Moneris |
|
PayPal |
Adyen | |
PayPal | |
Autorizar.Net | |
USAePay | |
EBizCharge | |
|
Autorizar.Net |
|
Verisign |
Verisign | |
Autorizar.Net | |
|
PayPal |
|
Moneris |
Autorizar.Net | |
|
PayPal |
PayPal | |
Westpac PayWay | |
Autorizar.Net | |
|
Autorizar.Net |
Sage Pay | |
|
Verisign |
|
Autorizar.Net |
|
PayPal |
|
PayFort |
Fonte cibernética | |
PayPal Payflow Pro | |
|
Autorizar.Net |
|
Autorizar.Net |
Verisign | |
|
Autorizar.Net |
|
Autorizar.Net |
Sage Pay | |
Autorizar.Net | |
|
raia |
|
Autorizar.Net |
Autorizar.Net | |
Verisign | |
|
PayPal |
Autorizar.Net | |
|
Autorizar.Net |
Sage Pay | |
|
Autorizar.Net |
|
Autorizar.Net |
|
PayPal |
|
Pederneira |
|
PayPal |
Sage Pay | |
Verisign | |
|
Autorizar.Net |
|
Autorizar.Net |
|
raia |
|
Cebra gorda |
Sage Pay | |
|
Autorizar.Net |
Primeira pasarela global de datos | |
|
Autorizar.Net |
|
eWAY Rapid |
Adyen | |
|
PayPal |
Servizos comerciais de QuickBooks | |
Verisign | |
|
Sage Pay |
Verisign | |
|
Autorizar.Net |
|
Autorizar.Net |
Sage Pay | |
|
Autorizar.Net |
|
eWAY Rapid |
Autorizar.Net | |
|
ANZ eGate |
|
PayPal |
Fonte cibernética | |
|
Autorizar.Net |
Sage Pay | |
|
Realex |
Fonte cibernética | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rapid | |
|
Sage Pay |
|
Sage Pay |
|
Verisign |
Autorizar.Net | |
|
Autorizar.Net |
|
Primeira pasarela global de datos |
Autorizar.Net | |
Autorizar.Net | |
|
Moneris |
|
Autorizar.Net |
|
PayPal |
Detector de contrasinais
Unha das vantaxes dos sniffers de JavaScript que traballan no lado do cliente dun sitio web é a súa versatilidade: o código malicioso incrustado nun sitio web pode roubar calquera tipo de datos, xa sexan datos de pago ou o inicio de sesión e o contrasinal dunha conta de usuario. Os especialistas do Grupo IB descubriron unha mostra dun sniffer pertencente á familia ReactGet, deseñada para roubar enderezos de correo electrónico e contrasinais dos usuarios do sitio.
Intersección co sniffer ImageID
Durante a análise dunha das tendas infectadas, comprobouse que o seu sitio web estaba infectado dúas veces: ademais do código malicioso do sniffer da familia ReactGet, detectouse código do sniffer da familia ImageID. Esta superposición podería ser unha evidencia de que os operadores detrás de ambos os sniffers usan técnicas similares para inxectar código malicioso.
Sniffer universal
Unha análise dun dos nomes de dominio asociados á infraestrutura sniffer ReactGet revelou que o mesmo usuario rexistrara outros tres nomes de dominio. Estes tres dominios imitaban os dominios dos sitios web da vida real e anteriormente usábanse para aloxar sniffers. Ao analizar o código de tres sitios lexítimos, detectouse un sniffer descoñecido e unha análise posterior mostrou que se trataba dunha versión mellorada do sniffer ReactGet. Todas as versións previamente monitorizadas desta familia de sniffers estaban dirixidas a un único sistema de pago, é dicir, cada sistema de pago requiría unha versión especial do sniffer. Non obstante, neste caso, descubriuse unha versión universal do sniffer capaz de roubar información de formularios relacionados con 15 sistemas de pago diferentes e módulos de sitios de comercio electrónico para realizar pagos en liña.
Así, ao comezo do traballo, o sniffer buscou campos básicos do formulario que conteñan a información persoal da vítima: nome completo, enderezo físico, número de teléfono.
A continuación, o sniffer buscou en 15 prefixos diferentes correspondentes a diferentes sistemas de pago e módulos de pago en liña.
A continuación, recompiláronse os datos persoais da vítima e a información de pago en conxunto e enviáronse a un sitio controlado polo atacante: neste caso concreto, descubríronse dúas versións do sniffer universal ReactGet, situadas en dous sitios pirateados diferentes. Non obstante, ambas as versións enviaron datos roubados ao mesmo sitio pirateado zoobashop.com.
A análise dos prefixos que utilizaba o sniffer para buscar campos que conteñan a información de pago da vítima permitiunos determinar que esta mostra de sniffer estaba dirixida aos seguintes sistemas de pago:
- Autorizar.Net
- Verisign
- Primeiros datos
- USAePay
- raia
- PayPal
- ANZ eGate
- Braintree
- DataCash (MasterCard)
- Pagos Realex
- PsiGate
- Sistemas de pago Heartland
Que ferramentas se utilizan para roubar información de pago?
A primeira ferramenta, descuberta durante a análise da infraestrutura dos atacantes, úsase para ofuscar scripts maliciosos responsables do roubo de tarxetas bancarias. Descubriuse un script bash que usa a CLI do proxecto nun dos hosts do atacante
A segunda ferramenta descuberta está deseñada para xerar código responsable da carga do sniffer principal. Esta ferramenta xera código JavaScript que verifica se o usuario está na páxina de pago buscando cadeas no enderezo actual do usuario. checkout, cesta e así por diante, e se o resultado é positivo, entón o código carga o sniffer principal do servidor dos atacantes. Para ocultar a actividade maliciosa, todas as liñas, incluídas as liñas de proba para determinar a páxina de pago, así como unha ligazón ao sniffer, codifican mediante base 64.
Ataques de phishing
Unha análise da infraestrutura de rede dos atacantes revelou que o grupo criminal adoita utilizar o phishing para acceder ao panel administrativo da tenda en liña de destino. Os atacantes rexistran un dominio que é visualmente similar ao dominio dunha tenda e, a continuación, despregan nel un formulario de inicio de sesión falso no panel de administración de Magento. Se teñen éxito, os atacantes terán acceso ao panel administrativo do CMS Magento, que lles dá a oportunidade de editar os compoñentes do sitio web e implementar un sniffer para roubar os datos da tarxeta de crédito.
A Infraestrutura
Домен | Data de descubrimento/aparición |
---|---|
mediapack.info | 04.05.2017 |
adsgetapi.com | 15.06.2017 |
simcounter.com | 14.08.2017 |
mageanalytics.com | 22.12.2017 |
maxstatics.com | 16.01.2018 |
reactjsapi.com | 19.01.2018 |
mxcounter.com | 02.02.2018 |
apitstatus.com | 01.03.2018 |
orderracker.com | 20.04.2018 |
tagstracking.com | 25.06.2018 |
adsapigate.com | 12.07.2018 |
trust-tracker.com | 15.07.2018 |
fbstatspartner.com | 02.10.2018 |
billgetstatus.com | 12.10.2018 |
www.aldenmlilhouse.com | 20.10.2018 |
balletbeautlful.com | 20.10.2018 |
bargalnjunkie.com | 20.10.2018 |
payselector.com | 21.10.2018 |
tagsmediaget.com | 02.11.2018 |
hs-payments.com | 16.11.2018 |
ordercheckpays.com | 19.11.2018 |
geisseie.com | 24.11.2018 |
gtmproc.com | 29.11.2018 |
livegetpay.com | 18.12.2018 |
sydneysalonsupplies.com | 18.12.2018 |
newrelicnet.com | 19.12.2018 |
nr-public.com | 03.01.2019 |
cloudodesc.com | 04.01.2019 |
ajaxstatic.com | 11.01.2019 |
livecheckpay.com | 21.01.2019 |
asianfoodgracer.com | 25.01.2019 |
Familia G-Analytics
Esta familia de sniffers úsase para roubar tarxetas de clientes das tendas en liña. O primeiro nome de dominio utilizado polo grupo rexistrouse en abril de 2016, o que pode indicar que o grupo comezou a actividade a mediados de 2016.
Na campaña actual, o grupo utiliza nomes de dominio que imitan servizos da vida real, como Google Analytics e jQuery, enmascarando a actividade dos sniffers con scripts lexítimos e nomes de dominio similares aos lexítimos. Os sitios que executaban o CMS Magento foron atacados.
Como se implementa G-Analytics no código dunha tenda en liña
Unha característica distintiva desta familia é o uso de varios métodos para roubar a información de pago dos usuarios. Ademais da clásica inxección de código JavaScript no lado do cliente do sitio, o grupo criminal tamén utilizou técnicas de inxección de código no lado do servidor do sitio, é dicir, scripts PHP que procesan os datos introducidos polo usuario. Esta técnica é perigosa porque dificulta que os investigadores de terceiros detecten código malicioso. Os especialistas do Grupo IB descubriron unha versión dun sniffer incrustado no código PHP do sitio, usando un dominio como porta dittm.org.
Tamén se descubriu unha versión inicial dun sniffer que usa o mesmo dominio para recoller datos roubados dittm.org, pero esta versión está pensada para a instalación no lado do cliente dunha tenda en liña.
Máis tarde, o grupo cambiou de táctica e empezou a concentrarse máis en ocultar actividade maliciosa e camuflaxe.
A principios de 2017, o grupo comezou a utilizar o dominio jquery-js.com, disfrazado de CDN para jQuery: ao ir ao sitio dos atacantes, o usuario é redirixido a un sitio lexítimo jquery.com.
E a mediados de 2018, o grupo adoptou o nome de dominio g-analytics.com e comezou a disfrazar as actividades do sniffer como un servizo lexítimo de Google Analytics.
Análise de versións
Durante a análise dos dominios utilizados para almacenar o código sniffer, comprobouse que o sitio contén un gran número de versións, que se diferencian pola presenza de ofuscación, así como pola presenza ou ausencia de código inalcanzable engadido ao ficheiro para distraer a atención. e ocultar código malicioso.
Total no sitio jquery-js.com Identificáronse seis versións de sniffers. Estes sniffers envían os datos roubados a un enderezo situado no mesmo sitio web que o propio sniffer: hxxps://jquery-js[.]com/latest/jquery.min.js:
- hxxps://jquery-js[.]com/jquery.min.js
- hxxps://jquery-js[.]com/jquery.2.2.4.min.js
- hxxps://jquery-js[.]com/jquery.1.8.3.min.js
- hxxps://jquery-js[.]com/jquery.1.6.4.min.js
- hxxps://jquery-js[.]com/jquery.1.4.4.min.js
- hxxps://jquery-js[.]com/jquery.1.12.4.min.js
Dominio posterior g-analytics.com, utilizado polo grupo en ataques desde mediados de 2018, serve como repositorio para máis sniffers. En total, descubríronse 16 versións diferentes do sniffer. Neste caso, a porta para o envío de datos roubados estaba disfrazada de ligazón a un formato de imaxe 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
Monetización de datos roubados
O grupo criminal monetiza os datos roubados vendendo tarxetas a través dunha tenda subterránea especialmente creada que ofrece servizos aos cartóns. A análise dos dominios utilizados polos atacantes permitiunos determinalo google-analytics.cm foi rexistrado polo mesmo usuario que o dominio cardz.vc. Dominio cardz.vc refírese a unha tenda que vendía tarxetas bancarias roubadas Cardsurfs (Flysurfs), que gañou popularidade nos tempos da actividade da plataforma de negociación subterránea AlphaBay como unha tenda de venda de tarxetas bancarias roubadas mediante un sniffer.
Analizando o dominio analítico.é, situado no mesmo servidor que os dominios utilizados polos sniffers para recoller datos roubados, os especialistas do Grupo-IB descubriron un ficheiro que contén rexistros de roubos de cookies, que parece que foi abandonado posteriormente polo programador. Unha das entradas do rexistro contiña un dominio iozoz.com, que se utilizou anteriormente nun dos sniffers activos en 2016. Presumiblemente, este dominio foi usado anteriormente por un atacante para recoller tarxetas roubadas mediante un sniffer. Este dominio rexistrouse nun enderezo de correo electrónico [protexido por correo electrónico], que tamén se utilizaba para rexistrar dominios cardz.su и cardz.vc, relacionada coa tenda de carding Cardsurfs.
A partir dos datos obtidos, pódese supoñer que a familia de sniffers G-Analytics e a tenda subterránea que vende tarxetas bancarias Cardsurfs son xestionadas polas mesmas persoas, e a tenda úsase para vender tarxetas bancarias roubadas mediante o sniffer.
A Infraestrutura
Домен | Data de descubrimento/aparición |
---|---|
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 |
analítico.to | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analítico.é | 28.12.2018 |
google-analytics.cm | 17.01.2019 |
Familia Illum
Illum é unha familia de sniffers utilizados para atacar tendas en liña que executan o CMS Magento. Ademais de introducir código malicioso, os operadores deste sniffer tamén usan a introdución de formularios de pago falsos completos que envían datos a portas controladas por atacantes.
Ao analizar a infraestrutura de rede utilizada polos operadores deste sniffer, observouse unha gran cantidade de scripts maliciosos, exploits, formularios de pago falsos, así como unha colección de exemplos con sniffers maliciosos de competidores. A partir da información sobre as datas de aparición dos nomes de dominio utilizados polo grupo, pódese supoñer que a campaña comezou a finais de 2016.
Como se implementa Illum no código dunha tenda en liña
As primeiras versións do sniffer descubertas foron incrustadas directamente no código do sitio comprometido. Os datos roubados foron enviados a cdn.illum[.]pw/records.php, a porta foi codificada usando base 64.
Máis tarde, descubriuse unha versión empaquetada do sniffer que usa unha porta diferente: records.nstatistics[.]com/records.php.
Conforme
Análise do sitio web dos atacantes
Os especialistas do Grupo IB descubriron e analizaron un sitio web utilizado por este grupo criminal para almacenar ferramentas e recompilar información roubada.
Entre as ferramentas atopadas no servidor dos atacantes atopáronse scripts e exploits para aumentar os privilexios no sistema operativo Linux: por exemplo, o Linux Privilege Escalation Check Script desenvolvido por Mike Czumak, así como un exploit para CVE-2009-1185.
Os atacantes utilizaron dous exploits directamente para atacar tendas en liña:
Ademais, durante a análise do servidor descubríronse varias mostras de sniffers e formularios de pago falsos, utilizados polos atacantes para recoller información de pago de sitios pirateados. Como podes ver na seguinte lista, algúns scripts creáronse individualmente para cada sitio pirateado, mentres que se utilizou unha solución universal para certos CMS e pasarelas de pago. Por exemplo, guións segapay_standart.js и segapay_onpage.js deseñado para a súa implementación en sitios que utilizan a pasarela de pago Sage Pay.
Lista de scripts para varias pasarelas de pago
Guión | Pasarela de pago |
---|---|
|
//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 |
//paga agora[.]cf/?payment= | |
|
//paga agora[.]cf/?payment= |
|
//paymentnow[.]tk/?payment= |
Anfitrión pago agora[.]tk, usado como porta nun guión payment_forminsite.js, foi descuberto como subjectAltName en varios certificados relacionados co servizo CloudFlare. Ademais, o anfitrión contiña un guión mal.js. A xulgar polo nome do script, podería usarse como parte da explotación de CVE-2016-4010, grazas ao cal é posible inxectar código malicioso no pé de páxina dun sitio que executa CMS Magento. O host utilizou este script como porta request.requestnet[.]tkusando o mesmo certificado que o host pago agora[.]tk.
Formularios de pago falsos
A figura seguinte mostra un exemplo de formulario para introducir datos da tarxeta. Este formulario utilizouse para infiltrarse nunha tenda en liña e roubar datos da tarxeta.
A seguinte figura mostra un exemplo dun formulario de pago de PayPal falso que os atacantes utilizaron para infiltrarse en sitios con este método de pago.
A Infraestrutura
Домен | Data de descubrimento/aparición |
---|---|
cdn.illum.pw | 27/11/2016 |
records.nstatistics.com | 06/09/2018 |
solicitude.pagar agora.cf | 25/05/2018 |
pago agora.tk | 16/07/2017 |
liña de pago.tk | 01/03/2018 |
paymentpal.cf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
Café da familia Mokko
A familia de sniffers CoffeMokko, deseñada para roubar tarxetas bancarias aos usuarios da tenda en liña, está en uso polo menos desde maio de 2017. Presumiblemente, os operadores desta familia de sniffers son o grupo criminal Grupo 1, descrito polos especialistas de RiskIQ en 2016. Sitios que executaban CMS como Magento, OpenCart, WordPress, osCommerce e Shopify foron atacados.
Como se implementa CoffeMokko no código dunha tenda en liña
Os operadores desta familia crean sniffer únicos para cada infección: o ficheiro sniffer está situado no directorio src ou js no servidor dos atacantes. A incorporación ao código do sitio realízase a través dunha ligazón directa ao sniffer.
O código sniffer codifica os nomes dos campos do formulario dos que hai que roubar os datos. O sniffer tamén verifica se o usuario está na páxina de pago comprobando a lista de palabras clave co enderezo actual do usuario.
Algunhas versións descubertas do sniffer estaban ofuscadas e contiñan unha cadea cifrada na que se almacenaba a matriz principal de recursos: contiña os nomes dos campos de formulario para varios sistemas de pago, así como o enderezo da porta á que debían enviarse os datos roubados.
A información de pago roubada foi enviada a un script no servidor dos atacantes ao longo do camiño /savePayment/index.php ou /tr/index.php. Presumiblemente, este script úsase para enviar datos desde a porta ao servidor principal, que consolida os datos de todos os sniffers. Para ocultar os datos transmitidos, toda a información de pago da vítima está cifrada mediante base 64, e despois ocorren varias substitucións de caracteres:
- o carácter "e" substitúese por ":"
- o símbolo "w" substitúese por "+"
- o carácter "o" substitúese por "%"
- o carácter "d" substitúese por "#"
- o carácter "a" substitúese por "-"
- o símbolo "7" substitúese por "^"
- o carácter "h" substitúese por "_"
- o símbolo "T" substitúese por "@"
- o carácter "0" substitúese por "/"
- o carácter "Y" substitúese por "*"
Como resultado das substitucións de caracteres codificadas usando base 64 Os datos non se poden decodificar sen realizar a conversión inversa.
Así se ve un fragmento de código sniffer que non foi ofuscado:
Análise de infraestruturas
Nas primeiras campañas, os atacantes rexistraron nomes de dominio similares aos dos sitios de compras en liña lexítimos. O seu dominio pode diferir do lexítimo por un símbolo ou outro TLD. Os dominios rexistrados usáronse para almacenar o código sniffer, un enlace ao que estaba incrustado no código da tenda.
Este grupo tamén utilizou nomes de dominio que lembran os populares complementos de jQuery (slickjs[.]org para sitios que usan o complemento slick.js), pasarelas de pago (sagecdn[.]org para sitios que utilizan o sistema de pago Sage Pay).
Máis tarde, o grupo comezou a crear dominios cuxos nomes non tiñan nada que ver co dominio da tenda nin co tema da tenda.
Cada dominio correspondía a un sitio no que se creou o directorio /js ou /src. Os scripts sniffer almacenáronse neste directorio: un sniffer por cada infección nova. O sniffer foi incrustado no código do sitio web a través dunha ligazón directa, pero en casos raros, os atacantes modificaron un dos ficheiros do sitio web e engadiron código malicioso a el.
Análise de código
Primeiro algoritmo de ofuscación
Nalgunhas mostras descubertas de sniffer desta familia, o código estaba ofuscado e contiña datos cifrados necesarios para que o sniffer funcione: en particular, o enderezo da porta de sniffer, unha lista de campos do formulario de pago e, nalgúns casos, o código dun falso. formulario de pago. No código dentro da función, os recursos foron cifrados usando XOR pola clave que se pasou como argumento para a mesma función.
Ao descifrar a cadea coa clave adecuada, única para cada mostra, podes obter unha cadea que conteña todas as cadeas do código sniffer separadas por un carácter separador.
Segundo algoritmo de ofuscación
En mostras posteriores de sniffers desta familia utilizouse un mecanismo de ofuscación diferente: neste caso, os datos foron cifrados mediante un algoritmo autoescrito. Pasouse unha cadea que contén datos cifrados necesarios para que o detector funcione como argumento para a función de descifrado.
Usando a consola do navegador, podes descifrar os datos cifrados e obter unha matriz que conteña recursos sniffer.
Conexión aos primeiros ataques de MageCart
Durante a análise dun dos dominios utilizados polo grupo como pasarela para recoller datos roubados, comprobouse que este dominio despregou unha infraestrutura para o roubo de tarxetas de crédito, idéntica á utilizada polo Grupo 1, un dos primeiros grupos,
Atopáronse dous ficheiros sobre o anfitrión da familia de sniffers CoffeMokko:
- mago.js — ficheiro que contén o código sniffer do Grupo 1 co enderezo da porta js-cdn.link
- mag.php — Script PHP responsable da recollida de datos roubados polo sniffer
Contido do ficheiro mage.js
Tamén se determinou que os primeiros dominios utilizados polo grupo detrás da familia de sniffers CoffeMokko rexistráronse o 17 de maio de 2017:
- ligazón-js[.]ligazón
- info-js[.]ligazón
- track-js[.]ligazón
- mapa-js[.]ligazón
- ligazón smart-js[.]
O formato destes nomes de dominio coincide cos nomes de dominio do Grupo 1 que se utilizaron nos ataques de 2016.
En base aos feitos descubertos, pódese supoñer que existe unha conexión entre os operadores dos sniffers CoffeMokko e o grupo criminal Grupo 1. Presumiblemente, os operadores de CoffeMokko poderían ter prestado ferramentas e software dos seus predecesores para roubar tarxetas. Non obstante, é máis probable que o grupo criminal detrás do uso da familia de sniffers CoffeMokko sexan as mesmas persoas que levaron a cabo os ataques do Grupo 1. Tras a publicación do primeiro informe sobre as actividades do grupo criminal, todos os seus nomes de dominio foron bloqueáronse e estudáronse e describíronse detalladamente as ferramentas. O grupo viuse obrigado a tomar un descanso, perfeccionar as súas ferramentas internas e reescribir o código sniffer para continuar os seus ataques e non ser detectado.
A Infraestrutura
Домен | Data de descubrimento/aparición |
---|---|
link-js.link | 17.05.2017 |
info-js.link | 17.05.2017 |
track-js.link | 17.05.2017 |
mapa-js.link | 17.05.2017 |
smart-js.link | 17.05.2017 |
adorebeauty.org | 03.09.2017 |
seguridade-pagamento.su | 03.09.2017 |
braincdn.org | 04.09.2017 |
sagecdn.org | 04.09.2017 |
slickjs.org | 04.09.2017 |
oakandfort.org | 10.09.2017 |
citywlnery.org | 15.09.2017 |
dobell.su | 04.10.2017 |
childrensplayclothing.org | 31.10.2017 |
jewsondirect.com | 05.11.2017 |
shop-rnib.org | 15.11.2017 |
closetlondon.org | 16.11.2017 |
misshaus.org | 28.11.2017 |
battery-force.org | 01.12.2017 |
kik-vape.org | 01.12.2017 |
greatfurnituretradingco.org | 02.12.2017 |
etradesupply.org | 04.12.2017 |
replacemyremote.org | 04.12.2017 |
todo-sobre-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 |
blackriveimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parques.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
otocap.org | 15.01.2018 |
christohperward.org | 27.01.2018 |
coffetea.org | 31.01.2018 |
energycoffe.org | 31.01.2018 |
energytea.org | 31.01.2018 |
teacoffe.net | 31.01.2018 |
adaptivecss.org | 01.03.2018 |
coffemokko.com | 01.03.2018 |
londontea.net | 01.03.2018 |
ukcoffe.com | 01.03.2018 |
labbe.biz | 20.03.2018 |
batterynart.com | 03.04.2018 |
btosports.net | 09.04.2018 |
chicksaddlery.net | 16.04.2018 |
paypaypay.org | 11.05.2018 |
ar500arnor.com | 26.05.2018 |
authorizecdn.com | 28.05.2018 |
slickmin.com | 28.05.2018 |
bannerbuzz.info | 03.06.2018 |
kandypens.net | 08.06.2018 |
mylrendyphone.com | 15.06.2018 |
freshchat.info | 01.07.2018 |
3lift.org | 02.07.2018 |
abtasty.net | 02.07.2018 |
mechat.info | 02.07.2018 |
zoplm.com | 02.07.2018 |
zapaljs.com | 02.09.2018 |
foodandcot.com | 15.09.2018 |
freshdepor.com | 15.09.2018 |
swappastore.com | 15.09.2018 |
verywellfitnesse.com | 15.09.2018 |
elegrina.com | 18.11.2018 |
majsurplus.com | 19.11.2018 |
top5value.com | 19.11.2018 |
Fonte: www.habr.com