За цей тиждень я вилікував два сайти WordPress від шкідливих редиректів та виявив приховані бекдори
Крім зрозробки сайтів і постійної самоосвіти, мені інколи приходиться також займатися лікуванням сайтів на WordPress від вірусів. Слово “віруси” беремо в лапки, тому що мова йде не про ті віруси, які заражають програмне забезпечення на наших комп'ютерах. Правильно говорити “шкідливі скрипти”.
Дана публікація розрахована в першу чергу на власників сайтів та бізнесу. Тому, я не буду тут давати детальну технічну інформацію та терміни, щоб не втомлювати свого читача.
В більшості випадків, зараження сайтів відбувається шляхом експлуатації вразливостей, які зловмисники знаходять в файлах WordPress, тем та плагінів. Іноді, фахівці з кібербезпеки самі видають такі вразливості відкрито публікуючи свої звіти і вихваляючись перед своїми спонсорами, що недарма їдять хлібець. Але, це потрібно робити тільки після того, як автор вразливого продукту закриє “дірку” в безпеці. На другому місці, стоять випадки зараження сайтів, на яких їх власники або горе веб-майстри використовують неліцензійне програмне забезпечення, яке отримали шляхом завантаження на сумнівних сайтах (“паблік”, null, warez і ін.). На третьому місці стоїть брутфорс (перебір паролів) та нечисті на руку веб-майстри, які свідомо залишають бекдори.
Бекдори та довіра
Брутфорс до речі, став непопулярним та мало коли використовується через низьку свою ефективність та значні витрати часу. А бекдори веб-майстри залишають з метою збереження повного контрою над сайтом, наприклад у випадках коли замовник може “кинути” на гроші. Тому шановні власники сайтів та замовники звертайтесь до перевірених виконавців і не намагайтесь їх обманювати. Жадібність і пошук дешевих послуг часто призводять до втрат часу, нервів та коштів. Мати завжди під рукою довірену людину, яка швидко вирішить вашу проблему – це в наш час дуже цінується і це збереже ваші нерви. Аніж, коли виникне проблема вам не буде до кого звернутися, або ви не зможете швидко знайти досвідченого фахівця. А всіх кого попало запрошувати на свій сайт, це так собі ідея. Тобто, хороший фахівець на вагу золота. Рекомендую вам вибудовувати з такими людьми довірчі, дружні та довгострокові відносини.
Важливо: я не використовую в своїй роботі бекдори! Замість цього я публічно демонструю свій досвід, вибудовую роками свою репутацію та використовую перевірені на власному досвіді схеми співпраці. Звичайно, абсолютної гарантії успішної співпраці немає. Але, я мінімізую можливість виникнення проблем та ризиків шляхом проведення голосових інтерв'ю, заповненя брифів, технічних завдань, розумної (взаємовигідної) системи оплати моєї праці, надання професійних послуг з бонусами та залучення інших досвідчених людей в якості project manager, які беруть на себе переговорні та фінансові етапи. Гаразд, не буду більше тягнути кота за одне місце – я є ваша довірена людина 🙂
Мої сайти-пацієнти
Отже, за цей тиждень я вилікував два сайти WordPress від редиректів та виявив приховані бекдори, які надають зловмиснику повний контроль над захопленим сайтом.
Пацієнти: сайти на WordPress
Спільне між ними: старі версії плагіну Elementor PRO
Вразливість знаходиться в плагіні Elementor PRO. Зловмисник експлуатує вразливість в плагіні, щоб отримати повний доступ до сайту.
Звичайно, в тексті публікації не буде конкретних доменів, імен та паролів. Конфіденційність інформації, безпека та повага до клієнтів – це мої неписані правила.
Пошук вірусів на сайті – це як правило, завжди майже детективна історія. Ти чуєш від клієнта певні 1-2 момента, які не дають достатньої інформації, а іноді просто чуєш “щось сайт не працює” і далі починається дивовижний процес пошуку причин та наслідків.
Атака на перший сайт розпочалась 14-05-2023, а клієнт звернувся з проблемою тільки 21-05-2023. І тільки після того, як служба підтримки хостингу (хостинг Україна) в своєму листі повідомила про наявність шкідливих файлів, які можуть використовуватися для криптовалютного майнінгу. Логи показують, що майже щоденно, на протязі всіх цих днів, зловмисник заходив в адмінку сайту. Іноді вхід зловмисника на сайт співпадав з роботою в цей час адміністраторів сайту, які оновлювали контент та редагували сторінки сайту. Але, ніхто нікому не заважав робити свою справу і кожен успішно йшов до своєї мети.
На другому сайті власник надав тільки доступ в адмінку і FTP-доступ. Тому, я не мав змоги визначити точну дату початку атаки, використання запитів та хід злому, щоб поділитися з вами. Але, наявного доступу вистачило щоб успішно визначити причини непрацездатності сайту та вирішити проблему.
Після вирішення проблеми всі власники сайтів отримали від мене чіткі інструкції, що потрібно далі зробити, щоб запобігти повторному зараженню.
Симптоми
- Білий екран смерті на сторінці авторизації
- Перенаправлення на сторонній сайт (див. скрини)
- 2-3 нових адміністратори в розділі Користувачі
- Десятки нових користувачів в ролі Покупець, але вони нічого не замовляли
- Наявність сторонніх файлів
- Вставка стороннього коду в файли WordPress, теми та плагінів
- Наявність сторонніх, модифікованих плагінів
Скриншоти:
Можливі наслідки
- Репутаційні ризики
- Падіння в нуль трафіку та конверсій
- Випадіння сайту з пошукового індексу
- Потрапляння сайту до чорних списків антивірусних баз
- Зловмисник отримує повний контроль над сайтом (викрадення та зміна даних і т.д.)
Як відбувається проникнення?
- Зловмисник вивчає конфігурацію сайту – встановлені плагіни. На це в нього йде біля 15-30 хвилин.
- Зловмисник вивчає користувачів – шукає адміністраторів та їхню пошту.
- Використовуючи вразливості в старій версії Elementor PRO зловмисник авторизується як адміністратор. Цей і подальші кроки відбуваються за декілька хвилин (1,5-2 хвилини потрібно), що говорить нам про автоматизацію всього процесу проникнення.
- Зловмисник встановлює модифіковані версії плагінів WordPress*, в яких присутні файли бекдору**. Спеціальними запитами до нашого сайту він перевіряє успішність встановлення бекдору. Модифіковані плагіни приховані в консолі, їх можна виявити тільки візуально в файловому менеджері.
- Завдяки бекдору зловмисник завантажує на сайт інші файли, які виконують функції редиректів.
- Додатково зловмисник завантажує в файли активної теми, ще одну копію бекдору та ще одну копію скриптів редиректів, на випадок, якщо знайдуть перші скрипти.
- На кожну сторінку сайту (в Head) підключається файл JS, який знаходиться на стороньому сервері, що забезпечує функцію редиректів.
*В обох випадках використовувалися фейкові наступні плагіни: Post Layouts for Gutenberg та Custom scripts for customizer. Тобто, зловмисник за основу брав справжні плагіни, але модифіковані пізніше, щоб власник сайтів не запідозрив проблему. Також, в другому випадку в плагіні Rename wp login було знайдено файл з бекдором. Підозрюю, що цей плагін міг бути встановленим власником сайта, але в нього інтегрували тіло бекдору. Я не став виясняти і видалив всі ці плагіни.
**Бекдор – скрипт PHP, який може бути представленим як у вигляді окремого файлу, так і бути частиною нормальних файлів. Скрипт дозволяє отримати доступ до файлів сайту та його БД. А це відкриває широкі можливості для подальшої модифікації сайту. Не всі сервіси та антивіруси виявляють бекдори. Але, як правило, в бекдорах використовують закодований код (Base64), за яким можна здійснювати пошук.
Лікування
- Видалення всіх сумнівних плагінів.
- Видалення папок WordPress wp-includes та wp-admin з подальшим їх новим завантаженням з оригінального архіву.
- Видалення всіх користувачів, що не являються покупцями.
- Видалення всіх зайвих адміністраторів.
- Зміна паролів адміністраторів.
- Оновлення WordPress, теми та всіх плагінів.
- Оновлення Elementor PRO до останньої версії, або його повне видалення.
- Пошук та очищення всіх файлів бекдору та редиректів.
Важливо: якщо ви не оновите Elementor PRO до останньої версії, то є висока ймовірність (80% і вище) повторних проникнень та зараження. Ваш сайт вже є в базі зловмисника, а проникнення відбувається за декілька хвилин натисканням декількох кнопок в спеціальному програмному забезпеченні. При цьому, вас не захистить ні один плагін безпеки чи сервіс, доки на сайті є вразливість. Головне завдання – це закрити вразливість шляхом оновлення плагіну.
Elementor PRO – це зло?
Якщо ви купуєте плагін Elementor PRO для використання на сайті, то маєте чітко усвідомити, що тепер вам потрібно буде щороку, обов'язково поновлювати свою підписку, щоб отримувати регулярні оновлення. На сайтах моїх клієнтів (не я робив їм сайти) використовувалась ліцензійна версія Elementor PRO. Але, після певного часу, власники сайтів відмовились далі поновлювати свою платну підпискуі не мали можливість далі оновлювати плагін. Як наслідок: зараженя сайтів, репутаційні ризики, нерви та фінансові витрати на лікування сайтів.
Якщо ви не плануєте щороку поновлювати підписку, то я рекомендую вам взагалі відмовитись від використання плагіну Elementor PRO. Цей плагін останні декілька місяців зловмисниками активно використовується для зламування сайтів. Я вже не кажу про те, як плагін навантажує сайт своїми скриптами, знижуючи загальну швидкість відкривання сторінок. Отже, адекватно оцініть всі свої ризики.
Я рекомендую взагалі не використовувати плагін Elementor PRO, тому що є ризик появи вразливостей в майбутньому. А це ризики для вашого бізнесу!
А щоб уникнути ризиків і вчасно реагувати на небезпеки сучасного кіберсвіту пропоную свої послуги по супроводу та обслуговуванню сайтів на WordPress (моніторинг, захист, контрольовані оновлення та консультації).
Також, ви можете підписатися на мій telegram-канал, в якому я публікую інформацію про виявлені вразливості в популярних плагінах та темах WordPress. Це дасть вам змогу бути в курсі подій та вчасно себе захистити.
Історія має продовження
28-05-2023 на другому сайті знову з'явилися нові адміни і в корені сайту нові три папки (SxMmu, QCldhjcp та koit7ycv). Назви папок генеруються автоматично, тому немає сенсу шукати їх в пошуці, намагаючись знайти зловмисника. В кожній папці знаходиться наступне:
- /cache
- .htaccess
- index.php
Я відразу видалив нових адмінів та нові папки, а також в клієнта запросив файли логів. В логах поведінка атакуючого була дещо інакшою і цілі змінилися. Раніше це був редирект на інші сайти, а тепер… Уявіть, якщо я маю справу з двома різними зловмисниками, які одночасно зламують один і той самий сайт і мають різні цілі. Або, це один зловмисник, який змінив методологію?
Зловмисник не завантажував нові плагіни і не перевіряв встановлення бекдорів, як це було на першому сайті і на цьому, другому сайті також. В логах є багато запитів від Googlebot до сайту методом GET. Бот запитує невідомі публікації і вони відповідають кодом 200, що наштовхує на думку про чорне SEO.
При використанні чорного SEO, в цій ситуації, чужі сайти просуваються за рахунок вашого і це робиться в агресивній формі. Як правило, сайт-жертва за переспам ключовими словами може потрапити до бану (Blackhat SEO).
Перевірка коду файлів index.php підтверджує дану версію: зловмисник віддалено завантажує на сайт папки з публікаціями/посиланнями (перед цим він перевіряє протокол передачі даних та зв'язок з інтернетом). Файл index.php це такий собі шаблон, який генерує файли з публікаціями та ключовими словами в них. Я до кінця в самій методології і в принципі роботи скриптів не розібрався, але однозначно має місце чорне SEO.
Ось приклад запитів Googlebot:
GET /SxMmu/sitemap.xml HTTP/1.1" 200
GET /SxMmu/david-william-desmond-age HTTP/1.1
GET /SxMmu/youth-lacrosse-camps-2022 HTTP/1.1
GET /SxMmu/into-the-pit-characters HTTP/1.1
GET /SxMmu/huntington%2C-wv-arrests-today HTTP/1.1
...
Googlebot запитував публікації і успішно їх знаходив завдяки файлу sitemap.xml.
Також, були знайдені та видалені підозрілі файли в одному з плагінів та в батьківській темі WordPress:
polylang-wc:
- Ey.js
- xPLY.js
woodmart:
- xPLY.js
До речі, плагін Polylang for WooCommerce виявився неліцензійним (вебмайстер встановив).
Чому знову зловмисник проник на сайт? Тут три варіанти: наявність вразливостей які все ще не закриті, наявність бекдору, файли якого були пропущені раніше або шкідливі файли в плагіні.
Звичайно, всі підозрілі файли були видалені. В ідеалі, потрібно придбати ліцензію на плагін Polylang for WooCommerce, щоб мати доступ до оновлень і не ризикувати.
Я налаштував Firewall, який буде відсікати шкідливі запити, фіксувати невірні входи, запобігати створенню нових адмінів. А також, обмежив доступ до REST API, щоб зробити неможливим отримання інформації про сайт, або принаймні максимально ускладнити цей процес. Слідкуйте за цією сторінкою, я буду тут публікувати оновлення. Але, надіюсь, що оновлень більше не буде.
Лікування сайтів WordPress
Якщо ви зіткнулися з подібною ситуацією, або ваш сайт заразився іншими шкідливими скриптами – напишіть мені! Я вилікую ваш сайт та підготую звіт, в якому вкажу вразливі місця, алгоритм зараження та розпишу стратегію подальшого захисту.