На сайтах с устаревшей CMS Magento проснулся цепкий веб-скиммер

На сайтах с устаревшей CMS Magento проснулся цепкий веб-скиммер

На сайтах с устаревшей CMS Magento проснулся цепкий веб-скиммер

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

По свидетельству Sansec, злоумышленники начали готовиться к новой кампании еще в апреле и хорошо позаботились о скрытности операций. Разбор текущих атак показал, что все скомпрометированные сайты используют Magento ветки 2.2, снятой с поддержки в декабре 2019 года. Пользователей еще тогда призывали произвести апгрейд, однако многие этого до сих пор не сделали.

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

  1. Получение URL консоли администратора через эксплойт уязвимости раскрытия информации.
  2. Перехват сессионного ключа залогинившегося администратора посредством SQL-инъекции.
  3. Вход в админ-панель и создание пригодного для эксплуатации шаблона email с целью загрузки и исполнения вредоносного PHP-кода.
  4. Установка бэкдора.
  5. Установка веб-скиммера.

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

Веб-скиммер в данном случае разделен на две части — клиентскую и серверную. На стороне клиента вредоносный код внедряется в какой-нибудь статичный JavaScript-файл (например, require.js); в этом виде он может показывать поддельную форму оплаты покупки — для каждого магазина свою. Вводимые покупателем данные скрипт отсылает на сервер для проверки, и такое действие подозрений не вызывает: оно обычно при проведении платежных транзакций.

За сбор и сохранение краденой информации отвечает вторая половина стилера — добавленный на бэкенд-сервер код PHP. Оператор в этом случае получает ворованные данные через запрос HTTP POST.

Бэкдор, установленный посредством PHP-инъекции (PHP Object Injection, POI), злоумышленники активируют вызовом функции сравнения товаров — Product Compare. Один из таких вредоносных объектов вполне тривиален, и его легко обнаружить. Второй более опасен: он добавляет на сервер функцию десериализации PHP — она по стандарту не рекомендуется к использованию, так как позволяет захватить контроль над сервером посредством POI-атаки. К счастью, вызов этой функции всегда можно отследить по журналу событий.

Одновременно на сервере в фоновом режиме запускается сторожевой процесс, отвечающий за сохранность бэкдора. Этот сторож маскируется под легитимные системные процессы — dnsadmin dormant, sshd [net], php-fpm: pool www. Если бэкдор нашли и вычистили, зловредный процесс за пару дней установит новую копию (она вшита в код). Более того, он откатит временные метки всех файлов законного пользователя, чтобы возврат вредоносного кода остался незамеченным.

Присутствие зловредной службы, со слов экспертов, можно обнаружить на TCP-порту 9000 — по всей видимости, это резервный канал связи, по которому операторы могут подавать команды. Наличие стороннего сторожа также выявит поиск по списку запущенных процессов с помощью утилиты командной строки (sudo grep -l Magento.Catalog /proc/*/exe).

К сожалению, операторы зловреда предусмотрели и такой сценарий. Они дополнительно устанавливают на сервер PHP-код, способный на лету воровать пароли администратора и отсылать их на сторонний коллектор. Если доступ к взломанному серверу потерян и сторожевой процесс прибит, у злоумышленников останутся ключи, с помощью которых можно будет вернуть утраченные позиции.

Фишинг под WordPress крадёт карты и OTP, отправляя данные в Telegram

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

Об атаке рассказал специалист по киберугрозам Анураг (Anurag). Письмо выглядит тревожно и приходит с темой вроде «Renewal due soon – Action required».

Расчёт простой: напугать и заставить действовать быстро. Но есть важная деталь, на которую сразу указывает исследователь, — в письме не указан конкретный домен, срок которого якобы истекает. Для настоящих уведомлений о продлении это крайне нетипично и уже само по себе должно насторожить.

 

Если жертва нажимает кнопку Renew Now, её перенаправляют на фальшивую страницу оплаты, размещённую на домене soyfix[.]com. Визуально она почти неотличима от настоящего чекаута WordPress: значки платёжных систем, пометка «Secure order validation», правдоподобные суммы вроде $13,00 плюс НДС. Всё выглядит настолько аккуратно, что сомнения быстро исчезают.

 

Но «заказ», разумеется, фиктивный. Страница просто собирает имя владельца карты, номер, срок действия и CVV, тут же отправляя их злоумышленникам. На этом атака не заканчивается. Следующий шаг — поддельное окно 3D Secure Verification, где пользователя просят ввести код из СМС.

 

Чтобы всё выглядело максимально правдоподобно, скрипт имитирует «работу банка»: семисекундная загрузка, затем ещё несколько секунд «проверки». После этого система сообщает об ошибке. Причём ошибка появляется всегда — специально, чтобы заставить жертву вводить новые OTP-коды снова и снова. Так атакующие получают сразу несколько актуальных кодов подтверждения.

Отдельного внимания заслуживает инфраструктура кампании. Вместо классических серверов управления злоумышленники используют Telegram. Скрипты на стороне сайта (send_payment.php и send_sms.php) пересылают украденные данные напрямую в телеграм-бот или канал. Такой подход дешевле, проще и гораздо сложнее заблокировать, чем традиционные C2-серверы.

Письма рассылались с адреса admin@theyounginevitables[.]com, который маскировался под поддержку WordPress. Анализ заголовков показал слабую политику DMARC (p=NONE), из-за чего подмена отправителя прошла без каких-либо ограничений.

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

RSS: Новости на портале Anti-Malware.ru