• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Исследуем JavaScript-снифферы, размещаемые в онлайн-шопах

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
Исследуем JavaScript-снифферы, размещаемые в онлайн-шопах


От снифферов уже пострадали почти 400 000 пользователей сайта и мобильного приложения авиакомпании British Airways, а также посетители британского сайта спортивного гиганта FILA и американского дистрибьютора билетов Ticketmaster. Аналитик Threat Intelligence Group-IB Виктор Окороков рассказывает о том, как снифферы внедряются в код сайта и крадут платежную информацию, а также о том, какие CRM они атакуют.


«Скрытая угроза»

Так вышло, что долгое время JS-снифферы оставались вне поля зрения антивирусных аналитиков, а банки и платежные системы не видели в них серьезной угрозы. И совершенно напрасно. Отчет Group-IB стал первым исследованием даркнет-рынка снифферов, их инфраструктуры и способов монетизации, приносящей их создателям миллионы долларов. Мы выявили 38 семейств снифферов, из которых лишь 12 ранее были известны исследователям.

Остановимся подробно на четырех семействах снифферов, изученных в ходе исследования.


Семейство ReactGet

Снифферы семейства ReactGet применяются для кражи данных банковских карт на сайтах онлайн-магазинов. Сниффер может работать с большим количеством разных платежных систем, использующихся на сайте: одно значение параметра соответствует одной платежной системе, а отдельные обнаруженные версии сниффера могут использоваться для кражи учетных данных, а также для кражи данных банковских карт из платежных форм сразу нескольких платежных систем, как так называемый универсальный сниффер. Было установлено, что в некоторых случаях атакующие проводят фишинговые атаки на администраторов онлайн-магазинов с целью получения доступа в административную панель сайта.

Кампания с применением этого семейства снифферов началась в мае 2017 года, атаке подверглись сайты под управлением CMS и платформ Magento, Bigcommerce, Shopify.


Как ReactGet внедряется в код онлайн-магазина

Кроме «классического» внедрения скрипта по ссылке, операторы снифферов семейства ReactGet используют особую технику: при помощи JavaScript-кода проверяется, соответствует ли текущий адрес, на котором находится пользователь, определенным критериям. Вредоносный код будет запущен только в том случае, если в текущем URL-адресе присутствует подстрока checkout или onestepcheckout, onepage/, out/onepag, checkout/one, ckout/one. Таким образом, код сниффера исполнится именно в тот момент, когда пользователь перейдет к оплате покупок и введет платежную информацию в форму на сайте.

kzfzlrityshdouqlvh5ns14vlhm.png


Этот сниффер использует нестандартную технику. Платежные и персональные данные жертвы собираются вместе, кодируются при помощи base64, а затем полученная строка используется как параметр для отправки запроса на сайт злоумышленников. Чаще всего путь до гейта имитирует JavaScript-файл, к примеру resp.js, data.js и так далее, но также используются ссылки на файлы изображений, GIF и JPG. Особенность в том, что сниффер создает объект изображения размером 1 на 1 пиксель и использует полученную ранее ссылку как параметр src изображения. То есть для пользователя такой запрос в трафике будет выглядеть как запрос обычной картинки. Похожая техника была использована в снифферах семейства ImageID. Кроме того, техника с использованием изображения размером 1 на 1 пиксель применяется во многих легитимных скриптах онлайн-аналитики, что также может ввести пользователя в заблуждение.

jobfxmbqsrjqolrvo84fkstgrhi.png



Анализ версий

Анализ активных доменов, используемых операторами снифферов ReactGet, позволил обнаружить много разных версий снифферов этого семейства. Версии отличаются наличием или отсутствием обфускации, а кроме того, каждый сниффер предназначен для определенной платежной системы, обрабатывающей платежи по банковским картам для онлайн-магазинов. Перебрав значение параметра, соответствующего номеру версии, специалисты Group-IB получили полный список доступных вариаций снифферов, а по названиям полей форм, которые каждый сниффер ищет в коде страницы, определили платежные системы, на которые нацелен сниффер.

Список снифферов и соответствующих им платежных систем


Сниффер паролей

Одним из преимуществ JavaScript-снифферов, работающих на клиентской стороне сайта, является универсальность: внедренный на сайт вредоносный код способен похитить данные любого типа, будь то платежные данные или логин и пароль от пользовательского аккаунта. Специалисты Group-IB обнаружили образец сниффера, относящегося к семейству ReactGet, предназначенный для кражи адресов электронной почты и паролей пользователей сайта.

7x9cx1en90ze5etozgc6jmg5eh8.png



Пересечение со сниффером ImageID

В ходе анализа одного из зараженных магазинов было установлено, что его сайт подвергся заражению дважды: помимо вредоносного кода сниффера семейства ReactGet, был обнаружен код сниффера семейства ImageID. Данное пересечение может быть свидетельством того, что операторы, стоящие за использованием обоих снифферов, применяют схожие техники для внедрения вредоносного кода.

8sm0edvplxoguwsczm9ja3-g_ng.png



Универсальный сниффер

В ходе анализа одного из доменных имен, относящихся к инфраструктуре снифферов ReactGet, было установлено, что тот же пользователь зарегистрировал три других доменных имени. Эти три домена имитировали домены реально существующих сайтов и ранее использовались для размещения снифферов. При анализе кода трех легитимных сайтов был обнаружен неизвестный сниффер, а дальнейший анализ показал, что это усовершенствованная версия сниффера ReactGet. Все ранее отслеженные версии снифферов этого семейства были нацелены на какую-то одну платежную систему, то есть для каждой платежной системы требовалась специальная версия сниффера. Однако в данном случае была обнаружена универсальная версия сниффера, способная похищать информацию из форм, относящихся к 15 разным платежным системам и модулям ecommerce-сайтов для проведения онлайн-платежей.

Итак, в начале работы сниффер осуществлял поиск базовых полей формы, содержащих персональную информацию жертвы: полное имя, физический адрес, номер телефона.

g_pyvsjovjp7p6x2vlqzaqho5ey.png


Затем сниффер осуществлял поиск более чем по 15 разным префиксам, соответствующим разным платежным системам и модулям для онлайн-платежей.

ddtyasulurz4un7owfvlv-3xepu.png


Далее персональные данные жертвы и платежная информация собирались воедино и отправлялись на подконтрольный злоумышленнику сайт: в этом конкретном случае были обнаружены две версии универсального сниффера ReactGet, расположенные на двух разных взломанных сайтах. Однако обе версии отправляли украденные данные на один и тот же взломанный сайт zoobashop.com.

eemttbv-vdn0ff9ncd3siqfzokq.png


Анализ префиксов, которые использовались сниффером для поиска полей, содержащих платежную информацию жертвы, позволил определить, что этот образец сниффера был нацелен на следующие платежные системы:

  • Authorize.Net
  • Verisign
  • First Data
  • USAePay
  • Stripe
  • PayPal
  • ANZ eGate
  • Braintree
  • DataCash (MasterCard)
  • Realex Payments
  • PsiGate
  • Heartland Payment Systems


Какие инструменты используются для кражи платежной информации

Первый инструмент, обнаруженный в ходе анализа инфраструктуры атакующих, служит для обфускации вредоносных скриптов, отвечающих за кражу банковских карт. На одном из хостов атакующих был обнаружен bash-скрипт, использующий CLI проекта javascript-obfuscator для автоматизации обфускации кода снифферов.

5mawlut23obt6lpoa3ed2luu8ss.png


Второй обнаруженный инструмент предназначен для генерации кода, отвечающего за подгрузку основного сниффера. Данный инструмент генерирует JavaScript-код, который проверяет, находится ли пользователь на странице оплаты, путем поиска в текущем адресе пользователя строк checkout, cart и так далее, и если результат положительный, то код подгружает основной сниффер с сервера злоумышленников. Для сокрытия вредоносной активности все строки, включая тестовые строки для определения платежной страницы, а также ссылку на сниффер, закодированы при помощи base64.

vnewymbt1r6nc8n98roze5drnnk.png



Фишинговые атаки

В ходе анализа сетевой инфраструктуры атакующих было установлено, что зачастую для получения доступа в административную панель целевого онлайн-магазина преступная группа использует фишинг. Атакующие регистрируют домен, визуально похожий на домен магазина, а затем разворачивают на нем поддельную форму входа административной панели Magento. В случае успеха атакующие получат доступ в административную панель CMS Magento, что дает им возможность редактировать компоненты сайта и внедрить сниффер для кражи данных кредитных карт.

yf-alzxabbg_kij0vkaq5qcr9vs.png


Инфраструктура
ДоменДата обнаружения/появления
mediapack.info04.05.2017
adsgetapi.com15.06.2017
simcounter.com14.08.2017
mageanalytics.com22.12.2017
maxstatics.com16.01.2018
reactjsapi.com19.01.2018
mxcounter.com02.02.2018
apitstatus.com01.03.2018
orderracker.com20.04.2018
tagstracking.com25.06.2018
adsapigate.com12.07.2018
trust-tracker.com15.07.2018
fbstatspartner.com02.10.2018
billgetstatus.com12.10.2018
aldenmlilhouse.com20.10.2018
balletbeautlful.com20.10.2018
bargalnjunkie.com20.10.2018
payselector.com21.10.2018
tagsmediaget.com02.11.2018
hs-payments.com16.11.2018
ordercheckpays.com19.11.2018
geisseie.com24.11.2018
gtmproc.com29.11.2018
livegetpay.com18.12.2018
sydneysalonsupplies.com18.12.2018
newrelicnet.com19.12.2018
nr-public.com03.01.2019
cloudodesc.com04.01.2019
ajaxstatic.com11.01.2019
livecheckpay.com21.01.2019
asianfoodgracer.com25.01.2019


Семейство G-Analytics

Это семейство снифферов используется для кражи карт клиентов онлайн-магазинов. Самое первое доменное имя, используемое группой, было зарегистрировано в апреле 2016 года, что может свидетельствовать о начале активности группы в середине 2016 года.

В текущей кампании группа использует доменные имена, имитирующие реально существующие сервисы, такие как Google Analytics и jQuery, маскируя активность снифферов легитимными скриптами и похожими на легитимные доменными именами. Атаке подверглись сайты, работающие под управлением CMS Magento.


Как G-Analytics внедряется в код онлайн-магазина

Отличительная особенность этого семейства — использование различных способов похищения платежной информации пользователя. Помимо классического внедрения JavaScript-кода в клиентскую часть сайта, преступная группа также применяла технику внедрения кода в серверную часть сайта, а именно PHP-скрипты, обрабатывающие введенные пользователем данные. Эта техника опасна тем, что затрудняет обнаружение вредоносного кода сторонними исследователями. Специалистами Group-IB была обнаружена версия сниффера, внедренного в PHP-код сайта, использующая в качестве гейта домен dittm.org.

udm_dkzu4pw_4pbxhrstk0e9oo8.png


Также была обнаружена ранняя версия сниффера, использующего для сбора украденных данных тот же домен dittm.org, но эта версия предназначена уже для установки на клиентской стороне онлайн-магазина.

kr0mnhgtjfxqs5lftvx53ofrm54.png


Позднее группа изменила свою тактику и начала уделять больше внимания сокрытию вредоносной активности и маскировке.

В начале 2017 года группа стала использовать домен jquery-js.com, маскирующийся под CDN для jQuery: при переходе на сайт злоумышленников пользователя перенаправляет на легитимный сайт jquery.com.

А в середине 2018 года группа взяла на вооружение доменное имя g-analytics.com и начала маскировать деятельность сниффера под легитимный сервис Google Analytics.

rdfjmj8foi7qtcv_fi_lix69a4u.png


y3xp24ypsp9vloflbz5lbnrrfnk.png



Анализ версий

В ходе анализа доменов, используемых для хранения кода снифферов, было установлено, что на сайте располагается большое количество версий, которые различаются наличием обфускации, а также наличием или отсутствием недостижимого кода, добавленного в файл для отвлечения внимания и сокрытия вредоносного кода.

Всего на сайте jquery-js.com было выявлено шесть версий снифферов. Украденные данные эти снифферы отправляют на адрес, расположенный на том же сайте, что и сам сниффер: 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

Более поздний домен g-analytics.com, используемый группой в атаках с середины 2018 года, служит хранилищем для большего числа снифферов. Всего было обнаружено 16 разных версий сниффера. В этом случае гейт для отправки украденных данных был замаскирован под ссылку на изображение формата GIF: hxxp://g-analytics[.]com/__utm.gif?v=1&_v=j68&a=98811130&t=pageview&_s=1&sd=24-bit&sr=2560x1440&vp=2145x371&je=0&_u=AACAAEAB~&jid=1841704724&gjid=877686936&cid=1283183910.1527732071:

Код:
[*][B]hxxps://g-analytics[.]com/libs/1.0.1/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.10/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.11/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.12/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.13/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.14/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.15/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.16/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.3/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.4/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.5/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.6/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.7/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.8/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/1.0.9/analytics.js[/B]
[*][B]hxxps://g-analytics[.]com/libs/analytics.js[/B]


Монетизация украденных данных

Преступная группа монетизирует украденные данные, продавая карты через специально созданный подпольный магазин, оказывающий услуги кардерам. Анализ доменов, используемых атакующими, позволил определить, что google-analytics.cm был зарегистрирован тем же пользователем, что и домен cardz.vc. Домен cardz.vc относится к магазину по продаже украденных банковских карт Cardsurfs (Flysurfs), который обрел популярность еще во времена активности подпольной торговой площадки AlphaBay как магазин по продаже банковских карт, украденных при помощи сниффера.

k6l6-wxdifwkyfd-kq-3xicgsdq.png


Анализируя домен analytic.is, расположенный на том же сервере, что и домены, используемые снифферами для сбора украденных данных, специалисты Group-IB обнаружили файл, содержащий логи Cookie-стиллера, который, похоже, позднее был заброшен разработчиком. Одна из записей в логе содержала домен iozoz.com, который ранее был использован в одном из снифферов, активных в 2016 году. Предположительно, этот домен ранее использовался злоумышленником для сбора украденных при помощи сниффера карт. Этот домен был зарегистрирован на email-адрес kts241@gmail.com, который также был использован для регистрации доменов cardz.su и cardz.vc, относящихся к кардинговому магазину Cardsurfs.

Исходя из полученных даннных, можно сделать предположение, что семейство снифферов G-Analytics и подпольный магазин по продаже банковских карт Cardsurfs управляются одними и теми же людьми, а магазин используется для реализации банковских карт, украденных при помощи сниффера.

Инфраструктура
ДоменДата обнаружения/появления
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.

m0ekgsjvued_xicxubpz6dprhag.png


Позднее была обнаружена упакованная версия сниффера, использующая другой гейт — records.nstatistics[.]com/records.php.

yyzq3dtgunc6ansnwrk2eun4mjy.png


Согласно отчету Willem de Groot, такой же хост использовался в сниффере, который был внедрен на сайт магазина, принадлежащего немецкой политической партии CSU.


Анализ сайта злоумышленников

Специалисты Group-IB обнаружили и проанализировали сайт, используемый данной преступной группой для хранения инструментов и сбора украденной информации.

dmzei3jrukearwtcs-9ch_b2nue.png


Среди инструментов, обнаруженных на сервере злоумышленников, были найдены скрипты и эксплойты для повышения привилегий в ОС Linux: к примеру, Linux Privilege Escalation Check Script, разработанный Майком Чумаком (Mike Czumak), а также эксплойт для CVE-2009-1185.

Непосредственно для атак на онлайн-магазины злоумышленники использовали два эксплойта: первыйспособен внедрить вредоносный код в core_config_data при помощи эксплуатации CVE-2016-4010, второй эксплуатирует уязвимость типа RCE в плагинах для CMS Magento, позволяя выполнить произвольный код на уязвимом веб-сервере.

j7st5ryg0ixjehutzjvneckqaw8.jpeg


Также в ходе анализа сервера были обнаружены различные образцы снифферов и фальшивых платежных форм, используемых злоумышленниками для сбора платежной информации со взломанных сайтов. Как можно заметить из списка ниже, некоторые скрипты создавались индивидуально для каждого взломанного сайта, в то время как для определенных 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.


Поддельные платежные формы

Ниже на рисунке показан пример формы для ввода данных карты. Эта форма использовалась для внедрения на сайт онлайн-магазина и кражи данных карт.

vdvz9bvo34cv-5sp86ost9kadvg.png


На следующем рисунке — пример поддельной платежной формы PayPal, которую использовали злоумышленники для внедрения на сайты с этим методом оплаты.
6ork92ddgqisrzpksczgd-gcwyu.png


Инфраструктура
ДоменДата обнаружения/появления
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 на сервере злоумышленников. Внедрение в код сайта осуществляется по прямой ссылке на сниффер.

wnpzs8nq8gwew8hgxkmhocu8nv0.png


В коде сниффера жестко закодированы названия полей формы, из которых необходимо украсть данные. Также сниффер проверяет, находится ли пользователь на странице оплаты, сверяя список ключевых слов с текущим адресом пользователя.

fhpjamaj2zikswysse44wophdxq.png


Некоторые обнаруженные версии сниффера были обфусцированы и содержали зашифрованную строку, в которой хранился основной массив ресурсов: именно в нем были имена полей форм для различных платежных систем, а также адрес гейта, на который необходимо отправлять украденные данные.

iawzqwyetk6kadgy3hjgcbhalgi.png


Украденная платежная информация отправлялась скрипту на сервере злоумышленников по пути /savePayment/index.php или /tr/index.php. Предположительно, этот скрипт служит для отправки данных с гейта на основной сервер, консолидирующий данные со всех снифферов. Для сокрытия передаваемых данных вся платежная информация жертвы кодируется при помощи base64, а затем происходит несколько замен символов:

  • символ «e» заменяется на «:»
  • символ «w» заменяется на «+»
  • символ «o» заменяется на «%»
  • символ «d» заменяется на «#»
  • символ «a» заменяется на «-»
  • символ «7» заменяется на «^»
  • символ «h» заменяется на «_»
  • символ «T» заменяется на «@»
  • символ «0» заменяется на «/»
  • символ «Y» заменяется на «*»

В результате замен символов закодированные с помощью base64 данные невозможно декодировать, не проведя обратного преобразования.

Так выглядит фрагмент кода сниффера, не подвергавшегося обфускации:

ivrwjvwtjyflx73jxnzyedtgqxw.png



Анализ инфраструктуры

В ранних кампаниях злоумышленники регистрировали доменные имена, похожие на домены легитимных сайтов онлайн-магазинов. Их домен мог отличаться от легитимного одним символом или другим TLD. Зарегистрированные домены использовались для хранения кода сниффера, ссылка на который внедрялась в код магазина.

Также данная группа использовала доменные имена, напоминающие название популярных плагинов для jQuery (slickjs[.]org для сайтов, использующих плагин slick.js), платежных шлюзов (sagecdn[.]orgдля сайтов, использующих платежную систему Sage Pay).

Позднее группа начала создавать домены, название которых не имело ничего общего ни с доменом магазина, ни с тематикой магазина.

nc8pmckp6ig-wh6zqiflqsvvuv8.png


Каждому домену соответствовал сайт, на котором создавалась директория /js или /src. В этой директории хранились скрипты снифферов: по одному снифферу на каждое новое заражение. Сниффер внедрялся в код сайта по прямой ссылке, но в редких случаях злоумышленники модифицировали один из файлов сайта и добавляли в него вредоносный код.


Анализ кода

Первый алгоритм обфускации

В некоторых обнаруженных образцах снифферов этого семейства код был обфусцирован и содержал зашифрованные данные, необходимые для работы сниффера: в частности, адрес гейта сниффера, список полей платежной формы, а в некоторых случаях — код поддельной формы оплаты. В коде внутри функции ресурсы были зашифрованы при помощи XOR по ключу, который передавался аргументом этой же функции.

uuioh2egdec0k1wpsa4wxti_1qc.png


Расшифровав строку соответствующим ключом, уникальным для каждого образца, можно получить строку, содержащую все строки из кода сниффера через символ-разделитель.

yimachmb5zfakdeqn-u4v-dwesc.png


Второй алгоритм обфускации

В более поздних образцах снифферов этого семейства был использован другой механизм обфускации: в этом случае данные были зашифрованы при помощи самописного алгоритма. Строка, содержащая зашифрованные данные, необходимые для работы сниффера, передавалась аргументом функции расшифрования.

cohsbisd1wm4g_46sclbiq-wngc.png


При помощи консоли браузера можно расшифровать зашифрованные данные и получить массив, содержащий ресурсы сниффера.

a8zweh8fi_s1p6x-pgl6l7ugfei.png



Связь с ранними атаками MageCart

В ходе анализа одного из доменов, используемых группой в качестве гейта для сбора украденных данных, было установлено, что на этом домене развернута инфраструктура для кражи кредитных карт, идентичная той, которая использовалась Group 1 — одной из первых групп, обнаруженныхспециалистами RiskIQ.

На хосте семейства снифферов CoffeMokko были обнаружены два файла:
  • mage.js — файл, содержащий код сниффера Group 1 с адресом гейта js-cdn.link
  • mag.php — PHP-скрипт, отвечающий за сбор украденных сниффером данных

Содержимое файла mage.js
84mx99wtkbnzni7faierof1lxbs.png


Также было установлено, что самые ранние домены, используемые группой, стоящей за семейством снифферов CoffeMokko, были зарегистрированы 17 мая 2017 года:
  • link-js[.]link
  • info-js[.]link
  • track-js[.]link
  • map-js[.]link
  • smart-js[.]link

Формат этих доменных имен совпадает с доменными именами Group 1, которые были использованы в атаках 2016 года.

На основе обнаруженных фактов можно сделать предположение, что между операторами снифферов CoffeMokko и преступной группой Group 1 есть связь. Предположительно, операторы CoffeMokko могли позаимствовать у своих предшественников инструменты и программное обеспечение для кражи карт. Однако более вероятно, что преступная группа, стоящая за использованием снифферов семейства CoffeMokko, — это те же люди, что осуществляли атаки в рамках деятельности Group 1. После публикации первого отчета о деятельности преступной группы все их доменные имена были заблокированы, а инструменты подробно изучены и описаны. Группа была вынуждена взять перерыв, доработать свои внутренние инструменты и переписать код снифферов для того, чтобы продолжить свои атаки и оставаться незамеченными.

Инфраструктура
ДоменДата обнаружения/появления
link-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.org03.09.2017
security-payment.su03.09.2017
braincdn.org04.09.2017
sagecdn.org04.09.2017
slickjs.org04.09.2017
oakandfort.org10.09.2017
citywlnery.org15.09.2017
dobell.su04.10.2017
childsplayclothing.org31.10.2017
jewsondirect.com05.11.2017
shop-rnib.org15.11.2017
closetlondon.org16.11.2017
misshaus.org28.11.2017
battery-force.org01.12.2017
kik-vape.org01.12.2017
greatfurnituretradingco.org02.12.2017
etradesupply.org04.12.2017
replacemyremote.org04.12.2017
all-about-sneakers.org05.12.2017
mage-checkout.org05.12.2017
nililotan.org07.12.2017
lamoodbighats.net08.12.2017
walletgear.org10.12.2017
dahlie.org12.12.2017
davidsfootwear.org20.12.2017
blackriverimaging.org23.12.2017
exrpesso.org02.01.2018
parks.su09.01.2018
pmtonline.su12.01.2018
ottocap.org15.01.2018
christohperward.org27.01.2018
coffetea.org31.01.2018
energycoffe.org31.01.2018
energytea.org31.01.2018
teacoffe.net31.01.2018
adaptivecss.org01.03.2018
coffemokko.com01.03.2018
londontea.net01.03.2018
ukcoffe.com01.03.2018
labbe.biz20.03.2018
batterynart.com03.04.2018
btosports.net09.04.2018
chicksaddlery.net16.04.2018
paypaypay.org11.05.2018
ar500arnor.com26.05.2018
authorizecdn.com28.05.2018
slickmin.com28.05.2018
bannerbuzz.info03.06.2018
kandypens.net08.06.2018
mylrendyphone.com15.06.2018
freshchat.info01.07.2018
3lift.org02.07.2018
abtasty.net02.07.2018
mechat.info02.07.2018
zoplm.com02.07.2018
zapaljs.com02.09.2018
foodandcot.com15.09.2018
freshdepor.com15.09.2018
swappastore.com15.09.2018
verywellfitnesse.com15.09.2018
elegrina.com18.11.2018
majsurplus.com19.11.2018
top5value.com19.11.2018


Истичник: Group-IB
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх