Хакер купив 30 плагінів WordPress, вбудував бекдори, переховувався 8 місяців, використовуючи смартконтракт Ethereum, щоб обійти блокування доменів

動區BlockTempo
ETH-0,91%
BTC-0,35%

2025 року серпні покупець, який представився «Kris», сховав таймер-самознищувач у 191 рядку коду; через 8 місяців вибух здійснився, а C2-зв’язок обійшов блокування. Ця стаття створена на основі звіту дослідника з безпеки Austin Ginder.
(Довідка: BTC вдарив у 75 тис. доларів! ETH відновлюється до 2400, Ванс назвав переговори США та Ірану «значним прогресом», попередньо заплановано повторні переговори на 16-те)
(Додатковий контекст: відкритий лист засновника Gate Dr. Han з нагоди 13-ї річниці: у період зміни циклів випустити силу змін)

Зміст статті

Перемикач

  • 191 рядок, одна фраза «оновлення сумісності»
  • wp-config.php було записано зловмисний код обсягом 6 КБ
  • Це не перший раз і не буде останнім
  • Проблема в інститутах, а не в технологіях
  • WordPress.org за добу вимкнув понад 30 плагінів

Тридцять плагінів, восьмимісячний період приховування, C2-сервери динамічно оновлювалися через смартконтракти Ethereum. На початку квітня 2026 року WordPress.org за один робочий день вимкнув понад 30 плагінів, а сумарна кількість інсталяцій сягала мільйонів. І ще більш шокуюче те, що бекдор уже був у мережі 8 серпня 2025 року, тобто минуло рівно 243 дні до його виявлення.

191 рядок, одна фраза «оновлення сумісності»

Повернімо час до 2015 року. Команда з Індії WP Online Support (пізніше перейменована на Essential Plugin) була заснована трьома людьми, зокрема Minesh Shah. За десять років вона накопичила продуктовий портфель, який охоплював понад 30 плагінів. До кінця 2024 року виручка знизилася на 35–45% порівняно з піком, і команда вирішила виставити компанію на продаж через Flippa.

Покупець — людина з бекграундом на перетині SEO, криптовалюти та маркетингу онлайн-казино, що назовні видавав себе за «Kris». 8 серпня 2025 року вийшла версія 2.6.7, і changelog містив лише чотири слова: «оновлення сумісності».

Фактичні зміни були такими: class-anylc-admin.php розрісся з 473 рядків до 664 рядків, і до нього додалися 191 рядок бекдорного коду. Це перший commit Криса у SVN.

Бекдор не запустився одразу. Він «дрімав» до 5–6 квітня 2026 року, а тоді розпочав першу фазу: модуль wpos-analytics здійснив запит на зворотний виклик до analytics.essentialplugin.com, щоб завантажити файл під назвою wp-comments-posts.php. Він навмисно імітує wp-comments-post.php із ядра WordPress, але не вистачає одна літера.

wp-config.php було записано зловмисний код обсягом 6 КБ

6 квітня 2026 року о 04:22 UTC ін’єкція запустилася; о 11:06 UTC wp-config.php уже було повністю записано на уражених сайтах по всьому світу. 6 годин 44 хвилини — без жодного спрацювання попереджень на рівні платформ.

Ін’єктований зловмисний код робить дві речі: по-перше, вбудовує спамні зовнішні посилання, але показує їх лише для User-Agent Googlebot, тоді як звичайним відвідувачам і власникам сайту сторінки виглядають повністю нормальними; по-друге, відкриває незахищений (без автентифікації) REST API-ендпойнт (permission_callback: __return_true) у парі з PHP-функцією десеріалізації fetch_ver_info(), формуючи шлях до віддаленого виконання довільних функцій.

Втім, найкраще зафіксувати не деталі ін’єкції як такої, а схему обходу інфраструктури C2: атакувальники записали логіку розв’язання доменного імені в смартконтракт Ethereum, а бекдор через RPC-вузли публічного блокчейну запитує найновіше спрямування.

Традиційні захисні заходи, такі як чорні списки доменів та DNS-блокування, для цієї архітектури не працюють. Щоб перемикати C2 для всіх інфікованих сайтів синхронно, атакувальникам достатньо оновити смартконтракт — їм не потрібно торкатися жодного керованого сервера.

Це не перший раз і не буде останнім

У 2017 році Daley Tias за 15 тис. доларів купив Display Widgets-плагін із 200 тис. встановлень, упровадивши кредитно-подібні спамні посилання; згодом це зачепило щонайменше 9 плагінів. Після тієї події WordPress.org не запровадив обов’язковий механізм перевірки під час переходу права власності на плагіни; не ініціював додатковий ручний або автоматичний аудит при першій відправці нового committer; і не надсилав на наявні інсталяції користувачам повідомлення «плагін перейшов до іншого власника».

Дев’ять років потому процес був один і той самий. Kris завершив придбання, отримав дозвіл на SVN-записи, і його перший commit — це бекдор, уся дія відбувалася «згідно з правилами».

Проблема в інститутах, а не в технологіях

Ця подія не використала жодної zero-day вразливості. Якість бекдорного коду посередня: у 191 рядку немає жодної витонченої технології обфускації. Він здатен приховуватися 243 дні не завдяки технологічним можливостям, а через повну відсутність контролю на етапі переходу прав у маркетплейсі плагінів WordPress.org.

Розбір доменного імені C2 через смартконтракт Ethereum, справді, додає ще один рівень дизайну, який варто обговорювати. Але це лише робить процес очищення складнішим, а не є причиною, через яку атака стала можливою. Атака стала можливою тому, що платформа дозволяє будь-кімусь купити плагін, протолкнути оновлення й не пояснювати нікому, з чим саме сумісні написані в changelog «оновлення сумісності».

WordPress.org вимкнув понад 30 плагінів за один день

7 квітня 2026 року команда плагінів WordPress.org назавжди вимкнула всі плагіни автора Essential Plugin. Принаймні 30 плагінів, усі вимкнули в один і той самий день. Нижче — плагіни, які підтвердив Austin Ginder:

  • Accordion and Accordion Slider — accordion-and-accordion-slider
  • Album and Image Gallery Plus Lightbox — album-and-image-gallery-plus-lightbox
  • Audio Player with Playlist Ultimate — audio-player-with-playlist-ultimate
  • Blog Designer for Post and Widget — blog-designer-for-post-and-widget
  • Countdown Timer Ultimate — countdown-timer-ultimate
  • Featured Post Creative — featured-post-creative
  • Footer Mega Grid Columns — footer-mega-grid-columns
  • Hero Banner Ultimate — hero-banner-ultimate
  • HTML5 VideoGallery Plus Player — html5-videogallery-plus-player
  • Meta Slider and Carousel with Lightbox — meta-slider-and-carousel-with-lightbox
  • Popup Anything on Click — popup-anything-on-click
  • Portfolio and Projects — portfolio-and-projects
  • Post Category Image with Grid and Slider — post-category-image-with-grid-and-slider
  • Post Grid and Filter Ultimate — post-grid-and-filter-ultimate
  • Preloader for Website — preloader-for-website
  • Product Categories Designs for WooCommerce — product-categories-designs-for-woocommerce
  • Responsive WP FAQ with Category — sp-faq
  • SlidersPack – All in One Image Sliders — sliderspack-all-in-one-image-sliders
  • SP News And Widget — sp-news-and-widget
  • Styles for WP PageNavi – Addon — styles-for-wp-pagenavi-addon
  • Ticker Ultimate — ticker-ultimate
  • Timeline and History Slider — timeline-and-history-slider
  • Woo Product Slider and Carousel with Category — woo-product-slider-and-carousel-with-category
  • WP Blog and Widgets — wp-blog-and-widgets
  • WP Featured Content and Slider — wp-featured-content-and-slider
  • WP Logo Showcase Responsive Slider and Carousel — wp-logo-showcase-responsive-slider-slider
  • WP Responsive Recent Post Slider — wp-responsive-recent-post-slider
  • WP Slick Slider and Image Carousel — wp-slick-slider-and-image-carousel
  • WP Team Showcase and Slider — wp-team-showcase-and-slider
  • WP Testimonial with Widget — wp-testimonial-with-widget
  • WP Trending Post Slider and Widget — wp-trending-post-slider-and-widget

Застереження: Інформація на цій сторінці може походити від третіх осіб і не відображає погляди або думки Gate. Вміст, що відображається на цій сторінці, є лише довідковим і не є фінансовою, інвестиційною або юридичною порадою. Gate не гарантує точність або повноту інформації і не несе відповідальності за будь-які збитки, що виникли в результаті використання цієї інформації. Інвестиції у віртуальні активи пов'язані з високим ризиком і піддаються значній ціновій волатильності. Ви можете втратити весь вкладений капітал. Будь ласка, повністю усвідомлюйте відповідні ризики та приймайте обережні рішення, виходячи з вашого фінансового становища та толерантності до ризику. Для отримання детальної інформації, будь ласка, зверніться до Застереження.

Пов'язані статті

Delphi Digital backtest: BTC за п’ятирічною медіанною дохідністю понад 8 разів, ETH без збитків

Згідно з аналізом криптовалютної дослідницької установи Delphi Digital, опублікованим 30 квітня у X, результати бектесту для періоду утримання з травня 2016 року показують, що після врахування прибутків від стейкінгу ETH і SOL у всіх п’ятирічних періодах утримання не демонстрували від’ємної дохідності; у найгіршому випадку BTC втрачає близько 13%. Медіанна дохідність BTC за п’ять років перевищує 8 разів, тоді як медіанна дохідність ETH за п’ять років наближається до 13 разів.

MarketWhisper29хв. тому

Пов’язаний із World Liberty Трампа гаманець продає 8,500 ETH і виходить з Aave

Повідомлення Gate News: пов’язана зі «світовою свободою» Трампа (@worldlibertyfi) адреса гаманця 0x77a5 продала 8,500 ETH за 19,27 мільйона USDC за ціною $2,268 вісім годин тому. Після транзакції гаманець погасив усі непогашені позики та вивів усі кошти з Aave.

GateNews42хв. тому

Machi X Понесла $3,94 млн У Щотижневих Ліквідаціях, Оскільки BTC й ETH-Позиції Потрапили Під Ліквідації Вночі

Згідно з BlockBeats, 30 квітня Machi X зазнала щотижневих збитків у розмірі $3,94 млн, оскільки відкат ринку спричинив часткові ліквідації її біткоїн- та ефіріум-активів уночі. Загальна вартість позицій фонду впала до $29,06 млн: ціна ліквідації ETH становила $2,188, а ціна ліквідації BTC — $72,143.1.

GateNews1год тому

Найбільший лонг-трейдер Hyperliquid відновлює значні лонг-позиції з ETH, відкриває $203M позицію 30 квітня

Згідно з повідомленням BlockBeats із посиланням на ончейн-моніторинг Ember, найбільший лонг-трейдер Hyperliquid відновив великомасштабні позиції в лонг по ETH 30 квітня. Трейдер відкрив позиції на 90 000 ETH на суму ( мільйон$203 доларів) у трьох адресах, повернувши собі перше місце на платформі за лонг-позицією. Середня ціна входу для позиції за ETH була $2,265.

GateNews2год тому
Прокоментувати
0/400
Немає коментарів