Quase todos nós utilizamos os serviços de lojas online, o que significa que mais cedo ou mais tarde corremos o risco de nos tornarmos vítimas de farejadores de JavaScript - códigos especiais que os invasores implementam em um site para roubar dados de cartões bancários, endereços, logins e senhas de usuários .
Quase 400 mil utilizadores do site e da aplicação móvel da British Airways já foram afetados por farejadores, bem como visitantes do site britânico da gigante desportiva FILA e da distribuidora de bilhetes americana Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris - estes e muitos outros sistemas de pagamento foram infectados.
O analista do Threat Intelligence Group-IB, Viktor Okorokov, fala sobre como os sniffers se infiltram no código do site e roubam informações de pagamento, bem como quais CRMs eles atacam.
"Ameaça oculta"
Acontece que durante muito tempo os farejadores de JS permaneceram fora da vista dos analistas de antivírus, e os bancos e sistemas de pagamento não os viam como uma ameaça séria. E completamente em vão. Especialistas do Grupo-IB
Detenhamo-nos detalhadamente nas quatro famílias de farejadores estudadas durante o estudo.
Família ReactGet
Sniffers da família ReactGet são usados para roubar dados de cartões bancários em sites de compras online. O sniffer pode funcionar com um grande número de sistemas de pagamento diferentes usados no site: um valor de parâmetro corresponde a um sistema de pagamento, e versões individuais detectadas do sniffer podem ser usadas para roubar credenciais, bem como para roubar dados de cartões bancários de pagamento formas de vários sistemas de pagamento ao mesmo tempo, como o chamado sniffer universal. Verificou-se que, em alguns casos, os invasores realizam ataques de phishing aos administradores de lojas online para obter acesso ao painel administrativo do site.
Uma campanha usando essa família de farejadores começou em maio de 2017; sites que executavam plataformas CMS e Magento, Bigcommerce e Shopify foram atacados.
Como o ReactGet é implementado no código de uma loja online
Além da implementação “clássica” de um script via link, os operadores da família de farejadores ReactGet utilizam uma técnica especial: por meio de código JavaScript, verificam se o endereço atual onde o usuário está localizado atende a determinados critérios. O código malicioso só será executado se a substring estiver presente no URL atual checkout ou check-out em uma etapa, uma página/, fora/uma página, check-out/um, saída/um. Assim, o código sniffer será executado exatamente no momento em que o usuário efetuar o pagamento das compras e inserir os dados de pagamento no formulário do site.
Este farejador usa uma técnica não padronizada. Os dados pessoais e de pagamento da vítima são coletados em conjunto e codificados usando base64, e então a string resultante é usada como parâmetro para enviar uma solicitação ao site do invasor. Na maioria das vezes, o caminho para o portão imita um arquivo JavaScript, por exemplo resp.js, data.js e assim por diante, mas também são usados links para arquivos de imagem, GIF и JPG. A peculiaridade é que o sniffer cria um objeto de imagem medindo 1 por 1 pixel e usa como parâmetro o link recebido anteriormente src Imagens. Ou seja, para o usuário tal solicitação no trânsito parecerá uma solicitação de uma imagem comum. Uma técnica semelhante foi usada na família de farejadores ImageID. Além disso, a técnica de usar uma imagem de 1 por 1 pixel é usada em muitos scripts de análise online legítimos, o que também pode enganar o usuário.
Análise de Versão
A análise dos domínios ativos usados pelos operadores do sniffer ReactGet revelou muitas versões diferentes desta família de farejadores. As versões diferem na presença ou ausência de ofuscação e, além disso, cada sniffer é projetado para um sistema de pagamento específico que processa pagamentos com cartão bancário para lojas online. Após classificar o valor do parâmetro correspondente ao número da versão, os especialistas do Grupo-IB receberam uma lista completa das variações do sniffer disponíveis e, pelos nomes dos campos do formulário que cada sniffer procura no código da página, identificaram os sistemas de pagamento que o farejador se destina.
Lista de sniffers e seus sistemas de pagamento correspondentes
URL do farejador | Sistema de Pagamentos |
---|---|
|
Authorize.Net |
Salvar cartões | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Rápido |
Authorize.Net | |
Adyen | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
Monéris | |
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 |
Monéris | |
|
Sage Pay |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
Authorize.Net |
|
Monéris |
|
Sage Pay |
Sage Pay | |
|
Chase Paymenttech |
|
Authorize.Net |
|
Adyen |
PsiGate | |
Fonte cibernética | |
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 | |
Fonte cibernética | |
|
Authorize.Net |
|
Sage Pay |
Realex | |
|
Fonte cibernética |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rápido |
|
Sage Pay |
Sage Pay | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
Primeiro Portal Global de Dados |
Authorize.Net | |
Authorize.Net | |
Monéris | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Stripe | |
|
Authorize.Net |
eWAY Rápido | |
|
Sage Pay |
Authorize.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
Sage Pay |
|
Sage Pay |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Authorize.Net |
eWAY Rápido | |
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 |
|
Primeiro Portal Global de Dados |
|
PsiGate |
Authorize.Net | |
Authorize.Net | |
|
Monéris |
|
Authorize.Net |
Sage Pay | |
|
Verisign |
Monéris | |
PayPal | |
|
LinkPoint |
|
Westpac PayWay |
Authorize.Net | |
|
Monéris |
|
PayPal |
Adyen | |
PayPal | |
Authorize.Net | |
USAePay | |
EBizCharge | |
|
Authorize.Net |
|
Verisign |
Verisign | |
Authorize.Net | |
|
PayPal |
|
Monéris |
Authorize.Net | |
|
PayPal |
PayPal | |
Westpac PayWay | |
Authorize.Net | |
|
Authorize.Net |
Sage Pay | |
|
Verisign |
|
Authorize.Net |
|
PayPal |
|
PayFort |
Fonte cibernética | |
Fluxo de pagamento Pro do PayPal | |
|
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 |
|
Sílex |
|
PayPal |
Sage Pay | |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
|
Stripe |
|
Zebra gorda |
Sage Pay | |
|
Authorize.Net |
Primeiro Portal Global de Dados | |
|
Authorize.Net |
|
eWAY Rápido |
Adyen | |
|
PayPal |
Serviços para comerciantes do QuickBooks | |
Verisign | |
|
Sage Pay |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Sage Pay | |
|
Authorize.Net |
|
eWAY Rápido |
Authorize.Net | |
|
ANZ eGate |
|
PayPal |
Fonte cibernética | |
|
Authorize.Net |
Sage Pay | |
|
Realex |
Fonte cibernética | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rápido | |
|
Sage Pay |
|
Sage Pay |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
Primeiro Portal Global de Dados |
Authorize.Net | |
Authorize.Net | |
|
Monéris |
|
Authorize.Net |
|
PayPal |
Sniffer de senha
Uma das vantagens dos sniffers de JavaScript trabalhando no lado cliente de um site é sua versatilidade: códigos maliciosos embutidos em um site podem roubar qualquer tipo de dado, sejam dados de pagamento ou login e senha de uma conta de usuário. Os especialistas do Group-IB descobriram uma amostra de um sniffer pertencente à família ReactGet, projetado para roubar endereços de e-mail e senhas de usuários do site.
Interseção com sniffer ImageID
Durante a análise de uma das lojas infectadas, constatou-se que seu site foi infectado duas vezes: além do código malicioso do sniffer da família ReactGet, foi detectado código do sniffer da família ImageID. Essa sobreposição pode ser uma evidência de que os operadores por trás de ambos os sniffers usam técnicas semelhantes para injetar código malicioso.
Farejador universal
Uma análise de um dos nomes de domínio associados à infraestrutura do sniffer ReactGet revelou que o mesmo usuário registrou três outros nomes de domínio. Esses três domínios imitavam os domínios de sites da vida real e eram usados anteriormente para hospedar sniffers. Ao analisar o código de três sites legítimos, um sniffer desconhecido foi detectado e análises posteriores mostraram que se tratava de uma versão melhorada do sniffer ReactGet. Todas as versões monitoradas anteriormente desta família de sniffers eram voltadas para um único sistema de pagamento, ou seja, cada sistema de pagamento exigia uma versão especial do sniffer. Porém, neste caso, foi descoberta uma versão universal do sniffer que é capaz de roubar informações de formulários relacionados a 15 sistemas de pagamento diferentes e módulos de sites de comércio eletrônico para realização de pagamentos online.
Assim, no início do trabalho, o farejador buscou campos básicos do formulário contendo informações pessoais da vítima: nome completo, endereço físico, telefone.
O sniffer pesquisou então mais de 15 prefixos diferentes correspondentes a diferentes sistemas de pagamento e módulos de pagamento online.
Em seguida, os dados pessoais e as informações de pagamento da vítima foram coletados em conjunto e enviados para um site controlado pelo invasor: neste caso específico, foram descobertas duas versões do sniffer universal ReactGet, localizadas em dois sites hackeados diferentes. No entanto, ambas as versões enviaram dados roubados para o mesmo site hackeado zoobashop. com.
A análise dos prefixos que o sniffer utilizou para procurar campos contendo informações de pagamento da vítima permitiu-nos determinar que esta amostra de sniffer se destinava aos seguintes sistemas de pagamento:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- Data Cash (MasterCard)
- Pagamentos Realex
- PsiGate
- Sistemas de pagamento Heartland
Quais ferramentas são usadas para roubar informações de pagamento?
A primeira ferramenta, descoberta durante a análise da infraestrutura dos invasores, é utilizada para ofuscar scripts maliciosos responsáveis pelo roubo de cartões bancários. Um script bash usando a CLI do projeto foi descoberto em um dos hosts do invasor
A segunda ferramenta descoberta foi projetada para gerar o código responsável por carregar o sniffer principal. Esta ferramenta gera código JavaScript que verifica se o usuário está na página de pagamento, pesquisando strings no endereço atual do usuário checkout, carrinho e assim por diante, e se o resultado for positivo, o código carrega o sniffer principal do servidor do invasor. Para ocultar atividades maliciosas, todas as linhas, incluindo linhas de teste para determinar a página de pagamento, bem como um link para o sniffer, são codificadas usando base64.
Ataques de phishing
Uma análise da infraestrutura de rede dos invasores revelou que o grupo criminoso costuma usar phishing para obter acesso ao painel administrativo da loja online alvo. Os invasores registram um domínio que é visualmente semelhante ao domínio de uma loja e, em seguida, implantam nele um formulário de login falso do painel de administração Magento. Se tiverem sucesso, os invasores terão acesso ao painel administrativo do Magento CMS, o que lhes dá a oportunidade de editar componentes do site e implementar um sniffer para roubar dados de cartão de crédito.
Infra-estrutura
Nome de domínio | Data da descoberta/aparecimento |
---|---|
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 |
www.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 |
Família G-Analytics
Esta família de farejadores é usada para roubar cartões de clientes de lojas online. O primeiro nome de domínio utilizado pelo grupo foi registado em abril de 2016, o que pode indicar que o grupo iniciou atividade em meados de 2016.
Na campanha atual, o grupo utiliza nomes de domínio que imitam serviços da vida real, como Google Analytics e jQuery, mascarando a atividade de sniffers com scripts legítimos e nomes de domínio semelhantes aos legítimos. Sites que executam o Magento CMS foram atacados.
Como o G-Analytics é implementado no código de uma loja online
Uma característica distintiva desta família é o uso de vários métodos para roubar informações de pagamento dos usuários. Além da clássica injeção de código JavaScript no lado cliente do site, o grupo criminoso também utilizou técnicas de injeção de código no lado servidor do site, nomeadamente scripts PHP que processam dados inseridos pelo utilizador. Essa técnica é perigosa porque dificulta a detecção de códigos maliciosos por pesquisadores terceirizados. Especialistas do Group-IB descobriram uma versão de um sniffer embutido no código PHP do site, usando um domínio como porta dittm.org.
Também foi descoberta uma versão inicial de um sniffer que usa o mesmo domínio para coletar dados roubados dittm.org, mas esta versão se destina à instalação no lado do cliente de uma loja online.
Mais tarde, o grupo mudou de tática e começou a se concentrar mais em ocultar atividades maliciosas e camuflar-se.
No início de 2017, o grupo passou a utilizar o domínio jquery-js.com, disfarçado de CDN para jQuery: ao acessar o site dos invasores, o usuário é redirecionado para um site legítimo jquery. com.
E em meados de 2018, o grupo adotou o nome de domínio g-analytics.com e começou a disfarçar as atividades do sniffer como um serviço legítimo do Google Analytics.
Análise de Versão
Durante a análise dos domínios utilizados para armazenar código sniffer, constatou-se que o site contém um grande número de versões, que se diferenciam pela presença de ofuscação, bem como pela presença ou ausência de código inacessível adicionado ao arquivo para distrair a atenção e ocultar código malicioso.
Total no site jquery-js.com Seis versões de farejadores foram identificadas. Esses farejadores enviam os dados roubados para um endereço localizado no mesmo site do próprio farejador: 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
Domínio posterior g-analytics.com, usado pelo grupo em ataques desde meados de 2018, serve como repositório para mais farejadores. No total, foram descobertas 16 versões diferentes do farejador. Nesse caso, a porta de envio dos dados roubados estava disfarçada como um link para um formato de imagem 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
Monetização de dados roubados
O grupo criminoso monetiza os dados roubados vendendo cartões por meio de uma loja clandestina especialmente criada que presta serviços aos carteiros. A análise dos domínios utilizados pelos atacantes permitiu-nos determinar que google-analytics.cm foi registrado pelo mesmo usuário do domínio cartãoz.vc. Domínio cartãoz.vc refere-se a uma loja que vende cartões bancários roubados Cardsurfs (Flysurfs), que ganhou popularidade na época da atividade da plataforma de negociação clandestina AlphaBay como uma loja que vendia cartões bancários roubados por meio de um farejador.
Analisando o domínio analítico.is, localizado no mesmo servidor dos domínios usados pelos sniffers para coletar dados roubados, os especialistas do Grupo-IB descobriram um arquivo contendo logs de ladrões de cookies, que parece ter sido posteriormente abandonado pelo desenvolvedor. Uma das entradas no log continha um domínio iozoz.com, que já foi utilizado em um dos farejadores ativos em 2016. Presumivelmente, este domínio foi usado anteriormente por um invasor para coletar cartões roubados usando um sniffer. Este domínio foi registrado em um endereço de e-mail [email protegido], que também foi usado para registrar domínios cardz.su и cartãoz.vc, relacionado à loja de cardados Cardsurfs.
Com base nos dados obtidos, pode-se supor que a família de farejadores G-Analytics e a loja clandestina de venda de cartões bancários Cardsurfs são administradas pelas mesmas pessoas, e a loja é utilizada para vender cartões bancários roubados por meio do sniffer.
Infra-estrutura
Nome de domínio | Data da descoberta/aparecimento |
---|---|
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.para | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analítico.is | 28.12.2018 |
google-analytics.cm | 17.01.2019 |
Família Illum
Illum é uma família de farejadores usados para atacar lojas online que executam o CMS Magento. Além de introduzir código malicioso, os operadores deste sniffer também utilizam a introdução de formulários de pagamento falsos completos que enviam dados para portões controlados por invasores.
Ao analisar a infraestrutura de rede utilizada pelos operadores deste sniffer, notou-se um grande número de scripts maliciosos, exploits, formas de pagamento falsas, bem como uma coleção de exemplos com sniffers maliciosos de concorrentes. Com base nas informações sobre as datas de aparecimento dos nomes de domínio utilizados pelo grupo, pode-se presumir que a campanha começou no final de 2016.
Como o Illum é implementado no código de uma loja online
As primeiras versões do sniffer descobertas foram incorporadas diretamente no código do site comprometido. Os dados roubados foram enviados para cdn.illum[.]pw/records.php, a porta foi codificada usando base64.
Mais tarde, foi descoberta uma versão empacotada do sniffer que usa uma porta diferente - records.nstatistics[.]com/records.php.
Conforme
Análise do site dos invasores
Especialistas do Grupo-IB descobriram e analisaram um site utilizado por este grupo criminoso para armazenar ferramentas e coletar informações roubadas.
Entre as ferramentas encontradas no servidor dos invasores estavam scripts e exploits para escalar privilégios no sistema operacional Linux: por exemplo, o Linux Privilege Escalation Check Script desenvolvido por Mike Czumak, bem como um exploit para CVE-2009-1185.
Os invasores usaram duas explorações diretamente para atacar lojas online:
Além disso, durante a análise do servidor, foram descobertas diversas amostras de sniffers e formulários de pagamento falsos, usados por invasores para coletar informações de pagamento de sites hackeados. Como você pode ver na lista abaixo, alguns scripts foram criados individualmente para cada site hackeado, enquanto uma solução universal foi usada para determinados CMS e gateways de pagamento. Por exemplo, roteiros segapay_standart.js и segapay_onpage.js projetado para implementação em sites que usam o gateway de pagamento Sage Pay.
Lista de scripts para vários gateways de pagamento
Escrita | Gateway de pagamento |
---|---|
|
//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 |
//pagar agora[.]cf/?payment= | |
|
//pagar agora[.]cf/?payment= |
|
//pagamentoagora[.]tk/?payment= |
Host pagamento agora[.]tk, usado como portão em um script pagamento_forminsite.js, foi descoberto como assuntoAltName em diversos certificados relacionados ao serviço CloudFlare. Além disso, o host continha um script mal.js. A julgar pelo nome do script, ele poderia ser utilizado como parte da exploração do CVE-2016-4010, graças ao qual é possível injetar código malicioso no rodapé de um site rodando CMS Magento. O host usou este script como uma porta solicitação.requestnet[.]tkusando o mesmo certificado do host pagamento agora[.]tk.
Formulários de pagamento falsos
A figura abaixo mostra um exemplo de formulário para inserção de dados do cartão. Este formulário foi usado para se infiltrar em uma loja online e roubar dados de cartões.
A figura a seguir mostra um exemplo de formulário de pagamento falso do PayPal que foi usado por invasores para se infiltrar em sites com esse método de pagamento.
Infra-estrutura
Nome de domínio | Data da descoberta/aparecimento |
---|---|
cdn.illum.pw | 27/11/2016 |
registros.nstatistics.com | 06/09/2018 |
solicitação.payrightnow.cf | 25/05/2018 |
pagamento agora.tk | 16/07/2017 |
linha de pagamento.tk | 01/03/2018 |
pagamentopal.cf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
Família CoffeeMokko
A família de farejadores CoffeMokko, projetada para roubar cartões bancários de usuários de lojas online, está em uso pelo menos desde maio de 2017. Presumivelmente, os operadores desta família de farejadores são o grupo criminoso Grupo 1, descrito pelos especialistas do RiskIQ em 2016. Sites que executam CMSs como Magento, OpenCart, WordPress, osCommerce e Shopify foram atacados.
Como o CoffeMokko é implementado no código de uma loja online
Os operadores desta família criam farejadores exclusivos para cada infecção: o arquivo do farejador está localizado no diretório src ou js no servidor dos invasores. A incorporação no código do site é feita por meio de um link direto para o sniffer.
O código sniffer codifica os nomes dos campos do formulário dos quais os dados precisam ser roubados. O sniffer também verifica se o usuário está na página de pagamento, verificando a lista de palavras-chave com o endereço atual do usuário.
Algumas versões descobertas do sniffer foram ofuscadas e continham uma string criptografada na qual o conjunto principal de recursos era armazenado: continha os nomes dos campos de formulário de vários sistemas de pagamento, bem como o endereço do portão para o qual os dados roubados deveriam ser enviados.
As informações de pagamento roubadas foram enviadas para um script no servidor dos invasores ao longo do caminho /savePayment/index.php ou /tr/index.php. Presumivelmente, este script é usado para enviar dados do portão para o servidor principal, que consolida os dados de todos os farejadores. Para ocultar os dados transmitidos, todas as informações de pagamento da vítima são criptografadas usando base64e, em seguida, ocorrem várias substituições de caracteres:
- o caractere "e" é substituído por ":"
- o símbolo "w" é substituído por "+"
- o caractere "o" é substituído por "%"
- o caractere "d" é substituído por "#"
- o caractere "a" é substituído por "-"
- o símbolo "7" é substituído por "^"
- o caractere "h" é substituído por "_"
- o símbolo "T" é substituído por "@"
- o caractere "0" é substituído por "/"
- o caractere "Y" é substituído por "*"
Como resultado de substituições de caracteres codificadas usando base64 Os dados não podem ser decodificados sem realizar a conversão reversa.
Esta é a aparência de um fragmento de código sniffer que não foi ofuscado:
Análise de Infraestrutura
Nas primeiras campanhas, os invasores registraram nomes de domínio semelhantes aos de sites legítimos de compras online. Seu domínio pode diferir do legítimo por um símbolo ou outro TLD. Domínios registrados foram usados para armazenar código sniffer, cujo link foi incorporado ao código da loja.
Este grupo também usou nomes de domínio que lembram plug-ins jQuery populares (slickjs[.]org para sites que usam o plugin slick.js), gateways de pagamento (sagecdn[.]org para sites que usam o sistema de pagamento Sage Pay).
Posteriormente, o grupo começou a criar domínios cujos nomes nada tinham a ver com o domínio da loja ou com o tema da loja.
Cada domínio correspondia a um site no qual o diretório foi criado / js ou / src. Os scripts do sniffer foram armazenados neste diretório: um sniffer para cada nova infecção. O sniffer foi incorporado ao código do site por meio de um link direto, mas em casos raros, os invasores modificaram um dos arquivos do site e adicionaram código malicioso a ele.
Análise de código
Primeiro algoritmo de ofuscação
Em algumas amostras descobertas de farejadores desta família, o código foi ofuscado e continha dados criptografados necessários para o funcionamento do farejador: em particular, o endereço do portão do farejador, uma lista de campos do formulário de pagamento e, em alguns casos, o código de um falso Formulário de pagamento. No código dentro da função, os recursos foram criptografados usando XOR pela chave que foi passada como argumento para a mesma função.
Ao descriptografar a string com a chave apropriada, exclusiva para cada amostra, você pode obter uma string contendo todas as strings do código sniffer separadas por um caractere separador.
Segundo algoritmo de ofuscação
Em amostras posteriores de farejadores desta família, foi utilizado um mecanismo de ofuscação diferente: neste caso, os dados foram criptografados usando um algoritmo auto-escrito. Uma string contendo dados criptografados necessários para o funcionamento do sniffer foi passada como argumento para a função de descriptografia.
Usando o console do navegador, você pode descriptografar os dados criptografados e obter uma matriz contendo recursos do sniffer.
Conexão com os primeiros ataques MageCart
Durante a análise de um dos domínios utilizados pelo grupo como gateway para coleta de dados roubados, constatou-se que esse domínio hospedava uma infraestrutura para roubo de cartões de crédito idêntica à utilizada pelo Grupo 1, um dos primeiros grupos,
Dois arquivos foram encontrados no host da família de farejadores CoffeMokko:
- mago.js — arquivo contendo código sniffer do Grupo 1 com endereço de portão js-cdn.link
- mag.php — Script PHP responsável por coletar dados roubados pelo sniffer
Conteúdo do arquivo mage.js
Também foi determinado que os primeiros domínios usados pelo grupo por trás da família de farejadores CoffeMokko foram registrados em 17 de maio de 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- mapa-js[.]link
- link inteligente-js[.]
O formato desses nomes de domínio corresponde aos nomes de domínio do Grupo 1 que foram usados nos ataques de 2016.
Com base nos fatos apurados, pode-se presumir que existe uma ligação entre os operadores dos farejadores CoffeMokko e o grupo criminoso Grupo 1. Presumivelmente, os operadores da CoffeMokko poderiam ter emprestado ferramentas e software dos seus antecessores para roubar cartões. No entanto, é mais provável que o grupo criminoso por trás do uso da família de farejadores CoffeMokko sejam as mesmas pessoas que realizaram os ataques do Grupo 1. Após a publicação do primeiro relatório sobre as atividades do grupo criminoso, todos os seus nomes de domínio foram bloqueado e as ferramentas foram estudadas detalhadamente e descritas. O grupo foi forçado a fazer uma pausa, refinar suas ferramentas internas e reescrever o código do sniffer para continuar seus ataques e permanecer sem ser detectado.
Infra-estrutura
Nome de domínio | Data da descoberta/aparecimento |
---|---|
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 |
adorobeauty.org | 03.09.2017 |
segurança-pagamento.su | 03.09.2017 |
braincdn.org | 04.09.2017 |
sagecdn.org | 04.09.2017 |
slickjs.org | 04.09.2017 |
carvalhoandfort.org | 10.09.2017 |
citywlnery.org | 15.09.2017 |
dobell.su | 04.10.2017 |
kidssplayclothing.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 |
bateria-force.org | 01.12.2017 |
kik-vape.org | 01.12.2017 |
www.greatfurnituretradingco.org | 02.12.2017 |
etradesupply.org | 04.12.2017 |
substituamyremote.org | 04.12.2017 |
tudo sobre tênis.org | 05.12.2017 |
mage-checkout.org | 05.12.2017 |
nililotan.org | 07.12.2017 |
lamooodbighat.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 |
parques.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
otocap.org | 15.01.2018 |
www.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 |
baterianart.com | 03.04.2018 |
btosports.net | 09.04.2018 |
chicksaddlery.net | 16.04.2018 |
paypaypay.org | 11.05.2018 |
ar500arnor.com | 26.05.2018 |
autorizecdn.com | 28.05.2018 |
slickmin.com | 28.05.2018 |
bannerbuzz.info | 03.06.2018 |
www.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 |
www.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: habr.com