Наступает сезон краж кредитных карт 2024 года

Man

Professional
Messages
2,963
Reaction score
486
Points
83
Сезон праздничных покупок уже не за горами, и это время года, когда владельцам сайтов электронной коммерции нужно быть максимально бдительными. Вредоносное ПО для кражи кредитных карт, обычно называемое «MageCart», наиболее распространено в сезон праздничных покупок. Злоумышленники всегда стремятся максимизировать свою прибыль. Таким образом, они знают, что если они сосредоточат свое время и усилия на последнем квартале года, у них будет больше украденных данных карт для продажи в даркнете, когда придет время обналичить свои нечестно полученные доходы.

Мы проанализировали наши журналы SiteCheck и устранения вредоносного ПО, чтобы определить некоторые из наиболее часто идентифицируемых атак скимминга карт за последние несколько месяцев. В сегодняшнем посте мы собираемся провести анализ вредоносного ПО наиболее распространенных выявленных инъекций MageCart, чтобы владельцы веб-сайтов электронной коммерции могли лучше понять риски и (надеюсь) защитить себя, свои веб-сайты и своих клиентов от злоумышленников.

Давайте начнем, ладно?

Скиммер WebSocket​

При проверке наиболее распространенных инъекций MageCart с 1 августа этого года этот скиммер веб-сокетов лидирует в наших обнаружениях SiteCheck, будучи обнаруженным на 432 веб-сайтах. Инфекции скимминга карт WebSocket, похоже, становятся все более популярными в наши дни, хотя злоумышленникам требуется более специализированное серверное программное обеспечение для их администрирования.

Идентифицированные платформы CMS электронной коммерции включают WordPress, Magento и OpenCart. Существует довольно много вариаций этого вредоносного ПО, и его части, по-видимому, содержат случайные символы, но все они начинаются со следующей строки:

Code:
<script>const …

Полная инъекция выглядит следующим образом:

полный впрыск


Не все вариации этого вредоносного ПО используют одни и те же символы, но они используют один и тот же формат и кодировку. Мы видим, как WebSocket загружает некоторые символы, обфусцированные функцией fromCharCode (похоже, одной из любимых функций злоумышленников). Однако простой ввод этой строки в простой деобфускатор fromCharCode возвращает только бессмыслицу. В приведенном выше примере мы также наблюдаем следующую строку:

Code:
const bzpy = 42

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

Code:
wss://cdn[.]iconstaff[.]top/common?source=

Это не первый раз, когда мы замечаем число 42, используемое в качестве шифра XOR во вредоносных инъекциях (на самом деле, я думаю, что к этому моменту я сбился со счета). Это число на самом деле часто всплывает в различных технических и программных контекстах! На самом деле это отсылка к известному роману Дугласа Адамса «Автостопом по Галактике», который, как известно, называют «Ответом на Главный Вопрос Жизни, Вселенной и Всего остального».

Шестнадцатеричный скиммер jquery​

Далее у нас есть скиммер с шестнадцатеричным кодом, обнаруженный как на Magento, так и на WordPress, с примерно равным распределением между двумя платформами. Он был отмечен на 325 отдельных сайтах электронной коммерции с 1 августа. Читатели этого блога помнят, что в последние годы наблюдалась устойчивая тенденция к «переработке» вредоносного ПО MageCart, изначально предназначенного для Magento, и переносу его на сайты WooCommerce.

Первые образцы этого вредоносного ПО, которые мы обнаружили, были размещены внутри таблицы базы данных core_config_data в Magento (где владелец веб-сайта часто размещает различные скрипты, такие как Google Tag Manager и пиксели отслеживания Facebook) и, что интересно, загружались внутри тегов <svg (масштабируемая векторная графика) и выполнялись в браузере жертвы с помощью функции onload:

образец вредоносного ПО


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

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

Code:
./wp-includes/js/jquery/jquery.min.js

Вот фрагмент того, как выглядит инъекция в нижней части одного из этих файлов WordPress jquery:

фрагмент инъекции


Но что, черт возьми, это делает? Давайте попробуем разобрать это! Чтобы расшифровать это, нам нужно заставить этот JavaScript выдать то, что скрывается за шестнадцатеричным кодированием. Для этого нам сначала нужно заменить это:

Code:
new Function (n)()

В простой консольный журнал:

Code:
console.log(n)

И как только мы это запустим (конечно, в безопасной, изолированной песочнице), мы получим следующее:

пример веб-сокета


Посмотрите на это! Еще один веб-сокет, использующий число 42 в качестве значения XOR. На самом деле, этот код выглядит удивительно похожим — осмелюсь сказать, почти идентичным — на первый образец, с которым мы работали. Основное отличие — домен эксфильтрации, в данном случае:

Code:
wss://cpeciadogfoods[.]com/common?source=

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

Скиммер r.blob​

Первоначально этот был обнаружен в магазине WooCommerce, но, естественно, в конечном итоге был обнаружен и на других платформах электронной коммерции. Эта инъекция была обнаружена 293 раза с 1 августа. Наше первое обнаружение этой вредоносной программы выглядело как длинный фрагмент кода base64 в базе данных:

код base64


Обратите внимание на шорткоды «woocommerce_checkout», между которыми он размещен. Теперь тот факт, что содержимое закодировано в base64, сам по себе не является подозрительным. Некоторые плагины визуального конструктора веб-сайтов сохраняют все свои данные в этом формате в базе данных, просто так они работают (что и происходит в данном случае). Однако, если вы видите какую-то сомнительную загрузку домена на странице оформления заказа, это добавляет дополнительный шаг к поиску источника, поскольку вы не можете напрямую запросить базу данных для этого.

Давайте загрузим это в декодер и посмотрим, что получится:

раскодировано


Хорошо, немного лучше, но все еще не все! Проницательные читатели узнают это как « кодирование URL ». Просто чтобы быстро ввести всех в курс дела: кодирование URL — это метод кодирования символов, чтобы адресная строка вашего браузера могла правильно их интерпретировать и запускать/запрашивать. Так что в качестве быстрого примера: вы не можете использовать пробелы в веб-адресе; вместо этого он преобразуется в %20.

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

Ну ладно, вернемся к делу. Давайте продолжим и преобразуем эти URL-кодированные значения в то, что мы, простые люди, сможем правильно прочитать:

закодированные URL-адреса преобразованы


Я думаю, это самый простой из всех скиммеров, которые мы рассмотрели до сих пор (по крайней мере, его было легче всего декодировать). Мы можем видеть эту функцию JavaScript atob в верхней части снимка экрана, которая преобразует значения, закодированные в base64, в следующее:

Y2hlY2tvdXQcheckout
Y2FydAcart
Ly9rb25kaWdpdC5zYnM//kondigit[.]sbs
UE9TVAPOST

Итак, подведем итог: если URL-адрес содержит строку «checkout», но не включает «cart», он загрузит скиммер и перенесет данные карты и клиента на этот домен kondigit.

Конечно, на других платформах, таких как Magento, эти инъекции, скорее всего, будут просто текстовыми тегами <script в базе данных, и нам вообще не придется заниматься отменой кодировки base64 и URL.

Смилодон перезагружен​

Два года назад мы сообщали, что хакерская группа MageCart Smilodon перенесла свою деятельность с Magento на WordPress. В отчете об угрозах за 2023 год мы также пришли к выводу на основе наших внутренних данных, что Smilodon входит в тройку самых распространенных скиммеров кредитных карт, обнаруженных на взломанных веб-сайтах электронной коммерции, в основном в виде вредоносных плагинов WordPress. Поскольку эти скиммеры основаны на PHP, их фактически невозможно идентифицировать извне или увидеть антивирусным программам, что, вероятно, является одной из основных причин, по которой они были приняты этими злоумышленниками.

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

Code:
./wp-content/plugins/sytaqanyxen/sytaqanyxen.php 
./wp-content/plugins/adixiraqeh/adixiraqeh.php 
./wp-content/plugins/ikytigy/ikytigy.php 
./wp-content/plugins/ylapecadag/ylapecadag.php

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

Вредоносная программа на самом деле довольно сложна и сама по себе заслуживает отдельного поста в блоге, посвященного ее разбору. Но сейчас взгляните на основной файл плагина здесь:

основной файл плагина

./wp-content/plugins/odekytyvyx/odekytyvyx.php

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

Code:
include(__DIR__ . "/dac" . "olag" . ".php");

На самом деле это будет загрузка файла с именем « dacolag.php » — давайте заглянем внутрь этого другого файла:

второй файл


Это только первые несколько строк. За исключением нескольких стандартных функций PHP, таких как file_get_contents, это выглядит как бессмыслица. Дальше в файле мы видим это:

третий файл загружен


Снова мы видим использование конкатенации для загрузки третьего файла:

Code:
"/ass" . "ets/i" . "mages/" . "yqeji" . "j.png"

Что на самом деле загружается:

Code:
/assets/images/yqejij.png

Теперь давайте проверим этот четвертый файл — файл «изображения» yqejij.png:

четвертый файл


Это всего лишь самая верхняя часть огромного куска того, что на первый взгляд кажется контентом, закодированным в base64. Однако при пропускании его через стандартный декодер base64 он не выдает ничего, кроме мусора.

Оказывается, для декодирования этого нужно предпринять некоторые дополнительные шаги. Фактически, в каталоге assets/images всего около пяти элементов, все с расширениями файлов png и gif, которые содержат похожие огромные куски закодированного контента – каждый из них служит своей цели в этом плагине для скимминга кредитных карт (на самом деле, это полный набор инструментов, включая веб-оболочку!).

Однако на сегодня мы остановимся на этом и продолжим анализ последней версии скиммера Simildon в следующем посте!

Источник
 
Top